Создание приложения Службы приложений с поддержкой Arc (предварительная версия)
В этом кратком руководстве показано, как создать приложение Службы приложений для кластера Kubernetes с поддержкой Azure Arc (предварительная версия). Этот сценарий поддерживает только приложения Linux. Вы можете использовать встроенный стек языка или пользовательский контейнер.
Необходимые компоненты
Добавление расширений Azure CLI
Откройте среду Bash в Azure Cloud Shell.
Так как эти команды интерфейса командной строки пока не входят в основной набор CLI, добавьте их с помощью следующих команд:
az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube
1. Создание группы ресурсов
Выполните следующую команду.
az group create --name myResourceGroup --location eastus
2. Получение пользовательского расположения
Получите сведения о пользовательском расположении от администратора кластера (см. раздел Создание пользовательского расположения).
customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"
Получите ИД пользовательского расположения, который нам потребуется на следующем шаге.
customLocationId=$(az customlocation show \
--resource-group $customLocationGroup \
--name $customLocationName \
--query id \
--output tsv)
3. Создание приложения
В приведенном ниже примере создается приложение Node.js. Замените <app-name>
на имя, уникальное в пределах кластера (допустимые символы: a-z
, 0-9
и -
).
Поддерживаемые среды выполнения:
Description | Значение среды выполнения для CLI |
---|---|
.NET Core 3.1. | DOTNETCORE|3.1 |
.NET 5.0 | DOTNETCORE|6.0 |
Узел JS 12 | NODE|12-lts |
Узел JS 14 | NODE|14-lts |
Python 3.6 | PYTHON|3.6 |
Python 3.7 | PYTHON|3.7 |
Python 3.8 | PYTHON|3.8 |
PHP 7.3 | PHP|7.3 |
PHP 7.4 | PHP|7.4 |
Java 8 | JAVA|8-jre8 |
Java 11 | JAVA|11-java11 |
Tomcat 8.5 | TOMCAT|8.5-jre8 |
Tomcat 8.5 | TOMCAT|8.5-java11 |
Tomcat 9.0 | TOMCAT|9.0-jre8 |
Tomcat 9.0 | TOMCAT|9.0-java11 |
az webapp create \
--resource-group myResourceGroup \
--name <app-name> \
--custom-location $customLocationId \
--runtime 'NODE|14-lts'
4. Развертывание кода
Примечание.
az webapp up
не поддерживается в общедоступной предварительной версии.
Получите пример приложения Node.js из GIT и разверните его с помощью ZIP deploy. Замените <app-name>
на имя своего веб-приложения.
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world
cd nodejs-docs-hello-world
zip -r package.zip .
az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
az webapp deployment source config-zip --resource-group myResourceGroup --name <app-name> --src package.zip
5. Получение журналов диагностики с помощью Log Analytics
Примечание.
Для использования службы Log Analytics ее необходимо включить при установке расширения Службы приложений. Если расширение установлено без Log Analytics, пропустите этот шаг.
Перейдите в рабочую область Log Analytics, настроенную для расширения Службы приложений, и в левой области навигации выберите пункт "Журналы". Выполните приведенный ниже пример запроса, чтобы отобразить журналы за последние 72 часа. Замените <app-name>
на имя своего веб-приложения. Если при выполнении запроса возникла ошибка, повторите попытку через 10–15 минут (Log Analytics может начать получение журналов из приложения с задержкой).
let StartTime = ago(72h);
let EndTime = now();
AppServiceConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where AppName_s =~ "<app-name>"
Журналы приложений для всех приложений, размещенных в кластере Kubernetes, ведутся в рабочей области Log Analytics в пользовательской таблице журналов AppServiceConsoleLogs_CL
.
Log_s содержит журналы приложений для данной Службы приложений, а AppName_s — имя приложения Службы приложений. Помимо журналов, которые ведутся посредством кода приложения, в столбце Log_s также содержатся журналы со сведениями о запуске контейнеров, завершении их работы и приложениях-функциях.
Дополнительные сведения о запросах к журналам см. в статье о начале работы с Kusto.
(Необязательно) Развертывание пользовательского контейнера
Чтобы создать пользовательское контейнерное приложение, выполните команду az webapp create с параметром --deployment-container-image-name
. Для частного репозитория добавьте --docker-registry-server-user
и --docker-registry-server-password
.
Например, попробуйте выполнить такую команду:
az webapp create \
--resource-group myResourceGroup \
--name <app-name> \
--custom-location $customLocationId \
--deployment-container-image-name mcr.microsoft.com/appsvc/staticsite:latest
Сведения о том, как обновить образ после создания приложения, см. в статье Изменение образа DOCKER пользовательского контейнера.