Cvičení – publikování specifikace šablony

Dokončeno

Váš tým vytvořil některé soubory Bicep posílené zabezpečením, které vyhovují novému modelu zásad správného řízení vaší společnosti. Jeden z posílených souborů Bicep nasadí aplikaci Aplikace Azure Service založenou na Linuxu. V tomto cvičení použijete pracovní postup nasazení k publikování souboru Bicep jako specifikace šablony.

Během tohoto procesu:

  • Přidejte do pracovního postupu úlohu lint.
  • Přidejte úlohu pracovního postupu pro publikování specifikace šablony.
  • Ručně spusťte pracovní postup a ověřte, že se úspěšně dokončil.
  • Zkontrolujte specifikaci publikované šablony v Azure.

Přidání úlohy lint do pracovního postupu

Úložiště obsahuje koncept pracovního postupu, který můžete použít jako výchozí bod.

  1. V editoru Visual Studio Code rozbalte složku .github/workflows v kořenovém adresáři úložiště.

  2. Otevřete soubor template-spec-linux-app-service.yml.

    Snímek obrazovky editoru Visual Studio Code, který zobrazuje umístění definičního souboru pracovního postupu

    Definice pracovního postupu obsahuje dva triggery. V tomto cvičení neupravujete soubor Bicep pro specifikaci šablony, takže push se trigger nikdy neaktivuje. Pokud chcete pracovní postup vyzkoušet, ručně ho vyvoláte pomocí triggeru workflow_dispatch .

  3. V dolní části souboru, kde se zobrazí komentář s textem # To be added, přidejte následující definici úlohy lint:

    jobs:
      lint:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v3
        - name: Run Bicep linter
          run: az bicep build --file ${{ env.TEMPLATE_SPEC_FILE_PATH }}
    

    Vaše úložiště obsahuje bicepconfig.json soubor, který konfiguruje linter tak, aby místo upozornění vygeneroval chyby. Jakákoli selhání během úlohy lint způsobí selhání pracovního postupu.

    Tip

    Soubory YAML jsou citlivé na odsazení. Bez ohledu na to, jestli tento kód napíšete nebo vložíte, zkontrolujte správnost odsazení. Později v tomto cvičení uvidíte úplnou definici pracovního postupu YAML, abyste mohli ověřit, že se váš soubor shoduje.

Přidání úlohy publikování do pracovního postupu

Teď můžete přidat druhou úlohu pro publikování specifikace šablony do Azure.

  1. Na konec souboru template-spec-linux-app-service.yml přidejte následující kód:

    publish:
      runs-on: ubuntu-latest
      needs: [ lint ]
      steps:
      - uses: actions/checkout@v3
      - uses: azure/login@v1
        name: Sign in to Azure
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
      - uses: azure/cli@v1
        name: Publish template spec
        with:
          inlineScript: |
            az ts create \
              --resource-group ${{ env.AZURE_RESOURCEGROUP_NAME }} \
              --name ${{ env.TEMPLATE_SPEC_NAME }} \
              --version ${{ github.run_number }} \
              --template-file ${{ env.TEMPLATE_SPEC_FILE_PATH }} \
              --location ${{ env.AZURE_REGION }} \
              --yes
    

    Tato úloha zkontroluje kód z vašeho úložiště a přihlásí se k Azure pomocí tajných kódů GitHubu, které jste vytvořili. Potom spustí az ts create příkaz pro publikování specifikace šablony do Azure.

    Tip

    Aby bylo všechno jednoduché, pracovní postup používá číslo spuštění pracovního postupu jako číslo verze specifikace šablony. V další lekci se dozvíte o složitějším schématu správy verzí.

  2. Uložte změny souboru.

Ověření a potvrzení definice pracovního postupu

  1. Ověřte, že váš soubor template-spec-linux-app-service.yml vypadá jako v následujícím příkladu:

    name: template-spec-linux-app-service
    concurrency: template-spec-linux-app-service
    
    on:
      workflow_dispatch:
      push:
        branches:
          - main
        paths:
          - 'template-specs/linux-app-service/**'
    
    permissions:
      id-token: write
      contents: read
    
    env:
      AZURE_RESOURCEGROUP_NAME: ToyReusable
      AZURE_REGION: westus3
      TEMPLATE_SPEC_NAME: linux-app-service
      TEMPLATE_SPEC_FILE_PATH: template-specs/linux-app-service/main.bicep
    
    jobs:
      lint:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v3
        - name: Run Bicep linter
          run: az bicep build --file ${{ env.TEMPLATE_SPEC_FILE_PATH }}
    
      publish:
        runs-on: ubuntu-latest
        needs: [ lint ]
        steps:
        - uses: actions/checkout@v3
        - uses: azure/login@v1
          name: Sign in to Azure
          with:
            client-id: ${{ secrets.AZURE_CLIENT_ID }}
            tenant-id: ${{ secrets.AZURE_TENANT_ID }}
            subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
        - uses: azure/cli@v1
          name: Publish template spec
          with:
            inlineScript: |
              az ts create \
                --resource-group ${{ env.AZURE_RESOURCEGROUP_NAME }} \
                --name ${{ env.TEMPLATE_SPEC_NAME }} \
                --version ${{ github.run_number }} \
                --template-file ${{ env.TEMPLATE_SPEC_FILE_PATH }} \
                --location ${{ env.AZURE_REGION }} \
                --yes
    

    Pokud tomu tak není, aktualizujte ho tak, aby odpovídal tomuto příkladu, a pak ho uložte.

  2. Potvrďte a nasdílejte změny do úložiště Git spuštěním následujících příkazů v terminálu editoru Visual Studio Code:

    git add .
    git commit -m "Add lint and publish jobs to Linux App Service template spec workflow"
    git push
    
  3. To je poprvé, co jste do tohoto úložiště nasdíleli, takže se může zobrazit výzva k přihlášení.

    Ve Windows zadejte 1 , který chcete ověřit pomocí webového prohlížeče, a pak vyberte Enter.

    V systému macOS vyberte Autorizovat.

  4. Zobrazí se okno prohlížeče. Možná se budete muset znovu přihlásit k GitHubu. Vyberte Autorizovat.

Aktivace pracovního postupu

  1. V prohlížeči vyberte kartu Akce .

    Snímek obrazovky GitHubu s kartou Akce

    Spuštěné pracovní postupy, které selhaly, jsou už uvedené, ale nemusíte se o ně starat. Spuštění selhala, protože definice pracovního postupu se ještě nedokončily při vytváření úložiště.

  2. Vyberte pracovní postup šablony-spec-linux-app-service, vyberte tlačítko Spustit pracovní postup a pak vyberte Spustit pracovní postup.

    Snímek obrazovky GitHubu, který zobrazuje výběry pro spuštění pracovního postupu specifikace šablony

    GitHub spustí nové spuštění pracovního postupu. Možná budete muset aktualizovat okno prohlížeče, aby se zobrazilo spuštění.

  3. V seznamu vyberte nejnovější spuštění.

    Snímek obrazovky GitHubu, který zvýrazňuje nejnovější spuštění pracovního postupu specifikace šablony

    Počkejte, až se pracovní postup dokončí. Pokud ano, specifikace šablony se publikuje do Azure.

  4. Poznamenejte si číslo spuštění pracovního postupu, což je pravděpodobně 2.

    Snímek obrazovky GitHubu s úspěšným spuštěním pracovního postupu a zvýrazněným číslem spuštění

Kontrola specifikace šablony v Azure

Specifikace publikované šablony můžete zobrazit také na webu Azure Portal.

  1. V prohlížeči přejděte na web Azure Portal.

  2. Přejděte do skupiny prostředků ToyReusable a vyberte specifikaci šablony linux-app-service .

    Snímek obrazovky webu Azure Portal zobrazící skupinu prostředků se zvýrazněnou specifikací šablony

  3. Prozkoumejte podrobnosti specifikace šablony.

    Snímek obrazovky webu Azure Portal znázorňující podrobnosti specifikace šablony

    Všimněte si, že nejnovější verze a číslo verze jsou stejné jako číslo spuštění pracovního postupu. Váš pracovní postup používá číslo spuštění pro číslo verze specifikace šablony.