Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Контейнеры приложений Azure предоставляют каждое приложение-контейнер посредством доменного имени, если включен входящий трафик. Конечные точки входящего трафика для приложений-контейнеров во внешней среде могут быть общедоступными или доступными только для других приложений-контейнеров в той же среде.
После того как вы знаете полное доменное имя для данного приложения контейнера, вы можете выполнять прямые вызовы к службе из других приложений контейнеров в общей среде.
В этом руководстве описано, как развернуть второе приложение контейнера, которое вызывает прямой вызов службы к API, развернутый в кратком руководстве по развертыванию кода в приложениях контейнеров Azure.
На следующем снимках экрана показана микрослужба пользовательского интерфейса, развернутая в приложениях-контейнерах в конце этой статьи.
Из этого руководства вы узнаете, как:
- Развертывание интерфейсного приложения в приложениях контейнеров Azure
- Связывание интерфейсного приложения с конечной точкой API, развернутой в предыдущем кратком руководстве
- Убедитесь, что интерфейсное приложение может взаимодействовать с СЕРВЕРНЫМ API
Необходимые компоненты
В кратком руководстве по коду в облаке серверный веб-API развертывается для возврата списка музыкальных альбомов. Если вы не развернули микрослужбу API альбомов, вернитесь к краткому руководству. Разверните код в приложениях контейнеров Azure для продолжения.
Настройка
Определите следующие переменные в оболочке Bash.
RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"
Перед выполнением этой команды обязательно замените <YOUR_GITHUB_USERNAME> имя пользователя GitHub.
Затем определите уникальное имя реестра контейнеров.
ACR_NAME="acaalbums"$GITHUB_USERNAME
Войдите в Azure CLI.
az login
az acr login --name $ACR_NAME
Подготовка репозитория GitHub
На новой вкладке браузера перейдите в репозиторий для приложения пользовательского интерфейса и нажмите кнопку "Вилку" в верхней части страницы, чтобы вставить репозиторий в учетную запись.
Следуйте инструкциям из GitHub, чтобы закрепить репозиторий и вернуться сюда после завершения операции.
Перейдите к родительскому элементу папки code-to-cloud . Если вы все еще находитесь в каталоге code-to-cloud/src , можно использовать следующую команду, чтобы вернуться в родительскую папку.
cd ../..Используйте следующую команду Git, чтобы клонировать вилку репозитория в папку кода в облако:
git clone https://github.com/$GITHUB_USERNAME/containerapps-albumui.git code-to-cloud-uiПримечание.
Если команда завершается
cloneошибкой, убедитесь, что вы успешно вкрепили репозиторий.Затем измените каталог в папку src клонированного репозитория.
cd code-to-cloud-ui/src
Создание интерфейсного приложения
az acr build --registry $ACR_NAME --image albumapp-ui .
az acr build Выходные данные команды показывают ход отправки исходного кода в Azure и сведения об docker build операции.
Следующая команда создает образ контейнера для пользовательского интерфейса альбома и тегирует его полным именем сервера входа ACR. В
.конце команды представляет контекст сборки Docker, то есть эта команда должна выполняться в папке src , в которой находится Dockerfile.docker build --tag "$ACR_NAME.azurecr.io/albumapp-ui" .
Отправка образа в реестр ACR
Сначала войдите в Реестр контейнеров Azure.
az acr login --name $ACR_NAMEТеперь отправьте образ в реестр.
docker push "$ACR_NAME.azurecr.io/albumapp-ui"
Обмен данными между приложениями-контейнерами
В предыдущем кратком руководстве API альбомов был развернут путем создания приложения-контейнера и включения внешнего входящего трафика. Установка входящего трафика приложения контейнера на внешний url-адрес конечной точки HTTP общедоступным.
Теперь вы можете настроить интерфейсное приложение для вызова конечной точки API, выполнив следующие действия.
- Запросите приложение API для полного доменного имени (FQDN).
- Передайте полное доменное имя
az containerapp createAPI в качестве переменной среды, чтобы приложение пользовательского интерфейса может задать базовый URL-адрес для вызова API альбома в коде.
Приложение пользовательского интерфейса использует конечную точку, предоставленную для вызова API альбомов. Следующий код представляет собой фрагмент кода, используемого в файле маршрутов > index.js .
const api = axios.create({
baseURL: process.env.API_BASE_URL,
params: {},
timeout: process.env.TIMEOUT || 5000,
});
Обратите внимание, как baseURL свойство получает значение из переменной API_BASE_URL среды.
Выполните следующую команду, чтобы запросить адрес конечной точки API.
API_BASE_URL=$(az containerapp show --resource-group $RESOURCE_GROUP --name $API_NAME --query properties.configuration.ingress.fqdn -o tsv)
Теперь, когда вы задаете API_BASE_URL переменную с полным доменным именем API альбома, ее можно предоставить в качестве переменной среды для приложения внешнего контейнера.
Развертывание интерфейсного приложения
Создайте и разверните приложение-контейнер с помощью следующей команды.
az containerapp create \
--name $FRONTEND_NAME \
--resource-group $RESOURCE_GROUP \
--environment $ENVIRONMENT \
--image $ACR_NAME.azurecr.io/albumapp-ui \
--target-port 3000 \
--env-vars API_BASE_URL=https://$API_BASE_URL \
--ingress external \
--registry-server $ACR_NAME.azurecr.io \
--query properties.configuration.ingress.fqdn
Добавив аргумент --env-vars "API_BASE_URL=https://$API_ENDPOINT"az containerapp createв , вы определяете переменную среды для внешнего приложения. В этом синтаксисе для переменной среды задано полное доменное имя API_BASE_URL API.
Выходные данные команды az containerapp create показывают URL-адрес внешнего приложения.
Просмотр веб-сайта
Используйте полное доменное имя приложения контейнера для просмотра веб-сайта. Страница похожа на следующий снимок экрана.
Очистка ресурсов
Если вы не собираетесь продолжать использовать это приложение, выполните приведенную ниже команду, чтобы удалить группу ресурсов вместе со всеми ресурсами, созданными в ходе работы с этим кратким руководством.
Внимание
Эта команда удаляет указанную группу ресурсов и все ресурсы, содержащиеся в ней. Если в указанной группе ресурсов существуют другие ресурсы, кроме созданных для работы с этим учебником, они также будут удалены.
az group delete --name $RESOURCE_GROUP
Совет
Возникли проблемы? Сообщите о них в репозитории Azure Container Apps на GitHub.