Övning – Konfigurera din miljö
Viktigt!
Du behöver en egen Azure-prenumeration för att utföra den här övningen, och avgifter kan tillkomma. Om du inte redan har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Innan du konfigurerar leksaksföretagets pull-request-arbetsflöden måste du konfigurera din miljö.
I den här lektionen ser du till att dina Azure- och GitHub-miljöer har konfigurerats så att du kan slutföra resten av den här modulen.
För att uppfylla dessa mål gör du följande:
- Konfigurera en GitHub-lagringsplats för den här modulen.
- Klona lagringsplatsen till datorn.
- Skapa en arbetsbelastningsidentitet i Microsoft Entra-ID.
- Skapa en hemlighet i GitHub.
Hämta GitHub-lagringsplatsen
I det här avsnittet konfigurerar du din GitHub-lagringsplats för att slutföra resten av den här modulen genom att skapa en ny lagringsplats baserat på en malllagringsplats. Malllagringsplatsen innehåller de filer som du behöver för att komma igång med den här modulen.
Modulerna i den här utbildningsvägen är en del av en utveckling. I utbildningssyfte har varje modul en associerad GitHub-malllagringsplats.
Dricks
Även om du redan har slutfört den tidigare modulen i utbildningsvägen följer du de här anvisningarna för att skapa en ny lagringsplats och ge den ett nytt namn.
Börja från malllagringsplatsen
Kör en mall som konfigurerar din GitHub-lagringsplats.
På GitHub-webbplatsen skapar du en lagringsplats från mallen genom att göra följande:
Välj Använd den här mallen>Skapa en ny lagringsplats.
Observera namnet på ditt GitHub-användarnamn eller din organisation. I exemplet är GitHub-användarnamnet mygithubuser. Du behöver det här namnet snart.
Ange ett namn för det nya projektet, till exempel att granska leksakswebbplatsen automatiskt.
Välj alternativet Offentlig .
När du skapar egna lagringsplatser kanske du vill göra dem privata. I den här modulen arbetar du med vissa funktioner i GitHub som endast fungerar med offentliga lagringsplatser och GitHub Enterprise-konton.
Välj Create repository (Skapa lagringsplats).
Klona lagringsplatsen
Nu har du en kopia av malllagringsplatsen i ditt eget konto. Klona den här lagringsplatsen lokalt så att du kan börja arbeta i den.
Välj Kod och välj sedan kopieringsikonen.
Öppna Visual Studio Code.
Öppna ett Terminalfönster i Visual Studio Code genom att välja Terminal>Ny terminal. Fönstret öppnas vanligtvis längst ned på skärmen.
I terminalen går du till den katalog där du vill klona GitHub-lagringsplatsen på den lokala datorn. Om du till exempel vill klona lagringsplatsen till mappen toy-website-auto-review kör du följande kommando:
cd toy-website-auto-review
Skriv
git clone
och klistra sedan in url:en som du kopierade tidigare, vilket ser ut ungefär så här:git clone https://github.com/mygithubuser/toy-website-auto-review.git
Öppna Visual Studio Code igen i lagringsplatsens mapp genom att köra följande kommando i Visual Studio Code-terminalen:
code -r toy-website-auto-review
Logga in på Azure
Nu när du har klonat lagringsplatsen lokalt till datorn loggar du in på Din Azure-miljö. Du använder ditt Azure-konto för att skapa en arbetsbelastningsidentitet som dina GitHub Actions-arbetsflöden ska använda.
I Visual Studio Code-terminalen kör du följande kommando för att logga in på Azure:
az login
Logga in på ditt Azure-konto i webbläsaren som öppnas.
Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:
Connect-AzAccount
Logga in på ditt Azure-konto i webbläsaren som öppnas.
Skapa en arbetsbelastningsidentitet
Senare i den här Microsoft Learn-modulen skapar arbetsflödet för pull-begäran resursgrupper och resurser i din prenumeration. Om du vill distribuera resurser måste du skapa en arbetsbelastningsidentitet och ge den rollen Deltagare i din prenumeration.
Varning
Den arbetsbelastningsidentitet som du skapar här har hög åtkomstnivå till din Azure-prenumeration. Om du vill undvika oavsiktliga problem använder du en icke-produktionsprenumeration. Kör inte de här stegen i en miljö som innehåller någon av dina produktionsarbetsbelastningar.
I dina egna arbetsflöden för validering av pull-begäranden rekommenderar vi att du använder en dedikerad Azure-prenumeration.
För att skapa arbetsbelastningsidentiteterna använder jq
Azure CLI-kommandona för att parsa data från JSON-utdata. Om du inte har jq
installerat kan du använda Bash i Azure Cloud Shell för att skapa arbetsbelastningens identitet, resursgrupp och rolltilldelning och förbereda GitHub-hemligheterna.
Kör följande kod för att definiera variabler för ditt GitHub-användarnamn och lagringsplatsnamn. Se till att du ersätter
mygithubuser
med ditt GitHub-användarnamn, som du antecknade tidigare i den här övningen. Se också till att du anger rätt GitHub-lagringsplatsnamn.githubOrganizationName='mygithubuser' githubRepositoryName='toy-website-auto-review'
Skapa en arbetsbelastningsidentitet för ditt distributionsarbetsflöde.
applicationRegistrationDetails=$(az ad app create --display-name 'toy-website-auto-review') applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id') applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $applicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-auto-review\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:pull_request\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
Kör följande kod för att definiera variabler för ditt GitHub-användarnamn och lagringsplatsnamn. Se till att du ersätter
mygithubuser
med ditt GitHub-användarnamn, som du antecknade tidigare i den här övningen. Se också till att du anger rätt GitHub-lagringsplatsnamn.$githubOrganizationName = 'mygithubuser' $githubRepositoryName = 'toy-website-auto-review'
Skapa en arbetsbelastningsidentitet för ditt distributionsarbetsflöde.
$applicationRegistration = New-AzADApplication -DisplayName 'toy-website-auto-review' New-AzADAppFederatedCredential ` -Name 'toy-website-auto-review' ` -ApplicationObjectId $applicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):pull_request"
Bevilja arbetsbelastningsidentiteten åtkomst till din prenumeration
Skapa sedan en resursgrupp för din webbplats. Den här processen ger även arbetsbelastningsidentiteten rollen Deltagare i resursgruppen, vilket gör att arbetsflödet kan distribueras till resursgruppen.
Kör följande Azure CLI-kommandon i Visual Studio Code-terminalen:
az ad sp create --id $applicationRegistrationObjectId az role assignment create \ --assignee $applicationRegistrationAppId \ --role Contributor
Kör följande Azure PowerShell-kommandon i Visual Studio Code-terminalen:
New-AzADServicePrincipal -AppId $applicationRegistration.AppId New-AzRoleAssignment ` -ApplicationId $applicationRegistration.AppId ` -RoleDefinitionName Contributor
Förbereda GitHub-hemligheter
Kör följande kod för att visa de värden som du behöver skapa som GitHub-hemligheter:
echo "AZURE_CLIENT_ID: $applicationRegistrationAppId"
echo "AZURE_TENANT_ID: $(az account show --query tenantId --output tsv)"
echo "AZURE_SUBSCRIPTION_ID: $(az account show --query id --output tsv)"
$azureContext = Get-AzContext
Write-Host "AZURE_CLIENT_ID: $($applicationRegistration.AppId)"
Write-Host "AZURE_TENANT_ID: $($azureContext.Tenant.Id)"
Write-Host "AZURE_SUBSCRIPTION_ID: $($azureContext.Subscription.Id)"
Anteckna program-ID-värdet för AZURE_CLIENT_ID. Du kan använda det värdet när du rensar resurser när du är klar med den här modulen.
Skapa GitHub-hemligheter
Du har skapat en arbetsbelastningsidentitet och gett den behörighet att distribuera till prenumerationen. Skapa sedan hemligheter i GitHub Actions.
I webbläsaren navigerar du till din GitHub-lagringsplats.
Välj Inställningar Hemligheter>>Åtgärder.
Välj Ny lagringsplatshemlighet.
Ge hemligheten namnet AZURE_CLIENT_ID.
I fältet Värde klistrar du in GUID från den första raden i terminalutdata. Inkludera
AZURE_CLIENT_ID
inte , kolon eller blanksteg i värdet.Välj Add secret (Lägg till hemlighet).
Upprepa processen för att skapa hemligheter för AZURE_TENANT_ID och AZURE_SUBSCRIPTION_ID och kopiera värdena från motsvarande fält i terminalutdata.
Kontrollera att listan med hemligheter nu visar alla tre hemligheterna.