Развертывание веб-приложения Go в приложениях контейнеров Azure
Из этого краткого руководства вы узнаете, как развернуть контейнерное веб-приложение Go в приложениях контейнеров Azure.
Приложения контейнеров Azure позволяют выполнять код приложения, упакованный в любой контейнер, без необходимости управлять сложной облачной инфраструктурой или сложными оркестраторами контейнеров и не беспокоиться о модели среды выполнения или программирования. Распространенные способы использования приложений контейнеров Azure: развертывание конечных точек API, размещение приложений фоновой обработки, обработка обработки на основе событий и выполнение микрослужб.
В этом руководстве описано, как создать образ Docker, развернуть этот образ в Реестр контейнеров Azure и развернуть веб-приложение Go в приложениях контейнеров Azure.
Необходимые компоненты
- Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- Установленный язык Go версии 1.18 или более поздней
- Docker Desktop
загрузка примера приложения;
Чтобы следовать этому руководству, вам потребуется пример приложения для контейнеризации. Пример веб-приложения Go представлен в репозитории GitHub msdocs-go-webapp-quickstart . Скачайте или клонируйте пример приложения на локальную рабочую станцию.
git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git
cd msdocs-go-webapp-quickstart
Создание реестра в Реестре контейнеров Azure
Реестр контейнеров Azure позволяет создавать, хранить образы контейнеров и управлять ими. Вы будете использовать его для хранения образа Docker, содержащего пример веб-приложения Go, предоставленного в примере репозитория, упоминание ранее.
Выполните следующие команды, чтобы создать Реестр контейнеров Azure:
Создайте группу ресурсов Azure.
az group create \ --name <resourceGroupName> \ --location eastus
Создайте реестр контейнеров Azure.
az acr create \ --resource-group <resourceGroupName> \ --name <azureContainerRegistryName> \ --sku basic \ --admin-enabled true
Войдите в экземпляр контейнера Azure.
az acr login --name <azureContainerRegistryName>
Замените <resourceGroupName>
и <azureContainerRegistryName>
соответствующими значениями. Обратите внимание, что имя Реестр контейнеров Azure должно быть глобально уникальным.
Создание и отправка образа Docker
Создав Реестр контейнеров Azure, создайте и отправьте образ Docker примера веб-приложения Go.
Выполните следующие команды сборки и отправьте образ в реестр:
Получите сведения о сервере входа.
az acr show \ --name <azureContainerRegistryName> \ --resource-group <resourceGroupName> \ --query loginServer \ --output tsv
Создайте образ Docker локально.
docker build -t <loginServer>/<imageName>:latest .
Передает образ Docker в Реестр контейнеров Azure.
docker push <loginServer>/<imageName>:latest
Убедитесь, что изображение успешно отправлено в Реестр контейнеров Azure.
az acr repository list \ --name <azureContainerRegistryName> \ --output table
Замените loginServer
, imageName
и azureContainerRegistryName
соответствующими значениями. Имя образа — это образ Docker, который отправляется в Реестр контейнеров Azure и более поздних версий, используемых для развертывания в приложениях контейнеров Azure.
Теперь, когда вы получили образ, доступный в Реестр контейнеров Azure, вы готовы развернуть приложение контейнеров Azure и его среду.
Создание среды приложений контейнеров Azure
Приложения контейнеров Azure не имеют сложности оркестратора контейнеров, но он по-прежнему нуждается в том, чтобы установить безопасные границы, где вступают среды приложений контейнеров Azure. Контейнерные приложения, развернутые в той же среде, используют одну и ту же виртуальную сеть и записывают журналы в ту же рабочую область Log Analytics. Прежде чем развернуть приложение контейнера Azure, вам потребуется среда для развертывания.
Выполните следующие команды, чтобы создать среду приложений контейнеров Azure:
Получите пароль администратора Реестр контейнеров Azure.
ACR_PASSWORD=$(az acr credential show \ --name <azureContainerRegistryName> \ --query 'passwords[0].value' \ --out tsv)
Создайте среду приложений-контейнеров.
az containerapp env create \ --name <containerAppEnvName> \ --resource-group <resourceGroupName> \ --location "East US"
Развертывание на платформе "Контейнеры приложений Azure"
На этом этапе вы создали Реестр контейнеров Azure, создали и принудили к нему образ Docker и создали среду приложений контейнеров Azure. Все, что осталось, заключается в развертывании приложения.
Выполните следующую команду, чтобы развернуть веб-приложение Go в приложениях контейнеров Azure:
az containerapp create \
--name <containerAppName> \
--resource-group <resourceGroupName> \
--environment <containerAppEnvName> \
--image "<loginServer>/<imageName>:latest" \
--registry-server "<loginServer>" \
--registry-username "<azureContainerRegistryName>" \
--registry-password "$ACR_PASSWORD" \
--target-port 8080 \
--ingress 'external'
Проверка URL-адреса веб-приложения
Выполните следующую команду Azure CLI, чтобы получить полное доменное имя (полное доменное имя) входящего трафика веб-приложения.
APP_FQDN=$(az containerapp show \
--name <containerAppName> \
--resource-group <resourceGroupName> \
--query properties.configuration.ingress.fqdn \
--output tsv)
Затем выполните команду curl в полное доменное имя и подтвердите выходные данные, отражающие HTML-код веб-сайта.
curl "https://$APP_FQDN"
Очистка ресурсов
Завершив работу с примером приложения, можно удалить все ресурсы для приложения в Azure. Это позволяет избежать дополнительных расходов и не загромождает подписку Azure. Удаление группы ресурсов также повлечет удаление всех ресурсов в группе ресурсов, что является самым быстрым способом удаления всех ресурсов Azure для приложения.
az group delete \
--name <resourceGroupName> \
--no-wait