Exercício – Publicar uma especificação de modelo
Sua equipe criou alguns arquivos Bicep protegidos com segurança que estão em conformidade com o novo modelo de governança da empresa. Um dos arquivos Bicep protegidos implementa um aplicativo do Serviço de Aplicativo do Azure com base 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ê vai:
- Adicionar uma fase de lint ao pipeline.
- Adicionar uma fase do pipeline para publicar a especificação de modelo.
- Verificar se o pipeline é iniciado e concluído com êxito.
- Verificar a especificação de modelo publicada no Azure.
Adicionar uma fase de lint ao pipeline
O 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.
Na parte inferior do arquivo, 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
O repositório tem um arquivo bicepconfig.json que configura o linter para emitir erros em vez de avisos. Se houver alguma falha durante a fase de lint, o pipeline falhará.
Dica
Os arquivos YAML são sensíveis ao recuo. Independentemente de você digitar ou colar esse código, verifique se o recuo está correto. Mais adiante neste exercício, você verá a definição completa do pipeline YAML para verificar se o seu arquivo é correspondente.
Adicionar uma fase de publicação ao pipeline
Agora, você pode adicionar uma segunda fase para publicar a especificação de 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
Essa fase verifica o código do repositório e entra no Azure usando a conexão de serviço que você criou. Depois, ela executa o comando
az ts create
para publicar a especificação de modelo no Azure.Dica
Para simplificar as coisas, o pipeline usa o número de build do pipeline como o número de versão da especificação de modelo. Na próxima unidade, você conhecerá um esquema de controle de versão mais complexo.
Salve as alterações no arquivo.
Verificar a definição de pipeline e fazer commit dela
Verifique se o arquivo pipeline.yml é semelhante ao seguinte exemplo:
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.
Faça commit e efetue push das alterações no 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 iniciará uma nova execução de pipeline.
Monitorar o Pipeline
No navegador, selecione Pipelines>Pipelines.
Selecione a execução de pipeline ativa.
A execução de pipeline é exibida.
Aguarde a conclusão da execução de pipeline. Quando isso acontece, a especificação de modelo é publicada no Azure.
Observe o número de build 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 build é 20230407.1.
Examinar a especificação de modelo no Azure
Você também pode ver a especificação de modelo publicada no portal do Azure.
No navegador, acesse o portal do Azure.
Acesse o grupo de recursos ToyReusable e selecione a especificação de modelo linux-app-service.
Examine os detalhes da especificação de modelo.
Observe que o número da Última versão e da Versão são iguais ao número de build do pipeline. O pipeline usa o número de build como o número de versão da especificação de modelo.