Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве вы создадите микрослужбы издателя и подписчика, использующие API Dapr Pub/sub для обмена сообщениями с использованием сообщений на основе событий архитектур. Вам потребуется выполнить следующие задачи:
- Создайте микрослужбу издателя и микрослужбу подписчика, которая использует API dapr pub/sub для обмена сообщениями с использованием сообщений на основе событий архитектур.
- Разверните приложение в приложениях контейнеров Azure с помощью интерфейса командной строки разработчика Azure с предоставленным Bicep.
Пример проекта pub/sub включает:
- Служба генератора
checkoutсообщений (издатель), которая создает сообщения определенного раздела. order-processorСлужба (подписчик), которая прослушивает сообщения изcheckoutслужбы определенного раздела.
Необходимые компоненты
- Установка Интерфейса командной строки разработчика Azure
- Установка и инициализация Dapr
- Docker Desktop
- Установка репозитория Git
Локальное выполнение приложений Node.js
Перед развертыванием приложения в приложениях контейнеров Azure запустите и checkout службы локально с помощью order-processor Dapr и Служебная шина Azure.
Подготовка проекта
Клонируйте пример приложения на локальный компьютер.
git clone https://github.com/Azure-Samples/pubsub-dapr-nodejs-servicebus.gitПерейдите в корневой каталог примера.
cd pubsub-dapr-nodejs-servicebus
Запуск приложений с помощью интерфейса командной строки Dapr
Начните с запуска order-processor службы подписчика.
В корневом каталоге примера измените каталоги
order-processorна .cd order-processorУстановите зависимости.
npm installorder-processorЗапустите службу.dapr run --app-port 5001 --app-id order-processing --app-protocol http --dapr-http-port 3501 --resources-path ../components -- npm run startВ новом окне терминала в корневом каталоге примера перейдите в
checkoutслужбу издателя.cd checkoutУстановите зависимости.
npm installcheckoutЗапустите службу.dapr run --app-id checkout --app-protocol http --resources-path ../components -- npm run startОжидаемые выходные данные
В обоих терминалах служба публикует 10 сообщений,
checkoutполученныхorder-processorслужбой перед выходом.checkoutвыпуск:== APP == Published data: {"orderId":1} == APP == Published data: {"orderId":2} == APP == Published data: {"orderId":3} == APP == Published data: {"orderId":4} == APP == Published data: {"orderId":5} == APP == Published data: {"orderId":6} == APP == Published data: {"orderId":7} == APP == Published data: {"orderId":8} == APP == Published data: {"orderId":9} == APP == Published data: {"orderId":10}order-processorвыпуск:== APP == Subscriber received: {"orderId":1} == APP == Subscriber received: {"orderId":2} == APP == Subscriber received: {"orderId":3} == APP == Subscriber received: {"orderId":4} == APP == Subscriber received: {"orderId":5} == APP == Subscriber received: {"orderId":6} == APP == Subscriber received: {"orderId":7} == APP == Subscriber received: {"orderId":8} == APP == Subscriber received: {"orderId":9} == APP == Subscriber received: {"orderId":10}Убедитесь, что оба приложения остановились, выполнив следующие команды. В терминале выхода:
dapr stop --app-id checkoutВ терминале order-processor:
dapr stop --app-id order-processor
Развертывание шаблона приложения с помощью Интерфейса командной строки разработчика Azure
Развертывание приложения в приложениях контейнеров Azure с помощью azd.
Подготовка проекта
В новом окне терминала перейдите в корневой каталог примера .
cd pubsub-dapr-nodejs-servicebus
Подготовка и развертывание с помощью Интерфейса командной строки разработчика Azure
Выполните,
azd initчтобы инициализировать проект.azd initПри появлении запроса в терминале укажите следующие параметры.
Параметр Описание Имя среды Префикс группы ресурсов, созданной для хранения всех ресурсов Azure. Расположение Azure Расположение Azure для ресурсов. Подписка на Azure Подписка Azure для ресурсов. Запустите
azd up, чтобы подготовить инфраструктуру и развернуть приложение в Приложениях контейнеров Azure в одной команде.azd upДля завершения этого процесса может потребоваться некоторое время. По завершении команды выходные
azd upданные CLI отображают две портал Azure ссылки для мониторинга хода развертывания. Выходные данные также демонстрируют, какazd up:- Создает и настраивает все необходимые ресурсы Azure с помощью предоставленных Bicep-файлов в каталоге
./infraazd provision. После подготовки с помощью Интерфейса командной строки разработчика Azure вы можете получить доступ к этим ресурсам с помощью портал Azure. К файлам, которые подготавливают ресурсы Azure, относятся:main.parameters.jsonmain.bicepappКаталог ресурсов, упорядоченный по функциям- Эталонная
coreбиблиотека, содержащая модули Bicep, используемые шаблономazd
- Развертывание кода с помощью
azd deploy
Ожидаемые выходные данные
Initializing a new project (azd init) Provisioning Azure resources (azd provision) Provisioning Azure resources can take some time You can view detailed progress in the Azure Portal: https://portal.azure.com (✓) Done: Resource group: resource-group-name (✓) Done: Application Insights: app-insights-name (✓) Done: Portal dashboard: portal-dashboard-name (✓) Done: Log Analytics workspace: log-analytics-name (✓) Done: Key vault: key-vault-name (✓) Done: Container Apps Environment: ca-env-name (✓) Done: Container App: ca-checkout-name (✓) Done: Container App: ca-orders-name Deploying services (azd deploy) (✓) Done: Deploying service checkout (✓) Done: Deploying service orders - Endpoint: https://ca-orders-name.endpoint.region.azurecontainerapps.io/ SUCCESS: Your Azure app has been deployed! You can view the resources created under the resource group resource-group-name in Azure Portal: https://portal.azure.com/#@/resource/subscriptions/subscription-id/resourceGroups/resource-group-name/overview- Создает и настраивает все необходимые ресурсы Azure с помощью предоставленных Bicep-файлов в каталоге
Подтверждение успешного развертывания
В портал Azure убедитесьcheckout, что служба публикует сообщения в Служебная шина Azure разделе.
checkoutСкопируйте имя приложения-контейнера из выходных данных терминала.Войдите в портал Azure и найдите ресурс приложения контейнера по имени.
На панели мониторинга "Приложения контейнеров" выберите поток журнала мониторинга>.
Убедитесь,
checkoutчто контейнер регистрируется в том же выходных данных, что и в терминале ранее.
Выполните то же самое для
order-processorслужбы.
Что произошло?
После успешного azd up завершения команды:
- Интерфейс командной строки разработчика Azure подготовил ресурсы Azure, на которые ссылается каталог примера проекта
./infra, в указанную подписку Azure. Теперь эти ресурсы Azure можно просмотреть с помощью портал Azure. - Приложение, развернутые в приложениях контейнеров Azure. На портале можно перейти к полнофункциональным приложениям.
Локальное выполнение приложений Python
Перед развертыванием приложения в приложениях контейнеров Azure запустите и checkout службы локально с помощью order-processor Dapr и Служебная шина Azure.
Подготовка проекта
Клонируйте пример приложения на локальный компьютер.
git clone https://github.com/Azure-Samples/pubsub-dapr-python-servicebus.gitПерейдите в корневой каталог примера.
cd pubsub-dapr-python-servicebus
Запуск приложений с помощью интерфейса командной строки Dapr
Начните с запуска order-processor службы подписчика.
В корневом каталоге примера измените каталоги
order-processorна .cd order-processorУстановите зависимости.
pip3 install -r requirements.txtorder-processorЗапустите службу.
В новом окне терминала в корневом каталоге примера перейдите в
checkoutслужбу издателя.cd checkoutУстановите зависимости.
pip3 install -r requirements.txtcheckoutЗапустите службу.
Ожидаемые выходные данные
В обоих терминалах служба публикует 10 сообщений, checkout полученных order-processor службой перед выходом.
checkout выпуск:
== APP == Published data: {"orderId":1}
== APP == Published data: {"orderId":2}
== APP == Published data: {"orderId":3}
== APP == Published data: {"orderId":4}
== APP == Published data: {"orderId":5}
== APP == Published data: {"orderId":6}
== APP == Published data: {"orderId":7}
== APP == Published data: {"orderId":8}
== APP == Published data: {"orderId":9}
== APP == Published data: {"orderId":10}
order-processor выпуск:
== APP == Subscriber received: {"orderId":1}
== APP == Subscriber received: {"orderId":2}
== APP == Subscriber received: {"orderId":3}
== APP == Subscriber received: {"orderId":4}
== APP == Subscriber received: {"orderId":5}
== APP == Subscriber received: {"orderId":6}
== APP == Subscriber received: {"orderId":7}
== APP == Subscriber received: {"orderId":8}
== APP == Subscriber received: {"orderId":9}
== APP == Subscriber received: {"orderId":10}
Убедитесь, что оба приложения остановились, выполнив следующие команды. В терминале выхода:
dapr stop --app-id checkoutВ терминале order-processor:
dapr stop --app-id order-processor
Развертывание шаблона приложения с помощью Интерфейса командной строки разработчика Azure
Развертывание приложения в приложениях контейнеров Azure с помощью azd.
Подготовка проекта
В новом окне терминала перейдите в корневой каталог примера .
cd pubsub-dapr-python-servicebus
Подготовка и развертывание с помощью Интерфейса командной строки разработчика Azure
Выполните,
azd initчтобы инициализировать проект.azd initПри появлении запроса в терминале укажите следующие параметры.
Параметр Описание Имя среды Префикс группы ресурсов, созданной для хранения всех ресурсов Azure. Расположение Azure Расположение Azure для ресурсов. Подписка на Azure Подписка Azure для ресурсов. Запустите
azd up, чтобы подготовить инфраструктуру и развернуть приложение в Приложениях контейнеров Azure в одной команде.azd upДля завершения этого процесса может потребоваться некоторое время. По завершении команды выходные
azd upданные CLI отображают две портал Azure ссылки для мониторинга хода развертывания. Выходные данные также демонстрируют, какazd up:- Создает и настраивает все необходимые ресурсы Azure с помощью предоставленных Bicep-файлов в каталоге
./infraazd provision. После подготовки с помощью Интерфейса командной строки разработчика Azure вы можете получить доступ к этим ресурсам с помощью портал Azure. К файлам, которые подготавливают ресурсы Azure, относятся:main.parameters.jsonmain.bicepappКаталог ресурсов, упорядоченный по функциям- Эталонная
coreбиблиотека, содержащая модули Bicep, используемые шаблономazd
- Развертывание кода с помощью
azd deploy
Ожидаемые выходные данные
Initializing a new project (azd init) Provisioning Azure resources (azd provision) Provisioning Azure resources can take some time You can view detailed progress in the Azure Portal: https://portal.azure.com (✓) Done: Resource group: resource-group-name (✓) Done: Application Insights: app-insights-name (✓) Done: Portal dashboard: portal-dashboard-name (✓) Done: Log Analytics workspace: log-analytics-name (✓) Done: Key vault: key-vault-name (✓) Done: Container Apps Environment: ca-env-name (✓) Done: Container App: ca-checkout-name (✓) Done: Container App: ca-orders-name Deploying services (azd deploy) (✓) Done: Deploying service checkout (✓) Done: Deploying service orders - Endpoint: https://ca-orders-name.endpoint.region.azurecontainerapps.io/ SUCCESS: Your Azure app has been deployed! You can view the resources created under the resource group resource-group-name in Azure Portal: https://portal.azure.com/#@/resource/subscriptions/subscription-id/resourceGroups/resource-group-name/overview- Создает и настраивает все необходимые ресурсы Azure с помощью предоставленных Bicep-файлов в каталоге
Подтверждение успешного развертывания
В портал Azure убедитесьcheckout, что служба публикует сообщения в Служебная шина Azure разделе.
checkoutСкопируйте имя приложения-контейнера из выходных данных терминала.Войдите в портал Azure и найдите ресурс приложения контейнера по имени.
На панели мониторинга "Приложения контейнеров" выберите поток журнала мониторинга>.
Убедитесь,
checkoutчто контейнер регистрируется в том же выходных данных, что и в терминале ранее.
Выполните то же самое для
order-processorслужбы.
Что произошло?
После успешного azd up завершения команды:
- Интерфейс командной строки разработчика Azure подготовил ресурсы Azure, на которые ссылается каталог примера проекта
./infra, в указанную подписку Azure. Теперь эти ресурсы Azure можно просмотреть с помощью портал Azure. - Приложение, развернутые в приложениях контейнеров Azure. На портале можно перейти к полнофункциональным приложениям.
Локальное выполнение приложений .NET
Перед развертыванием приложения в приложениях контейнеров Azure запустите и checkout службы локально с помощью order-processor Dapr и Служебная шина Azure.
Подготовка проекта
Клонируйте пример приложения на локальный компьютер.
git clone https://github.com/Azure-Samples/pubsub-dapr-csharp-servicebus.gitПерейдите в корневой каталог примера.
cd pubsub-dapr-csharp-servicebus
Запуск приложений с помощью интерфейса командной строки Dapr
Начните с запуска order-processor службы подписчика
В корневом каталоге примера измените каталоги
order-processorна .cd order-processorУстановите зависимости.
dotnet buildorder-processorЗапустите службу.dapr run --app-id order-processor --resources-path ../components/ --app-port 7001 -- dotnet run --project .В новом окне терминала в корневом каталоге примера перейдите в
checkoutслужбу издателя.cd checkoutУстановите зависимости.
dotnet buildcheckoutЗапустите службу.dapr run --app-id checkout --resources-path ../components/ -- dotnet run --project .Ожидаемые выходные данные
В обоих терминалах служба публикует 10 сообщений,
checkoutполученныхorder-processorслужбой перед выходом.checkoutвыпуск:== APP == Published data: {"orderId":1} == APP == Published data: {"orderId":2} == APP == Published data: {"orderId":3} == APP == Published data: {"orderId":4} == APP == Published data: {"orderId":5} == APP == Published data: {"orderId":6} == APP == Published data: {"orderId":7} == APP == Published data: {"orderId":8} == APP == Published data: {"orderId":9} == APP == Published data: {"orderId":10}order-processorвыпуск:== APP == Subscriber received: {"orderId":1} == APP == Subscriber received: {"orderId":2} == APP == Subscriber received: {"orderId":3} == APP == Subscriber received: {"orderId":4} == APP == Subscriber received: {"orderId":5} == APP == Subscriber received: {"orderId":6} == APP == Subscriber received: {"orderId":7} == APP == Subscriber received: {"orderId":8} == APP == Subscriber received: {"orderId":9} == APP == Subscriber received: {"orderId":10}Убедитесь, что оба приложения остановились, выполнив следующие команды. В терминале выхода.
dapr stop --app-id checkoutВ терминале order-processor:
dapr stop --app-id order-processor
Развертывание шаблона приложения с помощью Интерфейса командной строки разработчика Azure
Развертывание приложения в приложениях контейнеров Azure с помощью azd.
Подготовка проекта
В новом окне терминала перейдите в корневой каталог примера .
cd pubsub-dapr-csharp-servicebus
Подготовка и развертывание с помощью Интерфейса командной строки разработчика Azure
Выполните,
azd initчтобы инициализировать проект.azd initПри появлении запроса в терминале укажите следующие параметры.
Параметр Описание Имя среды Префикс группы ресурсов, созданной для хранения всех ресурсов Azure. Расположение Azure Расположение Azure для ресурсов. Подписка на Azure Подписка Azure для ресурсов. Запустите
azd up, чтобы подготовить инфраструктуру и развернуть приложение в Приложениях контейнеров Azure в одной команде.azd upДля завершения этого процесса может потребоваться некоторое время. По завершении команды выходные
azd upданные CLI отображают две портал Azure ссылки для мониторинга хода развертывания. Выходные данные также демонстрируют, какazd up:- Создает и настраивает все необходимые ресурсы Azure с помощью предоставленных Bicep-файлов в каталоге
./infraazd provision. После подготовки с помощью Интерфейса командной строки разработчика Azure вы можете получить доступ к этим ресурсам с помощью портал Azure. К файлам, которые подготавливают ресурсы Azure, относятся:main.parameters.jsonmain.bicepappКаталог ресурсов, упорядоченный по функциям- Эталонная
coreбиблиотека, содержащая модули Bicep, используемые шаблономazd
- Развертывание кода с помощью
azd deploy
Ожидаемые выходные данные
Initializing a new project (azd init) Provisioning Azure resources (azd provision) Provisioning Azure resources can take some time You can view detailed progress in the Azure Portal: https://portal.azure.com (✓) Done: Resource group: resource-group-name (✓) Done: Application Insights: app-insights-name (✓) Done: Portal dashboard: portal-dashboard-name (✓) Done: Log Analytics workspace: log-analytics-name (✓) Done: Key vault: key-vault-name (✓) Done: Container Apps Environment: ca-env-name (✓) Done: Container App: ca-checkout-name (✓) Done: Container App: ca-orders-name Deploying services (azd deploy) (✓) Done: Deploying service checkout (✓) Done: Deploying service orders - Endpoint: https://ca-orders-name.endpoint.region.azurecontainerapps.io/ SUCCESS: Your Azure app has been deployed! You can view the resources created under the resource group resource-group-name in Azure Portal: https://portal.azure.com/#@/resource/subscriptions/subscription-id/resourceGroups/resource-group-name/overview- Создает и настраивает все необходимые ресурсы Azure с помощью предоставленных Bicep-файлов в каталоге
Подтверждение успешного развертывания
В портал Azure убедитесьcheckout, что служба публикует сообщения в Служебная шина Azure разделе.
checkoutСкопируйте имя приложения-контейнера из выходных данных терминала.Войдите в портал Azure и найдите ресурс приложения контейнера по имени.
На панели мониторинга "Приложения контейнеров" выберите поток журнала мониторинга>.
Убедитесь,
checkoutчто контейнер регистрируется в том же выходных данных, что и в терминале ранее.
Выполните то же самое для
order-processorслужбы.
Что произошло?
После успешного azd up завершения команды:
- Интерфейс командной строки разработчика Azure подготовил ресурсы Azure, на которые ссылается каталог примера проекта
./infra, в указанную подписку Azure. Теперь эти ресурсы Azure можно просмотреть с помощью портал Azure. - Приложение, развернутые в приложениях контейнеров Azure. На портале можно перейти к полнофункциональным приложениям.
Очистка ресурсов
Если вы не собираетесь продолжать использовать это приложение, удалите ресурсы Azure, подготовленные с помощью следующей команды:
azd down
Следующие шаги
- Дополнительные сведения о развертывании приложений в приложениях контейнеров Azure.
- Включите проверку подлинности маркера для запросов Dapr.
- Узнайте больше о интерфейсе командной строки разработчика Azure и о том, что приложения совместимы с
azd. - Масштабирование приложений с помощью масштабировщиков KEDA