Exercício - Publicar uma especificação de modelo
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 endurecidos implanta uma aplicação do App Service do Azure baseada 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 uma etapa no pipeline para publicar a especificação do template.
- Verifique se a linha de processamento 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.
No Visual Studio Code, expanda a pasta template-specs/linux-app-service na raiz do repositório.
Abra o arquivo pipeline.yml.
No final do ficheiro, substitua
# To be added
pela seguinte definição de fase de lint: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.
Dica
Os arquivos YAML são sensíveis à indentação. Quer escreva ou cole este código, certifique-se de que a indentação está correta. 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.
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 efetua o check-out do código do seu repositório e inicia sessão no Azure usando a ligação de serviço que foi criada. Em seguida, ele executa o comando
az ts create
para publicar a especificação do modelo no Azure.Dica
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.
Salve as alterações no arquivo.
Verifique e confirme a sua definição de pipeline.
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.
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
No navegador, selecione Pipelines>Pipelines.
Selecione a execução ativa do pipeline.
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.
Observe o número de compilação do pipeline, que inclui a data de hoje e um número de revisão exclusivo. No exemplo de screenshot, 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.
No seu navegador, aceda ao portal Azure.
Vá para o grupo de recursos ToyReusable e selecione a especificação de modelo linux-app-service.
Examine os detalhes da especificação do modelo.
Observe que o número da última versão e o número da versão são os mesmos que o número de compilação do pipeline. O seu pipeline usa o número de compilação para o número de versão da especificação do template.