Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы узнаете, как подключиться непосредственно из Azure Front Door к приложениям контейнеров Azure, используя приватный канал вместо общедоступного Интернета. В этом руководстве вы создадите среду профилей рабочих нагрузок контейнеров Azure, Azure Front Door и безопасно подключите их через приватный канал. Затем вы проверяете подключение между приложением контейнера и Azure Front Door.
Необходимые компоненты
Учетная запись Azure с активной подпиской.
- Если у вас нет учетной записи, вы можете создать ее бесплатно.
Эта функция поддерживается только для сред профиля рабочей нагрузки.
Убедитесь,
Microsoft.Cdn
что поставщик ресурсов зарегистрирован для вашей подписки.- Войдите на портал Azure.
- Перейдите на страницу подписки и выберите "Параметры поставщиков>ресурсов".
- Выберите Microsoft.Cdn из списка поставщиков.
- Выберите Зарегистрировать.
Создание приложения-контейнера
Создайте группу ресурсов для упорядочивания служб, связанных с развертыванием приложения контейнера.
Введите Приложения-контейнеры в строке поиска вверху.
В результатах поиска выберите Приложения-контейнеры.
Выберите кнопку Создать.
На странице "Создание приложения контейнера" на вкладке "Основы " выполните следующие действия.
Настройки Действие Подписка Выберите подписку Azure. Группа ресурсов Выберите ссылку "Создать группу ресурсов " и введите my-container-apps. Имя приложения-контейнера Введите my-container-app. Источник развертывания Выберите образ контейнера. Регион Выберите Центральная часть США. В поле "Создание среды приложений контейнеров" выберите ссылку "Создать новую среду ".
На странице "Создание среды приложений контейнеров " на вкладке "Основы " введите следующие значения:
Настройки Ценность Имя среды Введите my-environment. Избыточность зон Выберите Отключено. Выберите вкладку "Сеть".
Установите параметр "Доступ к общедоступной сети" на Отключено: блокировать весь входящий трафик из общедоступного Интернета.
Оставьте собственный набор виртуальных сетей равным No.
Оставьте включение частных конечных точек на Нет.
Нажмите кнопку "Создать".
На странице "Создание приложения контейнера" выберите вкладку "Контейнер ".
Выберите "Использовать образ быстрого запуска".
Развертывание приложения-контейнера
Выберите "Рецензирование" и создайте его в нижней части страницы.
Если ошибки не обнаружены, станет доступна кнопка Создать.
При наличии ошибок все вкладки с ошибками будут помечены красной точкой. Перейдите на соответствующую вкладку. Поля, содержащие ошибку, выделены красным цветом. После устранения всех ошибок выберите Проверить и создать еще раз.
Нажмите кнопку "Создать".
Отобразится страница с сообщением Выполняется развертывание. После успешного завершения развертывания появится сообщение: развертывание завершено.
Проверка развертывания
Выберите Перейти к ресурсу для просмотра нового приложения-контейнера.
Выберите ссылку рядом с надписью URL-адрес приложения, чтобы просмотреть приложение.
При переходе к конечной точке приложения контейнера вы увидите следующее сообщение:
The public network access on this managed environment is disabled. To connect to this managed environment, please use the Private Endpoint from inside your virtual network. To learn more https://aka.ms/PrivateEndpointTroubleshooting.
Вместо этого вы используете конечную точку Azure Front Door для доступа к приложению-контейнеру.
Создайте профиль и конечную точку Azure Front Door
Найдите Front Door в верхней строке поиска.
Выберите профили Front Door и CDN в результатах поиска.
Выберите Azure Front Door и быстрое создание.
Нажмите кнопку "Продолжить создание Front Door".
На странице "Создание профиля Front Door " на вкладке "Основы " выполните следующие действия.
Настройки Действия Группа ресурсов Выберите my-container-apps. Имя Введите my-afd-profile. Уровень Выберите Премиум. Приватная ссылка не поддерживается для источников Azure Front Door на тарифе "Стандартный". Имя конечной точки Введите my-afd-endpoint. Тип источника Выберите Приложения-контейнеры. Имя узла источника Введите имя узла приложения контейнера. Ваш hostname выглядит следующим образом: my-container-app.orangeplant-77e5875b.centralus.azurecontainerapps.io
.Включить службу приватной ссылки Включите этот параметр. Регион Выберите (США) Центральная часть США. Целевой дочерний ресурс Выберите managedEnvironments. Запрос на сообщение Введите запрос приватной ссылки AFD. Выберите Review + create.
Нажмите кнопку "Создать".
После завершения развертывания выберите "Перейти к ресурсу".
На странице обзора профиля Front Door и CDN найдите имя хоста конечной точки. Это выглядит как в следующем примере. Заметьте это имя узла.
my-afd-endpoint.<HASH>.b01.azurefd.net
Утверждение запроса подключения к частной конечной точке
Перейдите на страницу обзора среды с именем my-environment , созданной ранее.
Разверните Настройки>Сеть.
Вы увидите ссылку для запросов на подключение частной конечной точки. Например:
1 private endpoint
. Нажмите эту ссылку.На странице подключений к частной конечной точке утверждайте каждый запрос подключения к частной конечной точке с описанием
AFD Private Link Request
.Примечание.
У Azure Front Door есть известная проблема, из-за которой она может создавать несколько запросов на подключение к частной конечной точке.
Доступ к приложению-контейнеру из Azure Front Door
Перейдите к имени узла конечной точки Azure Front Door, записанного ранее. Выходные данные для образа приложения контейнера быстрого запуска отображаются. Глобальное развертывание может занять несколько минут, поэтому если вы не видите ожидаемые выходные данные, подождите несколько минут и обновите его.
Очистка ресурсов
Если вы не собираетесь продолжать использовать это приложение, вы можете удалить приложение-контейнер и все связанные службы, удалив группу ресурсов.
Выберите группу ресурсов my-container-apps в разделе Обзор.
Нажмите кнопку Удалить группу ресурсов на панели инструментов в разделе Обзор группы ресурсов.
Введите имя группы ресурсов my-container-apps в диалоговом окне Удалить "my-container-apps".
Нажмите кнопку "Удалить".
Процесс удаления группы ресурсов может занять несколько минут.
Необходимые компоненты
Учетная запись Azure с активной подпиской.
- Если у вас нет учетной записи, вы можете создать ее бесплатно.
Чтобы убедиться, что вы используете последнюю версию Azure CLI, выполните следующую команду.
az upgrade
Последняя версия расширения приложений контейнеров Azure для Azure CLI. Чтобы убедиться, что вы используете последнюю версию, выполните следующую команду.
az extension add --name containerapp --upgrade --allow-preview true
Примечание.
Начиная с мая 2024 г. расширения Azure CLI больше не поддерживают предварительные версии функций по умолчанию. Чтобы получить доступ к функциям предварительной версии контейнерных приложений, установите расширение "Приложения контейнеров" с
--allow-preview true
помощью .Эта функция поддерживается только для сред профиля рабочей нагрузки.
Эта функция доступна только в поддерживаемых регионах.
Дополнительные сведения о предварительных требованиях и настройке см . в кратком руководстве. Развертывание первого приложения контейнера с помощью containerapp up.
Настройка переменных среды
Задайте следующие переменные среды.
RESOURCE_GROUP="my-container-apps"
LOCATION="centralus"
ENVIRONMENT_NAME="my-environment"
CONTAINERAPP_NAME="my-container-app"
AFD_PROFILE="my-afd-profile"
AFD_ENDPOINT="my-afd-endpoint"
AFD_ORIGIN_GROUP="my-afd-origin-group"
AFD_ORIGIN="my-afd-origin"
AFD_ROUTE="my-afd-route"
создание группы ресурсов Azure;
Создайте группу ресурсов для упорядочивания служб, связанных с развертыванием приложения контейнера.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Создать среду
Создайте среду "Приложения контейнеров".
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Получение идентификатора среды. Этот идентификатор используется для настройки среды.
ENVIRONMENT_ID=$(az containerapp env show \ --resource-group $RESOURCE_GROUP \ --name $ENVIRONMENT_NAME \ --query "id" \ --output tsv)
Отключите доступ к общедоступной сети для среды.
az containerapp env update \ --id $ENVIRONMENT_ID \ --public-network-access Disabled
Развертывание приложения-контейнера
Выполните следующую команду, чтобы развернуть приложение-контейнер в вашей среде.
az containerapp up \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --environment $ENVIRONMENT_NAME \ --image mcr.microsoft.com/k8se/quickstart:latest \ --target-port 80 \ --ingress external \ --query properties.configuration.ingress.fqdn
Получите конечную точку приложения-контейнера.
ACA_ENDPOINT=$(az containerapp show \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --query properties.configuration.ingress.fqdn \ --output tsv)
При переходе к конечной точке приложения-контейнера вы получаете
ERR_CONNECTION_CLOSED
, так как среда приложения-контейнера отключена общедоступного доступа. Вместо этого вы используете конечную точку AFD для доступа к приложению контейнера.
Создание профиля Azure Front Door
Убедитесь,
Microsoft.Cdn
что поставщик ресурсов зарегистрирован для вашей подписки.az provider register --namespace Microsoft.Cdn
Создайте профиль AFD. Частная ссылка не поддерживается для источников в профиле AFD с SKU
Standard_AzureFrontDoor
.
az afd profile create \
--profile-name $AFD_PROFILE \
--resource-group $RESOURCE_GROUP \
--sku Premium_AzureFrontDoor
Создание конечной точки Azure Front Door
Добавьте конечную точку в профиль AFD.
az afd endpoint create \
--resource-group $RESOURCE_GROUP \
--endpoint-name $AFD_ENDPOINT \
--profile-name $AFD_PROFILE \
--enabled-state Enabled
Создание группы источников Azure Front Door
Создайте группу источников AFD.
az afd origin-group create \
--resource-group $RESOURCE_GROUP \
--origin-group-name $AFD_ORIGIN_GROUP \
--profile-name $AFD_PROFILE \
--probe-request-type GET \
--probe-protocol Http \
--probe-interval-in-seconds 60 \
--probe-path / \
--sample-size 4 \
--successful-samples-required 3 \
--additional-latency-in-milliseconds 50
Создание источника Azure Front Door
Добавьте источник AFD в группу источников.
az afd origin create \
--resource-group $RESOURCE_GROUP \
--origin-group-name $AFD_ORIGIN_GROUP \
--origin-name $AFD_ORIGIN \
--profile-name $AFD_PROFILE \
--host-name $ACA_ENDPOINT \
--origin-host-header $ACA_ENDPOINT \
--priority 1 \
--weight 500 \
--enable-private-link true \
--private-link-location $LOCATION \
--private-link-request-message "AFD Private Link Request" \
--private-link-resource $ENVIRONMENT_ID \
--private-link-sub-resource-type managedEnvironments
Вывод списка подключений к частной конечной точке
Выполните следующую команду, чтобы вывести список подключений к частной конечной точке для вашей среды.
az network private-endpoint-connection list \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --type Microsoft.App/managedEnvironments
Запишите идентификатор ресурса подключения частной конечной точки из ответа. Подключение к частной конечной точке
properties.privateLinkServiceConnectionState.description
имеет значениеAFD Private Link Request
. Идентификатор ресурса подключения к частной конечной точке выглядит следующим образом./subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.App/managedEnvironments/my-environment/privateEndpointConnections/<PRIVATE_ENDPOINT_CONNECTION_ID>
Не путайте этот идентификатор с идентификатором частной конечной точки, который выглядит следующим образом.
/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/eafd-Prod-centralus/providers/Microsoft.Network/privateEndpoints/<PRIVATE_ENDPOINT_ID>
Утверждение подключения частной конечной точки
Чтобы утвердить подключение, выполните следующую команду. Замените PLACEHOLDER< идентификатором ресурса подключения к частной >конечной точке, записанным в предыдущем разделе.
az network private-endpoint-connection approve --id <PRIVATE_ENDPOINT_CONNECTION_RESOURCE_ID>
Добавление маршрута
Выполните следующую команду, чтобы сопоставить конечную точку, созданную ранее, с группой источников. Частные конечные точки в приложениях контейнеров Azure поддерживают только входящий HTTP-трафик. Tcp-трафик не поддерживается.
az afd route create \
--resource-group $RESOURCE_GROUP \
--profile-name $AFD_PROFILE \
--endpoint-name $AFD_ENDPOINT \
--forwarding-protocol MatchRequest \
--route-name $AFD_ROUTE \
--https-redirect Enabled \
--origin-group $AFD_ORIGIN_GROUP \
--supported-protocols Http Https \
--link-to-default-domain Enabled
Доступ к приложению-контейнеру из Azure Front Door
Получите имя узла конечной точки AFD.
az afd endpoint show \ --resource-group $RESOURCE_GROUP \ --profile-name $AFD_PROFILE \ --endpoint-name $AFD_ENDPOINT \ --query hostName \ --output tsv
Имя узла выглядит так, как показано в следующем примере.
my-afd-endpoint.<HASH>.b01.azurefd.net
Перейдите к имени узла. Выходные данные для образа приложения контейнера быстрого запуска отображаются.
Если ожидаемые выходные данные не отображаются сначала, подождите несколько минут, а затем обновите.
Очистка ресурсов
Если вы не собираетесь продолжать использовать это приложение, можно удалить группу ресурсов my-container-apps . Это действие удаляет экземпляр azure Container Apps и все связанные службы. Она также удаляет группу ресурсов, созданную службой "Приложения контейнеров", и которая содержит пользовательские сетевые компоненты.
Внимание
Следующая команда удаляет указанную группу ресурсов и все ресурсы, содержащиеся в ней. Если ресурсы вне области этого руководства существуют в указанной группе ресурсов, они также будут удалены.
az group delete --name $RESOURCE_GROUP
Подсказка
Есть проблемы? Сообщите нам на GitHub, открыв запрос в репозитории Azure Container Apps.