Cvičení – publikování specifikace šablony
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.
V editoru Visual Studio Code rozbalte složku .github/workflows v kořenovém adresáři úložiště.
Otevřete soubor template-spec-linux-app-service.yml.
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í triggeruworkflow_dispatch
.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.
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í.
Uložte změny souboru.
Ověření a potvrzení definice pracovního postupu
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.
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
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.
Zobrazí se okno prohlížeče. Možná se budete muset znovu přihlásit k GitHubu. Vyberte Autorizovat.
Aktivace pracovního postupu
V prohlížeči vyberte kartu 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ě.
Vyberte pracovní postup šablony-spec-linux-app-service, vyberte tlačítko Spustit pracovní postup a pak vyberte Spustit pracovní postup.
GitHub spustí nové spuštění pracovního postupu. Možná budete muset aktualizovat okno prohlížeče, aby se zobrazilo spuštění.
V seznamu vyberte nejnovější spuštění.
Počkejte, až se pracovní postup dokončí. Pokud ano, specifikace šablony se publikuje do Azure.
Poznamenejte si číslo spuštění pracovního postupu, což je pravděpodobně 2.
Kontrola specifikace šablony v Azure
Specifikace publikované šablony můžete zobrazit také na webu Azure Portal.
V prohlížeči přejděte na web Azure Portal.
Přejděte do skupiny prostředků ToyReusable a vyberte specifikaci šablony linux-app-service .
Prozkoumejte 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.