Øvelse – Brug Bicep-parametre med flere miljøer
Nu, hvor din arbejdsproces udrulles i begge dine miljøer, er du klar til at integrere med tredjeparts-API'en til produktanmeldelser.
Dit webstedsteam har givet dig de API-nøgler og URL-adresser, som dit websted skal bruge til at få adgang til tjenesten. Der er forskellige værdier for dine test- og produktionsmiljøer at bruge. I dette undermodul skal du opdatere din arbejdsproces for at konfigurere hvert af dine miljøer med de korrekte indstillinger for API'en til produktgennemgang.
Under processen skal du:
- Opret hemmeligheder til gennemsyns-API-nøgler for hvert af dine miljøer.
- Opdater arbejdsprocessen med de korrekte input- og hemmelige værdier for hvert miljø.
- Opdater din Bicep-fil for at overføre de indstillinger, du skal bruge til API'en til produktgennemsyn.
- Gennemse resultaterne af arbejdsprocessen og ændringerne i dit Azure-miljø.
Tilføj hemmeligheder
Du beslutter dig for at gemme API-nøglerne i GitHub-hemmeligheder for at sikre, at de er beskyttet korrekt.
Gå til Indstillinger>Hemmeligheder og variabler>Handlingeri browseren.
Vælg knappen Ny lagerhemmelighed.
Angiv REVIEW_API_KEY_TEST som navnet på hemmeligheden, og sandkassesecretkey som værdien.
Vælg Tilføj hemmelighed.
Gentag processen for at tilføje en anden hemmelighed med navnet REVIEW_API_KEY_PRODUCTION som navnet på hemmeligheden, og productionsecretkey som værdien. Vælg Tilføj hemmelighed.
Opdater den deploy.yml fil for at bruge de nye indstillinger
Åbn filen deploy.yml i Visual Studio Code.
Opdater udløseren for arbejdsprocessen, så den indeholder nye værdier for indstillingerne for
inputs
ogsecrets
:on: workflow_call: inputs: environmentType: required: true type: string resourceGroupName: required: true type: string reviewApiUrl: required: true type: string secrets: AZURE_CLIENT_ID: required: true AZURE_TENANT_ID: required: true AZURE_SUBSCRIPTION_ID: required: true reviewApiKey: required: true
Bemærk, at du inkluderer API-URL-adresserne som input, fordi de ikke er hemmelige værdier.
Opdater trinnene i
validate
job, så de indeholder de nye installationsparametre:jobs: validate: runs-on: ubuntu-latest 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 }} - if: inputs.environmentType != 'Production' uses: azure/arm-deploy@v1 name: Run preflight validation with: deploymentName: ${{ github.run_number }} resourceGroupName: ${{ inputs.resourceGroupName }} template: ./deploy/main.bicep parameters: > environmentType=${{ inputs.environmentType }} reviewApiUrl=${{ inputs.reviewApiUrl }} reviewApiKey=${{ secrets.reviewApiKey }} deploymentMode: Validate - if: inputs.environmentType == 'Production' uses: azure/arm-deploy@v1 name: Run what-if with: failOnStdErr: false resourceGroupName: ${{ inputs.resourceGroupName }} template: ./deploy/main.bicep parameters: > environmentType=${{ inputs.environmentType }} reviewApiUrl=${{ inputs.reviewApiUrl }} reviewApiKey=${{ secrets.reviewApiKey }} additionalArguments: --what-if
Opdater
deploy
job, så det indeholder de nye installationsparametre:deploy: needs: validate environment: ${{ inputs.environmentType }} runs-on: ubuntu-latest outputs: appServiceAppHostName: ${{ steps.deploy.outputs.appServiceAppHostName }} 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/arm-deploy@v1 id: deploy name: Deploy Bicep file with: failOnStdErr: false deploymentName: ${{ github.run_number }} resourceGroupName: ${{ inputs.resourceGroupName }} template: ./deploy/main.bicep parameters: > environmentType=${{ inputs.environmentType }} reviewApiUrl=${{ inputs.reviewApiUrl }} reviewApiKey=${{ secrets.reviewApiKey }}
Gem ændringerne i filen.
Opdater workflow.yml-filen for at angive de nye indstillinger
Åbn filen workflow.yml i Visual Studio Code.
Tilføj de
reviewApiUrl
input og dereviewApiKey
hemmeligheder for hvert miljø:name: deploy-toy-website-environments concurrency: toy-company on: push: branches: - main workflow_dispatch: permissions: id-token: write contents: read jobs: # Lint the Bicep file. lint: uses: ./.github/workflows/lint.yml # Deploy to the test environment. deploy-test: uses: ./.github/workflows/deploy.yml needs: lint with: environmentType: Test resourceGroupName: ToyWebsiteTest reviewApiUrl: https://sandbox.contoso.com/reviews secrets: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID_TEST }} AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} reviewApiKey: ${{ secrets.REVIEW_API_KEY_TEST }} # Deploy to the production environment. deploy-production: uses: ./.github/workflows/deploy.yml needs: deploy-test with: environmentType: Production resourceGroupName: ToyWebsiteProduction reviewApiUrl: https://api.contoso.com/reviews secrets: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID_PRODUCTION }} AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} reviewApiKey: ${{ secrets.REVIEW_API_KEY_PRODUCTION }}
Gem ændringerne i filen.
Opdater Bicep-filen
Åbn filen main.bicep.
Under de parametre, der allerede findes i filen, skal du tilføje følgende parametre for den nye korrektur-API:
@description('The URL to the product review API.') param reviewApiUrl string @secure() @description('The API key to use when accessing the product review API.') param reviewApiKey string
Opdater
appServiceApp
ressourcedefinition for at angive URL-adressen og nøglen til gennemsyns-API'en til programmet, så webstedets kode kan bruge dem:resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { appSettings: [ { name: 'APPINSIGHTS_INSTRUMENTATIONKEY' value: applicationInsights.properties.InstrumentationKey } { name: 'APPLICATIONINSIGHTS_CONNECTION_STRING' value: applicationInsights.properties.ConnectionString } { name: 'ReviewApiUrl' value: reviewApiUrl } { name: 'ReviewApiKey' value: reviewApiKey } ] } } }
Gem ændringerne i filen.
Bekræft og send dine ændringer til dit Git-lager ved hjælp af følgende kommandoer:
git add . git commit -m "Add new review API settings to Bicep file and workflow" git push
Gennemse udrulningsresultaterne
I din browser skal du gå til dine arbejdsproceskørsler.
Vælg den seneste kørsel.
Vælg den seneste kørsel af arbejdsprocessen.
Vent på, at arbejdsprocessen afbrydes midlertidigt, før udruller/udruller job. Det kan tage et par minutter, før arbejdsprocessen når dette punkt.
Godkend udrulningen i produktionsmiljøet ved at vælge Gennemse udrulningerog derefter vælge Produktions og vælge Godkend og udrul.
Vent, indtil arbejdsprocessen er færdig med at køre.
Vælg Code, og vælg derefter miljøet Production.
Bemærk, at du nu kan se flere udrulninger i miljøets historik.
I din browser skal du gå til Azure Portal.
Gå til ressourcegruppen ToyWebsiteProduction.
Åbn Azure App Service-appen på listen over ressourcer.
Vælg Konfiguration.
Vælg Vis værdier.
Bemærk, at værdierne for indstillingerne for ReviewApiKey og ReviewApiUrl er angivet til de værdier, du har konfigureret for produktionsmiljøet.
Sammenlign de aktuelle værdier med konfigurationsindstillingerne for App Service-appen i ressourcegruppen ToyWebsiteTest. Bemærk, at værdierne er forskellige.
Ryd op i ressourcerne
Nu, hvor du har fuldført øvelsen, kan du fjerne ressourcerne, så du ikke faktureres for dem.
Kør følgende kommandoer i Visual Studio Code-terminalen:
az group delete --resource-group ToyWebsiteTest --yes --no-wait
az group delete --resource-group ToyWebsiteProduction --yes --no-wait
Ressourcegruppen slettes i baggrunden.
Remove-AzResourceGroup -Name ToyWebsiteTest -Force
Remove-AzResourceGroup -Name ToyWebsiteProduction -Force