Cvičení – použití parametrů Bicep s několika prostředími
Teď, když se váš pracovní postup nasadí do obou vašich prostředí, jste připraveni integrovat s rozhraním API třetích stran pro recenze produktů.
Váš webový tým vám poskytl klíče rozhraní API a adresy URL, které by váš web měl použít pro přístup ke službě. Pro použití testovacího a produkčního prostředí existují různé hodnoty. V této lekci aktualizujete pracovní postup tak, aby každý z vašich prostředí nakonfigurovali správná nastavení pro rozhraní API pro kontrolu produktů.
Během tohoto procesu:
- Vytvořte tajné kódy pro kontrolu klíčů rozhraní API pro každé vaše prostředí.
- Aktualizujte pracovní postup správnými vstupními a tajnými hodnotami pro každé prostředí.
- Aktualizujte soubor Bicep, aby se rozšířilo nastavení, které potřebujete pro rozhraní API pro kontrolu produktu.
- Zkontrolujte výsledky pracovního postupu a změny prostředí Azure.
Přidání tajných kódů
Rozhodnete se uložit klíče rozhraní API do tajných kódů GitHubu, abyste měli jistotu, že jsou správně chráněné.
V prohlížeči přejděte na Akce tajných kódů a proměnných>nastavení.>
Vyberte tlačítko Nový tajný kód úložiště.
Jako název tajného kódu zadejte REVIEW_API_KEY_TEST a jako hodnotu zadejte sandboxsecretkey .
Vyberte Add secret (Přidat tajný kód).
Opakováním procesu přidejte další tajný klíč s názvem REVIEW_API_KEY_PRODUCTION jako název tajného kódu a jako hodnotu productionsecretkey . Vyberte Add secret (Přidat tajný kód).
Aktualizujte soubor deploy.yml tak, aby používal nové nastavení.
V editoru Visual Studio Code otevřete soubor deploy.yml .
Aktualizujte trigger pracovního postupu tak, aby zahrnoval nové hodnoty pro
inputs
nastavení:secrets
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
Všimněte si, že adresy URL rozhraní API zahrnete jako vstupy, protože nejsou tajné hodnoty.
validate
V úloze aktualizujte kroky tak, aby zahrnovaly nové parametry nasazení: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
deploy
Aktualizujte úlohu tak, aby zahrnovala nové parametry nasazení: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 }}
Uložte změny souboru.
Aktualizujte soubor workflow.yml tak, aby poskytoval nové nastavení.
V editoru Visual Studio Code otevřete soubor workflow.yml .
reviewApiUrl
Přidejte vstupy areviewApiKey
tajné kódy pro každé prostředí: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 }}
Uložte změny souboru.
Aktualizace souboru Bicep
Otevřete soubor main.bicep.
Pod parametry, které jsou již v souboru, přidejte následující parametry pro nové revizní rozhraní 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
appServiceApp
Aktualizujte definici prostředku tak, aby poskytovala adresu URL a klíč rozhraní API pro kontrolu aplikace, aby je kód vašeho webu mohl používat: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 } ] } } }
Uložte změny souboru.
Potvrďte a nasdílejte změny do úložiště Git pomocí následujících příkazů:
git add . git commit -m "Add new review API settings to Bicep file and workflow" git push
Kontrola výsledků nasazení
V prohlížeči přejděte ke spuštění pracovního postupu.
Vyberte poslední spuštění.
Vyberte poslední spuštění pracovního postupu.
Počkejte, než se pracovní postup pozastaví před úlohou deploy-production / deploy . Dosažení tohoto bodu může trvat několik minut.
Schvalte nasazení do produkčního prostředí tak , že vyberete Zkontrolovat nasazení, pak vyberete Produkční a vyberete Schválit a nasadit.
Počkejte, až se pracovní postup dokončí.
Vyberte Kód a pak vyberte produkční prostředí.
Všimněte si, že v historii prostředí se teď zobrazuje více nasazení.
V prohlížeči přejděte na web Azure Portal.
Přejděte do skupiny prostředků ToyWebsiteProduction .
V seznamu prostředků otevřete aplikaci Aplikace Azure Service.
Vyberte Konfigurace.
Vyberte Zobrazit hodnoty.
Všimněte si, že hodnoty nastavení ReviewApiKey a ReviewApiUrl jsou nastaveny na hodnoty, které jste nakonfigurovali pro produkční prostředí.
Porovnejte aktuální hodnoty s nastavením konfigurace pro aplikaci App Service ve skupině prostředků ToyWebsiteTest . Všimněte si, že se hodnoty liší.
Vyčištění prostředků
Teď, když jste cvičení dokončili, můžete odebrat prostředky, abyste za ně neúčtoli.
V terminálu editoru Visual Studio Code spusťte následující příkazy:
az group delete --resource-group ToyWebsiteTest --yes --no-wait
az group delete --resource-group ToyWebsiteProduction --yes --no-wait
Skupina prostředků se odstraní na pozadí.
Remove-AzResourceGroup -Name ToyWebsiteTest -Force
Remove-AzResourceGroup -Name ToyWebsiteProduction -Force