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 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.
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 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.
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.
Guarde as alterações ao ficheiro.
Verificar e confirmar 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 do pipeline ativo.
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. 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.
No browser, aceda ao Portal do Azure.
Vá para o grupo de recursos ToyReusable e selecione a especificação do modelo linux-app-service .
Examine os detalhes da especificação 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.