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
Als u azure-aanmeldingsactie wilt gebruiken met OIDC, moet u een federatieve identiteitsreferentie configureren in een Microsoft Entra-toepassing of een door de gebruiker toegewezen beheerde identiteit.
Optie 1: Microsoft Entra-toepassing
- Maak een Microsoft Entra-toepassing met een service-principal via Azure Portal, Azure CLI of Azure PowerShell.
- Kopieer de waarden voor client-id, abonnements-id en map-id (tenant) voor later gebruik in uw GitHub Actions-werkstroom.
- Wijs een geschikte rol toe aan uw service-principal via Azure Portal, Azure CLI of Azure PowerShell.
- Configureer een federatieve identiteitsreferentie in een Microsoft Entra-toepassing om tokens te vertrouwen die door GitHub Actions zijn uitgegeven aan uw GitHub-opslagplaats.
Optie 2: Door de gebruiker toegewezen beheerde identiteit
- Een door een gebruiker toegewezen beheerde identiteit maken.
- Kopieer de waarden voor client-id, abonnements-id en map-id (tenant) voor later gebruik in uw GitHub Actions-werkstroom.
- Wijs een geschikte rol toe aan uw door de gebruiker toegewezen beheerde identiteit.
- Configureer een federatieve identiteitsreferentie op een door de gebruiker toegewezen beheerde identiteit om tokens te vertrouwen die zijn uitgegeven door GitHub Actions aan uw GitHub-opslagplaats.
De GitHub-geheimen configureren
U moet de client-id, map-id en abonnements-id van uw toepassing opgeven voor de aanmeldingsactie. Deze waarden kunnen rechtstreeks in de werkstroom worden opgegeven of kunnen worden opgeslagen in GitHub-geheimen en waarnaar wordt verwezen in uw werkstroom. Het opslaan van de waarden als GitHub-geheimen is de veiligere optie.
Ga in GitHub naar uw opslagplaats.
Selecteer Acties voor beveiligingsgeheimen > en variabelen>.
Selecteer Nieuw opslagplaatsgeheim.
Notitie
Als u de werkstroombeveiliging in openbare opslagplaatsen wilt verbeteren, gebruikt u omgevingsgeheimen in plaats van opslagplaatsgeheimen. Als voor de omgeving goedkeuring is vereist, heeft een taak geen toegang tot omgevingsgeheimen totdat een van de vereiste revisoren deze goedkeurt.
Geheimen maken voor
AZURE_CLIENT_ID
,AZURE_TENANT_ID
enAZURE_SUBSCRIPTION_ID
. Kopieer deze waarden uit uw Microsoft Entra-toepassing of door de gebruiker toegewezen beheerde identiteit voor uw GitHub-geheimen:GitHub-geheim Microsoft Entra-toepassing of door de gebruiker toegewezen beheerde identiteit AZURE_CLIENT_ID Client ID AZURE_SUBSCRIPTION_ID Abonnements-id AZURE_TENANT_ID Id van directory (tenant) Notitie
Om veiligheidsredenen raden we u aan GitHub Secrets te gebruiken in plaats van waarden rechtstreeks door te geven aan de werkstroom.
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:
on: [push] name: Azure ARM permissions: id-token: write contents: read jobs: build-and-deploy: runs-on: ubuntu-latest steps: # Checkout code - uses: actions/checkout@main # Log into Azure - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} # 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 storageSKU=Standard_LRS' failOnStdErr: false
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