Övning – Konfigurera din miljö

Slutförd

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 börjar publicera leksaksföretagets återanvändbara Bicep-kod måste du konfigurera din miljö. I det här avsnittet ser du till att dina Azure- och GitHub-miljöer har konfigurerats för att 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 resursgrupp i Azure.
  • Skapa en hemlighet i GitHub.

Hämta GitHub-lagringsplatsen

Här skapar du en ny GitHub-lagringsplats baserat på en malllagringsplats. Malllagringsplatsen innehåller de filer som du behöver för att komma igång för 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 har slutfört den föregående modulen i utbildningsvägen följer du de här anvisningarna för att skapa en ny lagringsplats och se till att du ger den ett nytt namn.

Börja från malllagringsplatsen

Kör en mall som konfigurerar din GitHub-lagringsplats.

På GitHub-webbplatsen följer du dessa steg för att skapa en lagringsplats från mallen:

  1. Logga in på GitHub.

  2. Välj Använd den här mallen>Skapa en ny lagringsplats.

    Skärmbild av GitHub-gränssnittet som visar malllagringsplatsen. Knappen för att använda mallen är markerad.

  3. Som Ägare väljer du ditt GitHub-konto.

  4. Ange ett lagringsplatsnamn för det nya projektet, till exempel leksaksåteranvändbart.

  5. Välj alternativet Offentlig .

    När du skapar egna lagringsplatser kanske du vill göra dem privata. I den här modulen använder du funktioner i GitHub som endast fungerar tillsammans med offentliga lagringsplatser och GitHub Enterprise-konton.

  6. Välj Create repository (Skapa lagringsplats).

    Skärmbild av GitHub-gränssnittet som visar sidan för att skapa lagringsplatsen.

Viktigt!

Den sista övningen i den här modulen innehåller viktiga rensningssteg. Följ rensningsstegen även om du inte slutför den här modulen.

Klona lagringsplatsen

Nu när du har en kopia av malllagringsplatsen i ditt eget konto klonar du den här lagringsplatsen lokalt så att du kan börja arbeta i den.

  1. Välj Kod och välj sedan ikonen Kopiera URL till Urklipp .

    Skärmbild av GitHub-gränssnittet som visar den nya lagringsplatsen. Kopieringsknappen för lagringsplatsens URL är markerad.

  2. Öppna Visual Studio Code.

  3. Ö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.

  4. I terminalen går du till katalogen där du vill klona GitHub-lagringsplatsen på den lokala datorn. Om du till exempel vill klona lagringsplatsen i mappen lagringsplatser kör du följande kommando:

    cd repositories
    
  5. Skriv git clone och klistra sedan in den URL som du kopierade tidigare, vilket ser ut ungefär så här:

    git clone https://github.com/mygithubuser/toy-reusable.git
    
  6. Öppna Visual Studio Code igen i lagringsplatsens mapp genom att köra följande kommando i Visual Studio Code-terminalen:

    code --reuse-window toy-reusable
    

Logga in på Azure

Om du vill arbeta med resursgrupper i Azure loggar du in på ditt Azure-konto från Visual Studio Code-terminalen. Kontrollera att du har installerat Azure CLI-verktygen och Azure-kontotillägget för Visual Studio Code.

  1. I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.

    Standardgränssnittet är vanligtvis pwsh, vilket visas till höger i terminalfönstret.

    Skärmbild av terminalfönstret i Visual Studio Code, där pwsh visas som gränssnittsalternativ.

  2. Välj listrutan Starta profil och välj sedan Azure Cloud Shell (Bash).

    Skärmbild av terminalfönstret i Visual Studio Code. Listrutan för Terminal Shell och menyalternativet Azure Cloud Shell (Bash) visas.

    Ett nytt gränssnitt öppnas.

Logga in på Azure med hjälp av Azure CLI

  1. I Visual Studio Code-terminalen kör du följande kommando för att logga in på Azure:

    az login
    
  2. Logga in på ditt Azure-konto i webbläsaren som öppnas.

Om du vill arbeta med resursgrupper i Azure loggar du in på ditt Azure-konto från Visual Studio Code-terminalen. Kontrollera att du har installerat Azure PowerShell och Azure-kontotillägget för Visual Studio Code.

  1. I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.

    Standardgränssnittet är vanligtvis pwsh, vilket visas till höger i terminalfönstret.

    Skärmbild av terminalfönstret i Visual Studio Code, där pwsh visas som gränssnittsalternativ.

  2. Välj listrutan Starta profil och välj sedan Azure Cloud Shell (PowerShell).

    Skärmbild av terminalfönstret i Visual Studio Code. Listrutan för Terminal Shell och menyalternativet Azure Cloud Shell (PowerShell) visas.

    Ett nytt gränssnitt öppnas.

Logga in i Azure med Azure PowerShell

  1. I Visual Studio Code-terminalen kör du följande kommando för att logga in på Azure:

    Connect-AzAccount -UseDeviceAuthentication
    
  2. Följ kommandoinstruktionerna för att logga in på ditt Azure-konto.

Skapa en arbetsbelastningsidentitet

Skapa sedan en arbetsbelastningsidentitet i Microsoft Entra-ID för ditt distributionsarbetsflöde.

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.

  1. 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. Kontrollera också att du anger rätt GitHub-lagringsplatsnamn.

    githubOrganizationName='mygithubuser'
    githubRepositoryName='toy-reusable'
    
  2. Skapa en arbetsbelastningsidentitet för ditt distributionsarbetsflöde.

    applicationRegistrationDetails=$(az ad app create --display-name 'toy-reusable')
    applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id')
    applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId')
    
    az ad app federated-credential create \
       --id $applicationRegistrationObjectId \
       --parameters "{\"name\":\"toy-reusable-branch\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
    
  1. 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. Kontrollera också att du anger rätt GitHub-lagringsplatsnamn.

    $githubOrganizationName = 'mygithubuser'
    $githubRepositoryName = 'toy-reusable'
    
  2. Skapa en arbetsbelastningsidentitet för ditt distributionsarbetsflöde.

    $applicationRegistration = New-AzADApplication -DisplayName 'toy-reusable'
    New-AzADAppFederatedCredential `
       -Name 'toy-reusable-branch' `
       -ApplicationObjectId $applicationRegistration.Id `
       -Issuer 'https://token.actions.githubusercontent.com' `
       -Audience 'api://AzureADTokenExchange' `
       -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
    

Skapa en resursgrupp i Azure och ge arbetsbelastningsidentiteten åtkomst

Skapa sedan en resursgrupp för webbplatsen. 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:

resourceGroupResourceId=$(az group create --name ToyReusable --location westus3 --query id --output tsv)

az ad sp create --id $applicationRegistrationObjectId
az role assignment create \
  --assignee $applicationRegistrationAppId \
  --role Contributor \
  --scope $resourceGroupResourceId

Kör följande Azure PowerShell-kommandon i Visual Studio Code-terminalen:

$resourceGroup = New-AzResourceGroup -Name ToyReusable -Location westus3

New-AzADServicePrincipal -AppId $applicationRegistration.AppId
New-AzRoleAssignment `
  -ApplicationId $applicationRegistration.AppId `
  -RoleDefinitionName Contributor `
  -Scope $resourceGroup.ResourceId

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 en resursgrupp som den kan distribuera till. Skapa sedan hemligheter i GitHub Actions.

  1. Gå till din GitHub-lagringsplats i webbläsaren.

  2. Välj Inställningar Hemligheter>>Åtgärder.

  3. Välj Ny lagringsplatshemlighet.

    Skärmbild av GitHub-gränssnittet som visar sidan Hemligheter. Knappen

  4. Ge hemligheten namnet AZURE_CLIENT_ID.

  5. I fältet Värde klistrar du in GUID från den första raden i terminalutdata. Inkludera AZURE_CLIENT_IDinte , kolon eller blanksteg i värdet.

  6. Välj Add secret (Lägg till hemlighet).

    Skärmbild av GitHub-gränssnittet som visar sidan

  7. 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.

  8. Kontrollera att listan med hemligheter nu visar alla tre hemligheterna.

    Skärmbild av GitHub-gränssnittet som visar listan över hemligheter.