Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GitHub Actions är en uppsättning funktioner i GitHub för att automatisera dina arbetsflöden för programvaruutveckling. I den här snabbstarten använder du GitHub Actions for Azure Resource Manager-distributionen för att automatisera distributionen av en Bicep-fil till Azure.
Det 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 -projektet kan du läsa 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 ett sådant kan du registrera dig utan kostnad.
- En GitHub-lagringsplats för att lagra dina Bicep-filer och dina 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 Bicep-filen till den här resursgruppen.
az group create -n exampleRG -l westus
Generera autentiseringsuppgifter för distribution
Om du vill använda Azure Login-åtgärden med OIDC måste du konfigurera en federerad identitetsautentiseringsuppgift i ett Microsoft Entra-program eller en användartilldelad hanterad identitet.
Alternativ 1: Microsoft Entra-program
- Skapa ett Microsoft Entra-program med tjänstens huvudnamn genom att Azure Portal, Azure CLI eller Azure PowerShell.
- Kopiera värdena för klient-ID, prenumerations-ID och katalog-ID (klientorganisation) som ska användas senare i ditt GitHub Actions-arbetsflöde.
- Tilldela tjänstens huvudnamn en lämplig roll genom att Azure Portal, Azure CLI eller Azure PowerShell.
- Konfigurera en federerad identitetsautentiseringsuppgift i ett Microsoft Entra-program för att lita på token som utfärdats av GitHub Actions till din GitHub-lagringsplats.
Alternativ 2: Användartilldelad hanterad identitet
- Skapa en användartilldelad hanterad identitet.
- Kopiera värdena för klient-ID, prenumerations-ID och katalog-ID (klientorganisation) som ska användas senare i ditt GitHub Actions-arbetsflöde.
- Tilldela en lämplig roll till din användartilldelade hanterade identitet.
- Konfigurera en federerad identitetsautentiseringsuppgift för en användartilldelad hanterad identitet för att lita på token som utfärdats av GitHub Actions till din GitHub-lagringsplats.
Konfigurera GitHub-hemligheterna
Du måste ange programmets klient-ID, katalog-ID (klient)-ID och prenumerations-ID för inloggningsåtgärden. Dessa värden kan antingen anges direkt i arbetsflödet eller lagras i GitHub-hemligheter och refereras till i arbetsflödet. Att spara värdena som GitHub-hemligheter är det säkrare alternativet.
Gå till din lagringsplats i GitHub.
Välj Säkerhetshemligheter > och variabler > Åtgärder.
Välj Ny lagringsplatshemlighet.
Kommentar
Om du vill förbättra arbetsflödets säkerhet på offentliga lagringsplatser använder du miljöhemligheter i stället för lagringsplatshemligheter. Om miljön kräver godkännande kan ett jobb inte komma åt miljöhemligheter förrän en av de nödvändiga granskarna godkänner det.
Skapa hemligheter för
AZURE_CLIENT_ID,AZURE_TENANT_IDochAZURE_SUBSCRIPTION_ID. Kopiera dessa värden från ditt Microsoft Entra-program eller användartilldelade hanterade identiteter för dina GitHub-hemligheter:GitHub-hemlighet Microsoft Entra-program eller användartilldelad hanterad identitet AZURE_CLIENT_ID Klient-ID AZURE_SUBSCRIPTION_ID Prenumerations-ID:t AZURE_TENANT_ID Katalog-ID (klientorganisation) Kommentar
Av säkerhetsskäl rekommenderar vi att du använder GitHub Secrets i stället för att skicka värden direkt till arbetsflödet.
Lägga till en Bicep-fil
Lägg till en Bicep-fil till din GitHub-lagringsplats. 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@2023-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ödesexemplet 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 det utlöses. Det är en YAML-fil (.yml) i .github/workflows/ -sökvägen för lagringsplatsen. Filtillägget för arbetsflödet kan vara antingen .yml eller .yaml.
Utför följande steg för att skapa ett arbetsflöde:
På din GitHub-lagringsplats 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. Till exempel: deployBicepFile.yml.
Ersätt innehållet i yml-filen med följande kod:
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: falseVälj Genomför ändringar.
Välj Checka in direkt till huvudgrenen.
Välj Checka in ny fil (eller Genomför ändringar).
När du uppdaterar antingen arbetsflödesfilen eller Bicep-filen utlöses arbetsflödet. Arbetsflödet startar direkt efter att du har genomfört ändringarna.
Kontrollera arbetsflödesstatus
- Välj fliken Åtgärder . Du ser arbetsflödet Skapa deployBicepFile.yml . Det tar 1–2 minuter att köra arbetsflödet.
- Välj arbetsflödet för att öppna det och kontrollera
Statusatt ärSuccess.
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