תרגיל - יצירת פעולת GitHub לבניית תמונת גורם מכיל

הושלם

ביחידה זו, עליך להשלים את המשימות הבאות:

  • צור פעולת GitHub כדי ליישם צינור של גירסת Build.
  • שנה את קוד שירות השובר כדי להפעיל את זרימת העבודה של גירסת ה- Build.
  • נטר את התקדמות זרימת העבודה של גירסת ה- Build בזמן אמת.

יצירת פעולת ה- Build

קוד YAML בהליך זה מגדיר פעולת GitHub ש:

  • גורם מפעיל כאשר ביצוע נדחף לקוד המקור או ליחידה של שירות השובר בענף main השובר.
  • הגדרת משתני סביבה ספציפיים לשלבים.
  • בעל משימה אחת, או קבוצת שלבים הפועלים באותו רץ זרימת עבודה, בשם Build and push image to ACR.

Important

ההפעלת תנאים וממצאים אחרים של פעולות או זרימות עבודה של GitHub תלויים באפליקציות ובסביבות. לקלות הבנה, הפרטים נשמרים פשוטים בדוגמה זו. הן גירסת ה- Build והן זרימות העבודה של הפריסה מסופות לשינויים בשירות המוצר מכיוון שכל המיקרו-שרתים נשמרים במאגר יחיד. בתרחיש ייצור בפועל, כל מיקרו-שרת יישמר במאגר נפרד משלו.

בצע את השלבים הבאים כדי ליצור את פעולת ה- Build של פעולות GitHub:

  1. עבור אל המאגר המפוצל שלך ב- GitHub ובחר את הכרטיסייה Actions .

  2. בדף Get started with GitHub Actions, בחר את set up a workflow yourself הקישור.

    מסך שמציג את הכרטיסיה פעולות במאגר GitHub, המסמן את הקישור ליצירת זרימת עבודה.

  3. בדף הבא, הדבק את קוד YAML הבא בעורך.

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

    החלף השם של Azure Container Registry בשם ACR שיצרת ביחידה הקודמת; לדוגמה, acseshop186748394.

  4. החלף את שם הקובץ main.yml זרימת העבודה המהווה ברירת azure-kubernetes-service.ymlולאחר מכן בחר Commit changes.

  5. במסך Commit changes , בחר ולאחר Commit directly to the main branchמכן בחר Commit changes.

    סיימת ליצור את זרימת העבודה של גירסת ה- Build עבור צינור ה- CI/CD שלך.

  6. במסוף שלך, הפעל פקודה זו כדי להציג את הגירסאות הנוכחיות של שירות המוצר המאוחסן ב- ACR:

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

    החלפת AZURE_CONTAINER_REGISTRY בשם ה-ACR שלך, אתה אמור לראות פלט דומה להודעה הבאה:

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

הפעל את גירסת ה- Build

זרימת העבודה של גירסת ה- Build מופעלת באופן אוטומטי ברגע שאתה מבצע את קובץ זרימת העבודה. באפשרותך גם להפעיל את גירסת ה- Build באופן ידני.

  1. במאגר, בחר את הכרטיסיה Actions שלך.
  2. בצד ימין, תחת All workflows, בחר את Build and deploy an app to AKS זרימת העבודה ולאחר מכן בחר Run workflow.

ניטור גירסת ה- Build

כדי להציג התקדמות בזמן אמת של גירסת ה- Build:

  1. במאגר, בחר את הכרטיסיה Actions שלך.

  2. בחר את ההפעלה העדכנית ביותר של זרימת העבודה המפורטת עבור זרימת Build and deploy an app to AKS העבודה העדכנית ביותר. שם ההפעלה הוא הודעת ה- commit שבה השתמשת בשלב הקודם.

  3. בחר את buildImage העבודה.

    מסך המציג זרימת עבודה של GitHub מתבצעת.

  4. אם תמתין מספר דקות, השלבים במשימה אמורים להסתיים בהצלחה.

  5. במסוף שלך, הפעל שוב פקודה זו כדי להציג את הגירסאות של שירות המוצר המאוחסן ב- ACR.

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

    אתה אמור לראות פלט דומה לזה שמציג גירסת תמונה חדשה נוספה ל- ACR מזרימת העבודה של GitHub:

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