Упражнение. Настройка, развертывание и запуск приложения в Azure
Пришло время запустить приложение в Azure. Необходимо создать приложение службы приложение Azure, настроить его с помощью управляемого удостоверения и конфигурации хранилища и развернуть код.
Создание приложения и плана Службы приложений
Создание приложения Службы приложений состоит из двух этапов: сначала создается план, а затем — приложение.
Имя плана должно быть уникальным только в вашей подписке, поэтому вы можете использовать то же имя: keyvault-exercise-plan
Имя приложения должно быть глобально уникальным, однако, поэтому выберите свой собственный.
В службе Azure Cloud Shell выполните следующую команду, чтобы создать план службы приложений.
az appservice plan create \ --name keyvault-exercise-plan \ --sku FREE \ --location centralus \ --resource-group "<rgn>[sandbox resource group name]</rgn>"
Затем, чтобы создать веб-приложение, использующее созданный план Служба приложений, выполните следующую команду. Обязательно замените
<your-unique-app-name>
именем своего приложения в параметре--name
.az webapp create \ --plan keyvault-exercise-plan \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name <your-unique-app-name>
az webapp create \ --plan keyvault-exercise-plan \ --runtime "node|16LTS" \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name <your-unique-app-name>
Добавление конфигурации в приложение
Чтобы развернуть в Azure, следуйте Служба приложений рекомендации по созданию VaultName
конфигурации в параметре приложения вместо файла конфигурации. Выполните эту команду для создания параметров приложения. Обязательно замените <your-unique-app-name>
именем своего приложения в параметре --name
и <your-unique-vault-name>
именем своего хранилища в параметре --settings
.
az webapp config appsettings set \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name <your-unique-app-name> \
--settings 'VaultName=<your-unique-vault-name>'
Чтобы развернуть в Azure, следуйте Служба приложений рекомендации по созданию VaultName
конфигурации в параметре приложения вместо файла конфигурации. Вы также установите SCM_DO_BUILD_DURING_DEPLOYMENT
параметр true
таким образом, чтобы Служба приложений восстанавливает пакеты приложения на сервере и создает необходимую конфигурацию для запуска приложения. Выполните эту команду для создания параметров приложения. Обязательно замените <your-unique-app-name>
именем своего приложения в параметре --name
и <your-unique-vault-name>
именем своего хранилища в параметре --settings
.
az webapp config appsettings set \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name <your-unique-app-name> \
--settings 'VaultName=<your-unique-vault-name>' 'SCM_DO_BUILD_DURING_DEPLOYMENT=true'
Включение управляемого удостоверения
Включение управляемого удостоверения для приложения выполняется одной строкой. Чтобы включить его в приложении, воспользуйтесь следующей командой. Обязательно замените <your-unique-app-name>
именем своего приложения в параметре --name
.
az webapp identity assign \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name <your-unique-app-name>
Скопируйте principalId
значение из результирующего выходных данных JSON.
PrincipalId
— это уникальный идентификатор нового удостоверения приложения в идентификаторе Microsoft Entra ID, и вы собираетесь использовать его на следующем шаге.
Предоставление доступа к хранилищу
Последний шаг перед развертыванием — присвоить разрешения Key Vault управляемому удостоверению приложения. Обязательно замените <your-unique-vault-name>
имя хранилища в параметре --name
и введите principalId
значение, скопированное на предыдущем шаге, в качестве значения object-id
в следующей команде. Чтобы установить Get
и List
получить доступ, выполните следующую команду.
az keyvault set-policy \
--secret-permissions get list \
--name <your-unique-vault-name> \
--object-id <your-managed-identity-principleid>
Развертывание и оценка приложения
Конфигурация настроена, и вы можете приступать к развертыванию. Следующие команды публикуют сайт в папке pub, запакуйте его в site.zip и разверните ZIP-файл в Служба приложений. Обязательно замените
<your-unique-app-name>
именем своего приложения в параметре--name
.Примечание.
Необходимо выполнить команду
cd
, чтобы вернуться в каталог KeyVaultDemoApp, если вы еще в нем не находитесь.dotnet publish -o pub zip -j site.zip pub/* az webapp deploy \ --src-path site.zip \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name <your-unique-app-name>
Конфигурация настроена, и вы можете приступать к развертыванию. Следующие команды запаковывят приложение в site.zip и развернет его в Служба приложений. Мы исключим
node_modules
из ZIP-файла, так как Служба приложений автоматически восстанавливает их при развертывании. Обязательно замените<your-unique-app-name>
именем своего приложения в параметре--name
.Примечание.
Если вы еще не находитесь в каталоге, используйте
KeyVaultDemoApp
команду, чтобы вернуться к нейcd
.zip site.zip * -x node_modules/ az webapp deploy \ --src-path site.zip \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name <your-unique-app-name>
- Развертывание может занять минуту или два. После получения результата, указывающего, что развернутый сайт открывается
https://<your-unique-app-name>.azurewebsites.net/api/SecretTest
в браузере. Приложение занимает некоторое время, чтобы начать работу в первый раз на сервере, но после этого вы увидите значение секрета, reindeer_flotilla.
Приложение готово и развернуто.