Exercício - Publicar uma especificação de modelo

Concluído

Sua equipe tem alguns arquivos Bicep com segurança reforçada que são compatíveis com o novo modelo de governança da sua empresa. Um dos arquivos Bicep protegidos implanta um aplicativo do Serviço de Aplicativo do Azure baseado em Linux. Neste exercício, você usa um pipeline de implantação para publicar o arquivo Bicep como uma especificação de modelo.

Durante o processo, você:

  • Adicione um estágio de fiapos ao pipeline.
  • Adicione um estágio de pipeline para publicar a especificação do modelo.
  • Verifique se o pipeline inicia e termina com êxito.
  • Verifique a especificação do modelo publicado no Azure.

Adicione um estágio de fiapos ao seu pipeline

Seu repositório contém um rascunho de uma definição de pipeline que você pode usar como ponto de partida.

  1. No Visual Studio Code, expanda a pasta template-specs/linux-app-service na raiz do repositório.

  2. Abra o arquivo pipeline.yml .

    Captura de tela do Visual Studio Code que mostra o local do arquivo de definição de pipeline.

  3. Na parte inferior do arquivo, substitua # To be added pela seguinte definição de estágio de fiapos:

    stages:
    
    - stage: Lint
      jobs:
      - job: LintCode
        displayName: Lint code
        steps:
          - script: |
              az bicep build --file $(TemplateSpecFilePath)
            name: LintBicepCode
            displayName: Run Bicep linter
    

    Seu repositório tem um arquivo bicepconfig.json que configura o linter para emitir erros em vez de avisos. Quaisquer falhas durante o estágio de fiapos farão com que o pipeline falhe.

    Gorjeta

    Os arquivos YAML são sensíveis ao recuo. Quer escreva ou cole este código, certifique-se de que o recuo está correto. Mais adiante neste exercício, você verá a definição completa do pipeline YAML para que possa verificar se o arquivo corresponde.

Adicionar um estágio de publicação ao seu pipeline

Agora, você pode adicionar um segundo estágio para publicar a especificação do modelo no Azure.

  1. Adicione o seguinte código no final do arquivo pipeline.yml :

    - stage: Publish
      jobs:
      - job: Publish
        steps:
          - task: AzureCLI@2
            name: Publish
            displayName: Publish template spec
            inputs:
              azureSubscription: $(ServiceConnectionName)
              scriptType: 'bash'
              scriptLocation: 'inlineScript'
              inlineScript: |
                az ts create \
                  --resource-group $(AzureResourceGroupName) \
                  --name $(TemplateSpecName) \
                  --version $(Build.BuildNumber) \
                  --template-file $(TemplateSpecFilePath) \
                  --location $(AzureRegion) \
                  --yes
    

    Esta etapa faz check-out do código do repositório e entra no Azure usando a conexão de serviço que você criou. Em seguida, ele executa o az ts create comando para publicar a especificação do modelo no Azure.

    Gorjeta

    Para simplificar, seu pipeline usa o número de compilação do pipeline como o número de versão da especificação do modelo. Na próxima unidade, você aprenderá sobre um esquema de controle de versão mais complexo.

  2. Guarde as alterações ao ficheiro.

Verificar e confirmar sua definição de pipeline

  1. Verifique se o arquivo pipeline.yml se parece com o exemplo a seguir:

    trigger:
      batch: true
      branches:
        include:
        - main
      paths:
        include:
        - 'template-specs/linux-app-service/**'
    
    variables:
    - name: ServiceConnectionName
      value: ToyReusable
    - name: AzureResourceGroupName
      value: ToyReusable
    - name: AzureRegion
      value: westus3
    - name: TemplateSpecName
      value: linux-app-service
    - name: TemplateSpecFilePath
      value: template-specs/linux-app-service/main.bicep
    
    pool:
      vmImage: ubuntu-latest
    
    stages:
    
    - stage: Lint
      jobs:
      - job: LintCode
        displayName: Lint code
        steps:
          - script: |
              az bicep build --file $(TemplateSpecFilePath)
            name: LintBicepCode
            displayName: Run Bicep linter
    
    - stage: Publish
      jobs:
      - job: Publish
        steps:
          - task: AzureCLI@2
            name: Publish
            displayName: Publish template spec
            inputs:
              azureSubscription: $(ServiceConnectionName)
              scriptType: 'bash'
              scriptLocation: 'inlineScript'
              inlineScript: |
                az ts create \
                  --resource-group $(AzureResourceGroupName) \
                  --name $(TemplateSpecName) \
                  --version $(Build.BuildNumber) \
                  --template-file $(TemplateSpecFilePath) \
                  --location $(AzureRegion) \
                  --yes
    

    Caso contrário, atualize-o para corresponder a este exemplo e salve-o.

  2. Confirme e envie suas alterações para o repositório Git executando os seguintes comandos no terminal do Visual Studio Code:

    git add .
    git commit -m "Add lint and publish stages to Linux App Service template spec pipeline"
    git push
    

    Imediatamente após o push, o Azure Pipelines inicia uma nova execução de pipeline.

Monitorizar o pipeline

  1. No navegador, selecione Pipelines>Pipelines.

    Captura de tela do Azure Pipelines que mostra o item de menu Pipelines.

  2. Selecione a execução do pipeline ativo.

  3. A execução do pipeline é exibida.

    Aguarde até que a execução do pipeline termine. Quando isso acontece, a especificação do modelo é publicada no Azure.

    Captura de tela do Azure Pipelines que mostra uma execução bem-sucedida do pipeline e destaca o número da compilação.

  4. Observe o número de compilação do pipeline, que inclui a data de hoje e um número de revisão exclusivo. Na captura de tela de exemplo, o número de compilação é 20230407.1.

Rever a especificação do modelo no Azure

Você também pode exibir a especificação de modelo publicada no portal do Azure.

  1. No browser, aceda ao Portal do Azure.

  2. Vá para o grupo de recursos ToyReusable e selecione a especificação do modelo linux-app-service .

    Captura de ecrã do portal do Azure que mostra o grupo de recursos, com a especificação do modelo realçada.

  3. Examine os detalhes da especificação do modelo.

    Captura de ecrã do portal do Azure que mostra os detalhes das especificações do modelo.

    Observe que a versão mais recente e o número da versão é o mesmo que o número de compilação do pipeline. Seu pipeline usa o número de compilação para o número de versão da especificação do modelo.