Gyakorlat – Bicep-üzembehelyezési művelet hozzáadása a munkafolyamathoz
Létrehozott egy alapszintű munkafolyamatot, és konfigurálta az Azure- és GitHub-környezeteket a csatlakozáshoz. Most már készen áll arra, hogy üzembe helyezze a webhely Bicep-fájlját az Azure-ban a munkafolyamatból.
Ebben a gyakorlatban a következőket fogja végrehajtani:
- Adjon hozzá egy Bicep-fájlt az adattárhoz.
- Adjon hozzá egy munkafolyamat-lépést az adattár forráskódjának a futó fájlrendszerbe való letöltéséhez.
- Munkafolyamat-lépés hozzáadása az Azure-ba való bejelentkezéshez.
- Adjon hozzá egy munkafolyamat-lépést a Bicep-fájl üzembe helyezéséhez.
- Futtassa újra a munkafolyamatot, és ellenőrizze, hogy sikeresen üzembe helyezte-e a webhelyet.
A webhely Bicep-fájljának hozzáadása a GitHub-adattárhoz
Már elkészítette a webhely Bicep-fájlját, amellyel a környezettől és a konfigurációtól függően különböző konfigurációkat helyezhet üzembe a webhely erőforrásaiban. Itt hozzáadja a Bicep-fájlt az adattárhoz.
Nyissa meg a Visual Studio Code Explorert.
Az adattár gyökerénél hozzon létre egy üzembe helyezési mappát.
A központi telepítési mappában hozzon létre egy main.bicep nevű új fájlt. Győződjön meg arról, hogy a fájlt a központi telepítési mappában hozza létre:
Másolja a következő kódot a main.bicep fájlba:
@description('The Azure region into which the resources should be deployed.') param location string = resourceGroup().location @description('The type of environment. This must be nonprod or prod.') @allowed([ 'nonprod' 'prod' ]) param environmentType string @description('A unique suffix to add to resource names that need to be globally unique.') @maxLength(13) param resourceNameSuffix string = uniqueString(resourceGroup().id) var appServiceAppName = 'toy-website-${resourceNameSuffix}' var appServicePlanName = 'toy-website-plan' var toyManualsStorageAccountName = 'toyweb${resourceNameSuffix}' // Define the SKUs for each component based on the environment type. var environmentConfigurationMap = { nonprod: { appServicePlan: { sku: { name: 'F1' capacity: 1 } } toyManualsStorageAccount: { sku: { name: 'Standard_LRS' } } } prod: { appServicePlan: { sku: { name: 'S1' capacity: 2 } } toyManualsStorageAccount: { sku: { name: 'Standard_ZRS' } } } } var toyManualsStorageAccountConnectionString = 'DefaultEndpointsProtocol=https;AccountName=${toyManualsStorageAccount.name};EndpointSuffix=${environment().suffixes.storage};AccountKey=${toyManualsStorageAccount.listKeys().keys[0].value}' resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = { name: appServicePlanName location: location sku: environmentConfigurationMap[environmentType].appServicePlan.sku } resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { appSettings: [ { name: 'ToyManualsStorageAccountConnectionString' value: toyManualsStorageAccountConnectionString } ] } } } resource toyManualsStorageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = { name: toyManualsStorageAccountName location: location kind: 'StorageV2' sku: environmentConfigurationMap[environmentType].toyManualsStorageAccount.sku }
Mentse a fájl módosításait.
A Visual Studio Code terminálban futtassa ezt a kódot a módosítások szakaszához, a módosítások véglegesítéséhez és a módosítások leküldéséhez az adattárba:
git add deploy/main.bicep git commit -m 'Add Bicep file' git push
A munkafolyamat lépéseinek cseréje
Ezután frissítse a munkafolyamat-definíciót a Bicep-fájl Azure-ban való üzembe helyezéséhez.
Nyissa meg a .github/workflows/workflow.yml fájlt a Visual Studio Code-ban.
A fájl tetején adjon
on:
jobs:
hozzá egy szakasztpermissions:
.name: deploy-toy-website on: [workflow_dispatch] permissions: id-token: write contents: read jobs:
Ez a módosítás lehetővé teszi, hogy a munkafolyamat számítási feladatok identitását használja.
Nevezze át a feladatot a
say-hello
következőredeploy
:jobs: deploy: runs-on: ubuntu-latest steps:
Ha el szeretné távolítani a lépést a
placeholder
munkafolyamat-definícióból, törölje a fájl alsó két sorát.Első lépésként hozzáad egy feladatot, amely ellenőrzi a kódot a futó fájlrendszerében. Adjon hozzá egy új lépést a fájl alján:
jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3
Feljegyzés
Érdemes ezt a kódot begépelni ahelyett, hogy ebből a modulból másolja és illeszti be. Ügyeljen a fájl behúzására. Ha a behúzás nem megfelelő, a YAML-fájl érvénytelen lesz. A Visual Studio Code hullámos vonalak megjelenítésével jelzi a hibákat.
Az imént hozzáadott lépés alatt adjon hozzá egy feladatot, amellyel bejelentkezhet az Azure-környezetbe. Ez a feladat a korábban definiált titkos kulcsokat használja a számítási feladatok identitásának használatával történő bejelentkezéshez:
jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
Az imént hozzáadott lépés alatt adjon hozzá egy újabb lépést a Bicep-telepítés végrehajtásához:
jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: azure/arm-deploy@v1 with: deploymentName: ${{ github.run_number }} resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }} template: ./deploy/main.bicep parameters: environmentType=${{ env.ENVIRONMENT }}
Figyelje meg, hogy ez a feladat az
github.run_number
alapértelmezett környezeti változót használja az Üzembe helyezés elnevezéséhez az Azure-ban. Környezeti változókat is használ az erőforráscsoport nevére és aenvironmentType
Bicep-fájlban lévő paraméterre.Adja hozzá ezeket a változókat és értékeiket a munkafolyamat-fájl tetején, a következők között
permissions:
:jobs
name: deploy-toy-website on: [workflow_dispatch] permissions: id-token: write contents: read env: AZURE_RESOURCEGROUP_NAME: ToyWebsite ENVIRONMENT: nonprod jobs:
Mentse a fájl módosításait. A fájlnak ehhez a példához kell hasonlítania:
name: deploy-toy-website on: [workflow_dispatch] permissions: id-token: write contents: read env: AZURE_RESOURCEGROUP_NAME: ToyWebsite ENVIRONMENT: nonprod jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: azure/arm-deploy@v1 with: deploymentName: ${{ github.run_number }} resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }} template: ./deploy/main.bicep parameters: environmentType=${{ env.ENVIRONMENT }}
A Visual Studio Code terminálon szakaszolja a módosításokat, véglegesítse őket az adattárban, és küldje el őket az Azure-adattárakba:
git add . git commit -m 'Add Azure CLI tasks to workflow' git push
A munkafolyamat futtatása
Most már készen áll a munkafolyamat futtatására!
A böngészőben nyissa meg a munkafolyamatot az Actions deploy-toy-website (Műveletek>üzembe helyezési webhely) lehetőség kiválasztásával.
Válassza a Munkafolyamat>futtatása munkafolyamat futtatása lehetőséget.
A munkafolyamat új futtatása megjelenik a futtatások listájában. Ha nem jelenik meg, frissítse a böngészőlapot.
Válassza ki a futó munkafolyamatot a futtatás részleteinek megtekintéséhez.
Várja meg, amíg a futtatás befejeződik.
Válassza ki az üzembe helyezési feladatot.
Válassza az Azure/arm-deploy@v1 futtatása lehetőséget. Ez megjeleníti a tevékenység részleteit.
Válassza az Azure/arm-deploy@v1 futtatása lehetőséget a feladat részletei között.
Figyelje meg, hogy ez a lépés a munkafolyamat-fájlhoz hozzáadott környezeti változókat használja.
Vizsgálja meg a munkafolyamat többi kimenetét.
A munkafolyamat sikeres üzembe helyezést mutat.
Az üzemelő példány ellenőrzése
Nyissa meg az Azure Portalt.
A bal oldali menüben válassza az Erőforráscsoportok elemet.
Válassza a ToyWebsite lehetőséget.
Az Áttekintésben tekintse meg az üzembe helyezés állapotát. Láthatja, hogy egy üzembe helyezés sikeres volt.
Az üzembe helyezés részleteinek megtekintéséhez kattintson az 1 Sikeres hivatkozásra.
Figyelje meg, hogy az üzembe helyezés neve megegyezik a munkafolyamat Futtatási számával a GitHub Actionsben, mivel a
github.run_number
környezeti változóval nevezte el az üzembe helyezést.Az üzembe helyezett erőforrások megtekintéséhez válassza ki az üzembe helyezést. Az üzembe helyezés kibontásához és további részletek megtekintéséhez válassza az Üzembe helyezés részletei lehetőséget. Ebben az esetben van egy tárfiók, egy Azure-alkalmazás Service-csomag és egy alkalmazás.