Powershell + Azure Служба приложений + Azure Реестр контейнеров - PullRequest
0 голосов
/ 26 апреля 2020

Я использую PowerShell для обработки различных функций CI / CD.

============================ ================

Вот что я сделал до сих пор.

  1. Сборка NodeJS Приложение
  2. Пакет NodeJS Приложение в контейнере
  3. Publi sh Контейнер в приват Azure Реестр контейнеров

=============== ==============================

Вот что я пытаюсь выяснить.

  1. Создание плана обслуживания приложения на лету
  2. Создание веб-приложения (контейнера) на лету
  3. Загрузка контейнера из ACR в службу приложений

Вот мой код Кажется, он не работает.

$azureContainerCredential = Get-AzContainerRegistryCredential -ResourceGroupName $env:AZURE_CONTAINER_REGISTRY_RESOURCE_GROUP -Name $env:AZURE_CONTAINER_REGISTRY_NAME
$azureSecuredPassword = ConvertTo-SecureString $azureContainerCredential.Password -AsPlainText -Force

$azureContainerRegistry = Get-AzContainerRegistry -ResourceGroupName $env:AZURE_CONTAINER_REGISTRY_RESOURCE_GROUP

$azureAppServicePlan = Get-AzAppServicePlan -ResourceGroupName "amlihelloworld" -Name "amlihelloworld-app-service-plan"

if($null -eq $azureAppServicePlan)
{
  "==============================================================================="
   Write-Output  "CREATING HELLO WORLD WEB APPLICATION"

   $azureAppServicePlan = New-AzAppServicePlan -Name "amlihelloworld-app-service-plan" -Location "Central 
   US" -ResourceGroupName "amlihelloworld" -Tier Standard

   $azureApp = New-AzWebApp -ResourceGroupName "amlihelloworld" -Name "amlihelloworld2" -AppServicePlan 
   $azureAppServicePlan.Name -ContainerImageName "amlihelloworld:20200422.7" -ContainerRegistryPassword 
   $azureSecuredPassword  -ContainerRegistryUrl $azureContainerRegistry.LoginServer - 
     ContainerRegistryUser $azureContainerCredential.Username

   $azureAppSlot = New-AzWebAppSlot -Name $azureApp.Name  -ResourceGroupName "amlihelloworld" -Slot 
    "development"
}

$azureApp1 = Get-AzWebApp -ResourceGroupName "amlihelloworld" -Name "amlihelloworld"

=============================== =============

Вот что происходит

Когда я переключаю слоты в свое приложение для производства.

Это не так кажется, что мое приложение вообще отображается.

Как я могу узнать, загрузило ли оно мое приложение или нет?

1 Ответ

0 голосов
/ 27 апреля 2020

На самом деле, я не думаю, что в коде есть проблема логики c, но проблема для самих команд.

Во-первых, если вы хотите разрезать команду PowerShell на несколько строк, вам нужно добавить символ ` и добавить каждую строку, кроме последней. И вам лучше использовать то же имя веб-приложения, если вы хотите его получить. Поэтому вы хотели бы внести небольшие изменения в свой код:

$azureContainerCredential = Get-AzContainerRegistryCredential -ResourceGroupName $env:AZURE_CONTAINER_REGISTRY_RESOURCE_GROUP -Name $env:AZURE_CONTAINER_REGISTRY_NAME
$azureSecuredPassword = ConvertTo-SecureString $azureContainerCredential.Password -AsPlainText -Force

$azureContainerRegistry = Get-AzContainerRegistry -ResourceGroupName $env:AZURE_CONTAINER_REGISTRY_RESOURCE_GROUP

$azureAppServicePlan = Get-AzAppServicePlan -ResourceGroupName "amlihelloworld" -Name "amlihelloworld-app-service-plan"

if($null -eq $azureAppServicePlan)
{
  "==============================================================================="
   Write-Output  "CREATING HELLO WORLD WEB APPLICATION"

   $azureAppServicePlan = New-AzAppServicePlan -Name "amlihelloworld-app-service-plan" -Location "Central 
   US" -ResourceGroupName "amlihelloworld" -Tier Standard

   $azureApp = New-AzWebApp -ResourceGroupName "amlihelloworld" -Name "amlihelloworld2" `
   -AppServicePlan $azureAppServicePlan.Name `
   -ContainerImageName "amlihelloworld:20200422.7" `
   -ContainerRegistryPassword $azureSecuredPassword  `
   -ContainerRegistryUrl $azureContainerRegistry.LoginServer `
   -ContainerRegistryUser $azureContainerCredential.Username

   $azureAppSlot = New-AzWebAppSlot -Name $azureApp.Name  -ResourceGroupName "amlihelloworld" -Slot 
    "development"
}

$azureApp1 = Get-AzWebApp -ResourceGroupName "amlihelloworld" -Name "amlihelloworld2"

Вам также необходимо тщательно проверить, существуют ли переменные среды как обычно.

...