Quickstart: Bicep-bestanden implementeren met behulp van GitHub Actions

GitHub Actions is een suite met functies in GitHub voor het automatiseren van uw werkstromen voor softwareontwikkeling.

In deze quickstart gebruikt u de actie GitHub voor Azure Resource Manager implementatie om de implementatie van een Bicep-bestand in Azure te automatiseren.

Het biedt een korte inleiding tot GitHub acties en Bicep-bestanden. Zie Learning path: Deploy Azure resources by using Bicep and GitHub Actions (Azure-resources implementeren met Bicep en GitHub Actions) voor gedetailleerdere stappen voor het instellen van de GitHub-acties en het project.

Vereisten

  • Een Azure-account met een actief abonnement. Gratis een account maken
  • Een GitHub-account. Als u geen account hebt, kunt u zich registreren voor een gratis account.
  • Een GitHub opslagplaats voor het opslaan van uw Bicep-bestanden en uw werkstroombestanden. Zie Een nieuwe opslagplaats maken als u er een wilt maken.

Een resourcegroep maken

Een resourcegroep maken. Verder in deze quickstart implementeert u uw Bicep-bestand in deze resourcegroep.

az group create -n exampleRG -l westus

Genereer implementatiereferenties

Uw GitHub wordt uitgevoerd onder een identiteit. Gebruik de opdracht az ad sp create-for-rbac om een service-principal voor de identiteit te maken.

Vervang de plaatsaanduiding myApp door de naam van uw toepassing. Vervang {subscription-id} door uw abonnements-id.

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

Belangrijk

Het bereik in het vorige voorbeeld is beperkt tot de resourcegroep. U wordt aangeraden minimaal vereiste toegang te verlenen.

De uitvoer is een JSON-object met de roltoewijzingsreferenties die toegang bieden tot uw App Service-app, vergelijkbaar met hieronder. Kopieer dit JSON-object voor later gebruik. U hebt alleen de secties nodig met clientId de waarden , , en clientSecret subscriptionId tenantId .

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

De GitHub-geheimen configureren

Maak geheimen voor uw Azure-referenties, resourcegroep en abonnementen.

  1. Navigeer GitHubnaar uw opslagplaats.

  2. Selecteer Instellingen > Geheimen > Nieuwe geheimen.

  3. Plak de volledige JSON-uitvoer van de Azure CLI-opdracht in het waardeveld van het geheim. Noem het geheim AZURE_CREDENTIALS .

  4. Maak nog een geheim met de naam AZURE_RG . Voeg de naam van uw resourcegroep toe aan het waardeveld van het geheim ( exampleRG ).

  5. Maak nog een geheim met de naam AZURE_SUBSCRIPTION . Voeg uw abonnements-id toe aan het waardeveld van het geheim (bijvoorbeeld: 90fd3f9d-4c61-432d-99ba-1273f236afa2 ).

Een Bicep-bestand toevoegen

Voeg een Bicep-bestand toe aan GitHub opslagplaats. Met het volgende Bicep-bestand wordt een opslagaccount gemaakt:

@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

Voor het Bicep-bestand is één parameter met de naam storagePrefix met 3 tot 11 tekens vereist.

U kunt het bestand overal in de opslagplaats plaatsen. In het werkstroomvoorbeeld in de volgende sectie wordt ervan uitgenomen dat het Bicep-bestand de naam main.bicep heeft en dat het wordt opgeslagen in de hoofdmap van uw opslagplaats.

Werkstroom maken

Een werkstroom definieert de stappen die moeten worden uitgevoerd wanneer deze worden geactiveerd. Het is een YAML-bestand (.yml) in het pad .github/workflows/van uw opslagplaats. De bestandsextensie van de werkstroom kan .yml of .yaml zijn.

Ga als volgt te werk om een werkstroom te maken:

  1. Selecteer in GitHub opslagplaats acties in het bovenste menu.

  2. Selecteer Nieuwe werkstroom.

  3. Selecteer zelf een werkstroom instellen.

  4. Wijzig de naam van het werkstroombestand als u liever een andere naam hebt dan main.yml. Bijvoorbeeld: deployBicepFile.yml.

  5. Vervang de inhoud van het yml-bestand door de volgende code:

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

    Vervang mystore door het voorvoegsel van uw eigen opslagaccountnaam.

    Notitie

    U kunt in plaats daarvan een parametersbestand voor de JSON-indeling opgeven in de actie ARM Implementeren (voorbeeld: .azuredeploy.parameters.json ).

    De eerste sectie van het werkstroombestand bevat:

    • name: de naam van de werkstroom.
    • on: de naam van de GitHub gebeurtenissen die de werkstroom activeren. De werkstroom wordt geactiveerd wanneer er een pushgebeurtenis op de main branch.
  6. Selecteer Doorvoeren starten.

  7. Selecteer Rechtstreeks naar de main branch.

  8. Selecteer Nieuw bestand commit (of Commit changes).

Het bijwerken van het werkstroombestand of bicep-bestand activeert de werkstroom. De werkstroom wordt gestart direct nadat u de wijzigingen hebt doorgevoerd.

Werkstroomstatus controleren

  1. Selecteer het tabblad Acties. U ziet een werkstroom Create deployStorageAccount.yml. Het duurt 1-2 minuten om de werkstroom uit te voeren.
  2. Selecteer de werkstroom om deze te openen.
  3. Selecteer ARM-implementatie uitvoeren in het menu om de implementatie te controleren.

Resources opschonen

Wanneer uw resourcegroep en opslagplaats niet meer nodig zijn, schoont u de resources op die u hebt geïmplementeerd door de resourcegroep en uw GitHub verwijderen.

az group delete --name exampleRG

Volgende stappen