Rychlý start: Nasazení souborů Bicep pomocí GitHub Actions

GitHub Actions je sada funkcí v GitHubu pro automatizaci pracovních postupů vývoje softwaru. V tomto rychlém startu použijete nasazení GitHub Actions pro Azure Resource Manager k automatizaci nasazení souboru Bicep do Azure.

Poskytuje krátký úvod k akcím GitHubu a souborům Bicep. Pokud chcete podrobnější kroky k nastavení akcí a projektu GitHubu, přečtěte si téma Nasazení prostředků Azure pomocí Bicep a GitHub Actions.

Požadavky

Vytvořit skupinu zdrojů

Vytvořte skupinu prostředků. Později v tomto rychlém startu nasadíte soubor Bicep do této skupiny prostředků.

az group create -n exampleRG -l westus

Generování přihlašovacích údajů pro nasazení

GitHub Actions běží pod identitou. Pomocí příkazu az ad sp create-for-rbac vytvořte instanční objekt pro identitu. Udělte instančnímu objektu roli přispěvatele pro skupinu prostředků vytvořenou v předchozí relaci, aby akce GitHubu s identitou vytvořila prostředky v této skupině prostředků. Doporučuje se udělit minimální požadovaný přístup.

az ad sp create-for-rbac --name {app-name} --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/exampleRG --json-auth

Zástupný symbol {app-name} nahraďte názvem vaší aplikace. Nahraďte {subscription-id} ID předplatného.

Výstupem je objekt JSON s přihlašovacími údaji pro přiřazení role, které poskytují přístup k vaší aplikaci App Service podobně jako v následujícím příkladu.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    ...
  }

Zkopírujte tento objekt JSON pro pozdější použití. Budete potřebovat jenom oddíly s clientIdhodnotou , clientSecretsubscriptionIda tenantId hodnotami. Ujistěte se, že na konci posledního řádku nemáte čárku navíc, tenantId například řádek v předchozím příkladu, jinak výsledkem bude neplatný soubor JSON. Během nasazení se zobrazí chyba Přihlášení selhalo s chybou: Obsah není platným objektem JSON. Pečlivě zkontrolujte, jestli je správný typ ověřování.

Konfigurace tajných kódů GitHubu

Vytvořte tajné kódy pro přihlašovací údaje Azure, skupinu prostředků a předplatná. Tyto tajné kódy použijete v části Vytvořit pracovní postup .

  1. Na GitHubu přejděte do svého úložiště.

  2. Vyberte Nastavení > Tajné kódy > a proměnné Actions > New repository secret.

  3. Celý výstup JSON z příkazu Azure CLI vložte do pole hodnoty tajného kódu. Pojmenujte tajný kód AZURE_CREDENTIALS.

  4. Vytvořte další tajný kód s názvem AZURE_RG. Přidejte název skupiny prostředků do pole hodnoty tajného kódu (exampleRG).

  5. Vytvořte další tajný kód s názvem AZURE_SUBSCRIPTION. Přidejte ID předplatného do pole hodnoty tajného kódu (příklad: 90fd3f9d-4c61-432d-99ba-1273f236afa2).

Přidání souboru Bicep

Přidejte soubor Bicep do úložiště GitHub. Následující soubor Bicep vytvoří účet úložiště:

@minLength(3)
@maxLength(11)
param storagePrefix string

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_RAGRS'
  'Standard_ZRS'
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GZRS'
  'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'

param location string = resourceGroup().location

var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'

resource stg 'Microsoft.Storage/storageAccounts@2021-04-01' = {
  name: uniqueStorageName
  location: location
  sku: {
    name: storageSKU
  }
  kind: 'StorageV2'
  properties: {
    supportsHttpsTrafficOnly: true
  }
}

output storageEndpoint object = stg.properties.primaryEndpoints

Soubor Bicep vyžaduje jeden parametr s názvem storagePrefix se 3 až 11 znaky.

Soubor můžete umístit kamkoli do úložiště. Ukázka pracovního postupu v další části předpokládá, že soubor Bicep má název main.bicep a je uložený v kořenovém adresáři vašeho úložiště.

Vytvoření pracovního postupu

Pracovní postup definuje kroky, které se mají provést při aktivaci. Jedná se o soubor YAML (.yml) v cestě k vašemu úložišti .github/workflows/ . Přípona souboru pracovního postupu může být buď .yml nebo .yaml.

Pokud chcete vytvořit pracovní postup, proveďte následující kroky:

  1. V úložišti GitHub vyberte v horní nabídce akce .

  2. Vyberte Nový pracovní postup.

  3. Vyberte nastavení pracovního postupu sami.

  4. Pokud dáváte přednost jinému názvu než main.yml, přejmenujte soubor pracovního postupu. Příklad: deployBicepFile.yml.

  5. Obsah souboru yml nahraďte následujícím kódem:

    name: Deploy Bicep file
    on: [push]
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
    
        - name: Checkout code
          uses: actions/checkout@main
    
        - name: Log into Azure
          uses: azure/login@v1
          with:
            creds: ${{ secrets.AZURE_CREDENTIALS }}
    
        - name: Deploy Bicep file
          uses: azure/arm-deploy@v1
          with:
            subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
            resourceGroupName: ${{ secrets.AZURE_RG }}
            template: ./main.bicep
            parameters: 'storagePrefix=mystore storageSKU=Standard_LRS'
            failOnStdErr: false
    

    Nahraďte mystore předponou názvu vlastního účtu úložiště.

    Poznámka:

    Soubor parametrů formátu JSON můžete místo toho zadat v akci nasazení ARM (příklad: .azuredeploy.parameters.json).

    První část souboru pracovního postupu obsahuje:

    • name: Název pracovního postupu.
    • on: Název událostí GitHubu, které aktivují pracovní postup. Pracovní postup se aktivuje, když v hlavní větvi dojde k události push.
  6. Vyberte Potvrdit změny.

  7. Vyberte Potvrdit přímo do hlavní větve.

  8. Vyberte Potvrdit nový soubor (nebo Potvrdit změny).

Aktualizace souboru pracovního postupu nebo souboru Bicep aktivuje pracovní postup. Pracovní postup se spustí hned po potvrzení změn.

Kontrola stavu pracovního postupu

  1. Vyberte kartu Akce. Zobrazí se seznam pracovních postupů Vytvoření deployBicepFile.yml. Spuštění pracovního postupu trvá 1 až 2 minuty.
  2. Vyberte pracovní postup, který chcete otevřít, a ověřte, zda je Success.Status

Vyčištění prostředků

Pokud už skupinu prostředků a úložiště nepotřebujete, vyčistěte prostředky, které jste nasadili, odstraněním skupiny prostředků a úložiště GitHub.

az group delete --name exampleRG

Další kroky