Quickstart: Bicep-bestanden implementeren met behulp van GitHub Actions
GitHub Actions is een suite met functies in GitHub om uw werkstromen voor softwareontwikkeling te automatiseren. In deze quickstart gebruikt u de GitHub Actions voor Azure Resource Manager-implementatie om het implementeren van een Bicep-bestand in Azure te automatiseren.
Het biedt een korte inleiding tot GitHub Actions en Bicep-bestanden. Als u meer gedetailleerde stappen wilt uitvoeren voor het instellen van de GitHub-acties en het project, raadpleegt u Azure-resources implementeren met Bicep en GitHub Actions.
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 om er een te maken.
Resourcegroep maken
Maak een resourcegroep. Verderop in deze quickstart implementeert u uw Bicep-bestand in deze resourcegroep.
az group create -n exampleRG -l westus
Genereer implementatiereferenties
Uw GitHub Actions worden uitgevoerd onder een identiteit. Gebruik de opdracht az ad sp create-for-rbac om een service-principal voor de identiteit te maken. Verdeel de service-principal de rol inzender voor de resourcegroep die in de vorige sessie is gemaakt, zodat de GitHub-actie met de identiteit resources in deze resourcegroep kan maken. U wordt aangeraden minimaal vereiste toegang te verlenen.
az ad sp create-for-rbac --name {app-name} --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/exampleRG --json-auth
Vervang de plaatsaanduiding {app-name}
door de naam van uw toepassing. Vervang door {subscription-id}
uw abonnements-id.
De uitvoer is een JSON-object met de roltoewijzingsreferenties die toegang bieden tot uw App Service-app, vergelijkbaar met de volgende uitvoer.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
...
}
Kopieer dit JSON-object voor later gebruik. U hebt alleen de secties met de clientId
, clientSecret
en subscriptionId
tenantId
waarden nodig. Zorg ervoor dat u geen extra komma aan het einde van de laatste regel hebt, bijvoorbeeld de tenantId
regel in het vorige voorbeeld, of anders resulteert dit in een ongeldig JSON-bestand. Er wordt een fout weergegeven tijdens de implementatie met de tekst 'Aanmelden is mislukt met fout: Inhoud is geen geldig JSON-object. Controleer of het verificatietype juist is.
De GitHub-geheimen configureren
Maak geheimen voor uw Azure-referenties, resourcegroep en abonnementen. U gebruikt deze geheimen in de sectie Werkstroom maken.
Navigeer in GitHub naar uw opslagplaats.
Selecteer Instellingengeheimen > > en variabelen Acties > Nieuwe opslagplaatsgeheim.
Plak de volledige JSON-uitvoer van de Azure CLI-opdracht in het waardeveld van het geheim. Geef het geheim
AZURE_CREDENTIALS
een naam.Maak een ander geheim met de naam
AZURE_RG
. Voeg de naam van uw resourcegroep toe aan het waardeveld van het geheim (exampleRG
).Maak een ander geheim met de naam
AZURE_SUBSCRIPTION
. Voeg uw abonnements-id toe aan het waardeveld van het geheim (bijvoorbeeld:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
).
Een Bicep-bestand toevoegen
Voeg een Bicep-bestand toe aan uw 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@2023-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 voorbeeld van de werkstroom in de volgende sectie wordt ervan uitgegaan dat het Bicep-bestand main.bicep heet en 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 .github/workflows/ pad van uw opslagplaats. De bestandsextensie van de werkstroom kan .yml of .yaml zijn.
Voer de volgende stappen uit om een werkstroom te maken:
Selecteer in uw GitHub-opslagplaats Acties in het bovenste menu.
Selecteer Nieuwe werkstroom.
Selecteer zelf een werkstroom instellen.
Wijzig de naam van het werkstroombestand als u de voorkeur geeft aan een andere naam dan main.yml. Bijvoorbeeld: deployBicepFile.yml.
Vervang de inhoud van het yml-bestand door de volgende code:
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
Vervang door
mystore
het voorvoegsel van uw eigen opslagaccountnaam.Notitie
U kunt in plaats daarvan een parameterbestand voor de JSON-indeling opgeven in de ARM-implementatieactie (bijvoorbeeld:
.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 hoofdbranch staat.
Selecteer Wijzigingen doorvoeren.
Selecteer Doorvoeren rechtstreeks naar de hoofdbranch.
Selecteer Nieuw bestand doorvoeren (of Wijzigingen doorvoeren).
Als u het werkstroombestand of Bicep-bestand bijwerkt, wordt de werkstroom geactiveerd. De werkstroom begint direct nadat u de wijzigingen hebt doorgevoerd.
Werkstroomstatus controleren
- Selecteer het tabblad Acties . Er wordt een werkstroom maken deployBicepFile.yml weergegeven. Het duurt 1-2 minuten om de werkstroom uit te voeren.
- Selecteer de werkstroom om deze te openen en controleer of het
Status
isSuccess
.
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-opslagplaats te verwijderen.
az group delete --name exampleRG