Snabbstart: Distribuera Bicep-filer med hjälp GitHub Åtgärder
GitHub Actions är en uppsättning funktioner i GitHub för att automatisera arbetsflöden för programutveckling.
I den här snabbstarten använder du GitHub för distribution Azure Resource Manager att automatisera distributionen av en Bicep-fil till Azure.
Den ger en kort introduktion till GitHub åtgärder och Bicep-filer. Om du vill ha mer detaljerade steg för att konfigurera GitHub åtgärder och projekt kan du läsa Learning: Distribuera Azure-resurser med hjälp av Bicep och GitHub Actions.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Ett GitHub-konto. Om du inte har någon kan du registrera dig kostnadsfritt.
- En GitHub lagringsplats för att lagra dina Bicep-filer och arbetsflödesfiler. Information om hur du skapar en finns i Skapa en ny lagringsplats.
Skapa resursgrupp
Skapa en resursgrupp. Senare i den här snabbstarten distribuerar du din Bicep-fil till den här resursgruppen.
az group create -n exampleRG -l westus
Generera autentiseringsuppgifter för distribution
Åtgärden GitHub körs under en identitet. Använd kommandot az ad sp create-for-rbac för att skapa ett huvudnamn för tjänsten för identiteten.
Ersätt platshållaren myApp med namnet på ditt program. Ersätt {subscription-id} med ditt prenumerations-ID.
az ad sp create-for-rbac --name myApp --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/exampleRG --sdk-auth
Viktigt
Omfånget i föregående exempel är begränsat till resursgruppen. Vi rekommenderar att du beviljar minsta nödvändiga åtkomst.
Utdata är ett JSON-objekt med autentiseringsuppgifter för rolltilldelning som ger åtkomst till din App Service som liknar nedan. Kopiera det här JSON-objektet till senare. Du behöver bara avsnitten med värdena clientId clientSecret , , och subscriptionId tenantId .
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Konfigurera GitHub hemligheter
Skapa hemligheter för dina autentiseringsuppgifter, resursgrupp och prenumerationer i Azure.
I GitHubdu till din lagringsplats.
Välj Inställningar > Secrets > New secret (Ny hemlighet).
Klistra in hela JSON-utdata från Azure CLI-kommandot i hemlighetens värdefält. Ge hemligheten namnet
AZURE_CREDENTIALS.Skapa en till hemlighet med namnet
AZURE_RG. Lägg till namnet på resursgruppen i hemlighetens värdefält (exampleRG).Skapa en till hemlighet med namnet
AZURE_SUBSCRIPTION. Lägg till ditt prenumerations-ID i hemlighetens värdefält (exempel:90fd3f9d-4c61-432d-99ba-1273f236afa2).
Lägga till en Bicep-fil
Lägg till en Bicep-fil GitHub lagringsplatsen. Följande Bicep-fil skapar ett lagringskonto:
@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
Bicep-filen kräver en parameter med namnet storagePrefix med 3 till 11 tecken.
Du kan placera filen var som helst på lagringsplatsen. Arbetsflödesexempel i nästa avsnitt förutsätter att Bicep-filen heter main.bicep och lagras i roten på lagringsplatsen.
Skapa arbetsflöde
Ett arbetsflöde definierar de steg som ska köras när de utlöses. Det är en YAML-fil (.yml) på sökvägen .github/workflows/för din lagringsplats. Filnamnstillägget för arbetsflödet kan vara antingen .yml eller .yaml.
Skapa ett arbetsflöde genom att göra följande:
Från din GitHub väljer du Åtgärder på den översta menyn.
Välj Nytt arbetsflöde.
Välj konfigurera ett arbetsflöde själv.
Byt namn på arbetsflödesfilen om du föredrar ett annat namn än main.yml. Exempel: deployBicepFile.yml.
Ersätt innehållet i yml-filen med följande kod:
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: falseErsätt
mystoremed ditt eget lagringskontonamnprefix.Anteckning
Du kan i stället ange en JSON-formatparameterfil i arm-distributionen (exempel:
.azuredeploy.parameters.json).Det första avsnittet i arbetsflödesfilen innehåller:
- name: Namnet på arbetsflödet.
- på: Namnet på GitHub händelser som utlöser arbetsflödet. Arbetsflödet utlöses när det finns en push-händelse på main-grenen.
Välj Start commit (Starta incheckning).
Välj Genomför direkt till huvudgrenen.
Välj Spara ny fil (eller Genomför ändringar).
Om du uppdaterar arbetsflödesfilen eller Bicep-filen utlöses arbetsflödet. Arbetsflödet startar direkt efter att du har gjort ändringarna.
Kontrollera arbetsflödesstatus
- Välj fliken Åtgärder. Arbetsflödet Create deployStorageAccount.yml visas i listan. Det tar 1–2 minuter att köra arbetsflödet.
- Välj arbetsflödet för att öppna det.
- Välj Kör ARM-distribution på menyn för att verifiera distributionen.
Rensa resurser
När resursgruppen och lagringsplatsen inte längre behövs rensar du de resurser som du har distribuerat genom att ta bort resursgruppen och GitHub lagringsplatsen.
az group delete --name exampleRG