Øvelse – Opret en GitHub-handling for at oprette et objektbeholderbillede

Fuldført

I dette undermodul skal du udføre følgende opgaver:

  • Opret en GitHub-handling for at implementere en buildpipeline.
  • Rediger koden for kupontjenesten for at udløse buildarbejdsprocessen.
  • Overvåg status for buildarbejdsprocessen i realtid.

Opret buildhandlingen

YAML-koden i denne procedure definerer en GitHub-handling, der:

  • Udløses, når en bekræftelse pushes til kupontjenestens kildekode eller enhedstest i forgreningen main.
  • Definerer trinvise miljøvariabler.
  • Har ét job eller sæt trin, der udføres på den samme arbejdsprocesforløber, med navnet Build and push image to ACR.

Important

Udløs betingelser og andre artefakter for GitHub-handlinger eller -arbejdsprocesser afhænger af apps og miljøer. For at gøre det nemmere at forstå er detaljer enkle i dette eksempel. Både build- og udrulningsarbejdsprocesserne er begrænset til produkttjenesteændringer, fordi alle microservices opbevares under et enkelt lager. I et faktisk produktionsscenarie vil hver mikrotjeneste blive opbevaret i deres eget separate lager.

Udfør følgende trin for at oprette handlingen Opret GitHub-handlinger:

  1. Gå til dit forgrenede lager i GitHub, og vælg fanen Actions .

  2. Vælg linket Get started with GitHub Actions på siden set up a workflow yourself.

    Skærmbillede, der viser fanen Handlinger i GitHub-lageret og fremhæver linket til oprettelse af arbejdsproces.

  3. Indsæt følgende YAML-kode i editoren på den næste side.

    name: Build and deploy an app to AKS
    
    on:
      push:
        branches: ["main"]
      workflow_dispatch:
    
    env:
      # Local environment variables used later in the workflow
      AZURE_CONTAINER_REGISTRY: 'name of your Azure Container Registry'
      CONTAINER_NAME: 'productservice'
      RESOURCE_GROUP: 'rg-eshop'
      CLUSTER_NAME: 'aks-eshop'
      DEPLOYMENT_MANIFEST_PATH: './product.yml'
      DOCKER_PATH: './DockerfileProducts.acr'
    
    jobs:
      buildImage:
        permissions:
          contents: read
          id-token: write
        runs-on: ubuntu-latest
        steps:
          # Checks out the repository this file is in
          - uses: actions/checkout@v3
    
          # Logs in with your Azure credentials stored in GitHub secrets
          - name: Azure login
            uses: azure/login@v1.4.6
            with:
              creds: '${{ secrets.AZURE_CREDENTIALS }}'
    
          # Builds and pushes an image up to your Azure Container Registry
          - name: Build and push image to ACR
            run: |
              az acr build --file ${{ env.DOCKER_PATH }} --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .
    
    

    Erstat det navn på din Azure Container Registry- med det ACR-navn, du oprettede i det forrige undermodul. f.eks. acseshop186748394.

  4. Erstat standardarbejdsprocessen main.yml filnavnet med azure-kubernetes-service.yml, og vælg derefter Commit changes.

  5. Vælg Commit changesCommit directly to the main branch skærmen , og vælg Commit changesderefter .

    Du er færdig med at oprette buildarbejdsprocessen for ci/cd-pipelinen.

  6. Kør denne kommando i terminalen for at få vist de aktuelle versioner af produkttjenesten, der er gemt i ACR:

    az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
    

    Hvis du erstatter AZURE_CONTAINER_REGISTRY med navnet på din ACR, bør du se output, der ligner følgende:

    Result
    ----------------------------------------
    v1
    

Udløs buildet

Buildarbejdsprocessen udløses automatisk, så snart du har bekræftet arbejdsprocesfilen. Du kan også udløse buildet manuelt.

  1. Vælg fanen Actions i dit lager.
  2. Vælg All workflows arbejdsproces under Build and deploy an app to AKStil venstre, og vælg derefter Run workflow.

Overvåg buildet

Sådan får du vist status for buildet i realtid:

  1. Vælg fanen Actions i dit lager.

  2. Vælg den seneste kørsel af arbejdsprocessen, der er angivet for Build and deploy an app to AKS arbejdsproces. Navnet på kørslen er den bekræftelsesmeddelelse, du brugte i det forrige trin.

  3. Vælg jobbet buildImage.

    Skærmbillede, der viser en Igangværende GitHub-arbejdsproces.

  4. Hvis du venter et par minutter, skal trinnene i jobbet fuldføres.

  5. Kør denne kommando igen i terminalen for at få vist de versioner af produkttjenesten, der er gemt i ACR.

    az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
    

    Du bør kunne se output, der ligner følgende, og som viser, at der er føjet en ny billedversion til ACR'en fra GitHub-arbejdsprocessen:

    Result
    ----------------------------------------
    8c75edb7a349ec570bd4eac397015bc3c547186e
    v1