แสดงตัวอย่างและอนุมัติการปรับใช้ของคุณ

เสร็จสมบูรณ์เมื่อ

คุณได้เรียนรู้เกี่ยวกับขั้นตอนไปป์ไลน์และวิธีการที่คุณสามารถเพิ่มขั้นตอนไปป์ไลน์เพื่อตรวจสอบรหัส Bicep ของคุณ ขั้นตอนถัดไปในการสร้างความมั่นใจด้วยการปรับใช้ของคุณคือการเพิ่มขั้นตอนอื่นเพื่อตรวจสอบสิ่งที่การปรับใช้ของคุณจะเปลี่ยนแปลงไป

ในหน่วยนี้ คุณจะได้เรียนรู้เกี่ยวกับการใช้คําสั่ง What-if ในไปป์ไลน์ นอกจากนี้ คุณยังจะได้เรียนรู้เกี่ยวกับการเพิ่มการอนุมัติเพื่อให้คุณมีโอกาสตรวจสอบเอาต์พุตของคําสั่งด้วยตนเองก่อนที่จะเรียกใช้การปรับใช้

การดําเนินการ What-if

ไฟล์ Bicep อธิบายถึงสถานะที่คุณต้องการให้สภาพแวดล้อม Azure ของคุณอยู่ในตอนท้ายของการปรับใช้ เมื่อคุณส่งการปรับใช้ Azure Resource Manager จะเปลี่ยนสภาพแวดล้อม Azure ของคุณให้ตรงกับสถานะที่อธิบายไว้ในไฟล์ Bicep ของคุณ

การปรับใช้อาจส่งผลให้มีการปรับใช้ทรัพยากรใหม่ในสภาพแวดล้อมของคุณหรือทรัพยากรที่มีอยู่ที่กําลังได้รับการอัปเดต เมื่อคุณเรียกใช้การปรับใช้ในโหมดที่สมบูรณ์ อาจส่งผลให้มีการลบทรัพยากรที่มีอยู่

เมื่อมีการสร้าง ปรับปรุง หรือลบทรัพยากร มีความเสี่ยงที่สิ่งต่างๆ สามารถเปลี่ยนแปลงได้ในแบบที่คุณไม่คาดคิด การเพิ่มขั้นตอนเพิ่มเติมเพื่อตรวจสอบว่าทรัพยากรใดที่จะสร้าง อัปเดต และลบ การยืนยันนี้จะเพิ่มมูลค่าให้กับกระบวนการอัตโนมัติของคุณ เมื่อคุณปรับใช้กับสภาพแวดล้อมการผลิต สิ่งสําคัญคือต้องยืนยันการเปลี่ยนแปลงใดๆ ที่เกิดขึ้นกับสภาพแวดล้อมของคุณ

Resource Manager ให้การดําเนินการ What-if ซึ่งคุณสามารถเรียกใช้บนไฟล์ Bicep ของคุณภายในขั้นตอนไปป์ไลน์ของคุณ:

ไดอะแกรมของไปป์ไลน์ที่มีลําดับขั้นของ Lint Validate และ Preview ขั้นตอนการแสดงตัวอย่างจะเรียกใช้การดําเนินการ What-if กับ Azure

คุณสามารถใช้ az deployment group what-if คําสั่ง Azure CLI ในข้อกําหนดไปป์ไลน์ของคุณเพื่อเรียกใช้ขั้นตอน What-if ได้:

stages:

- stage: Preview
  jobs: 
  - job: Preview
    steps:
    - task: AzureCLI@2
      inputs:
        azureSubscription: 'MyServiceConnection'
        scriptType: 'bash'
        scriptLocation: 'inlineScript'
        inlineScript: |
          az deployment group what-if \
            --resource-group $(ResourceGroupName) \
            --template-file deploy/main.bicep

ปลาย

ในมอดูลนี้ เราจะใช้ Azure CLI เพื่อเรียกใช้การดําเนินการ What-if ถ้าคุณสร้างไปป์ไลน์ที่ใช้ PowerShell ของคุณเอง คุณสามารถใช้ cmdlet ของ New-AzResourceGroupDeployment ด้วยสวิตช์ -Whatif หรือคุณสามารถใช้ cmdlet ของ Get-AzResourceGroupDeploymentWhatIfResult ได้

การดําเนินการ What-if ไม่ทําการเปลี่ยนแปลงใดๆ กับสภาพแวดล้อมของคุณ แต่จะมีการอธิบายทรัพยากรที่จะสร้าง คุณสมบัติของทรัพยากรที่จะอัปเดต และทรัพยากรที่จะถูกลบ

What-if ในบางครั้งแสดงว่าทรัพยากรจะเปลี่ยนแปลงเมื่อไม่มีการเปลี่ยนแปลงเลย คําติชมนี้เรียกว่า เสียงรบกวน เรากําลังทํางานเพื่อลดปัญหาเหล่านี้ คุณสามารถ รายงานปัญหาได้ที่นี่

หลังจากที่คุณเห็นผลลัพธ์ของการดําเนินการ What-if คุณสามารถตรวจสอบว่าจะดําเนินการปรับใช้ต่อไปหรือไม่ โดยทั่วไปแล้วขั้นตอนนี้เกี่ยวข้องกับการตรวจสอบโดยมนุษย์ว่าผลลัพธ์จากคําสั่ง What-if แล้วตัดสินใจว่าการเปลี่ยนแปลงที่ระบุมีความเหมาะสมหรือไม่ หากผู้ตรวจสอบตัดสินใจว่าการเปลี่ยนแปลงเหมาะสม พวกเขาสามารถอนุมัติการเรียกใช้ไปป์ไลน์ได้ด้วยตนเอง

สภาพ แวด ล้อม

ในไปป์ไลน์ Azure สภาพแวดล้อม แสดงสถานที่ที่ปรับใช้โซลูชันของคุณ สภาพแวดล้อมมีคุณลักษณะที่ช่วยเมื่อคุณทํางานกับการปรับใช้ที่ซับซ้อน ในมอดูลในอนาคต คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับสภาพแวดล้อมและคุณลักษณะของสภาพแวดล้อมเหล่านั้น ในตอนนี้ เราจะมุ่งเน้นความสามารถของพวกเขาในการเพิ่มการอนุมัติด้วยตนเองไปยังไปป์ไลน์ของคุณ

ตามที่คุณทราบแล้ว คุณใช้งานเพื่อกําหนดลําดับของขั้นตอนภายในขั้นตอนไปป์ไลน์ เมื่อคุณรวมสภาพแวดล้อมในไปป์ไลน์ของคุณ คุณจําเป็นต้องใช้งานชนิดพิเศษที่เรียกว่า งานการปรับใช้ งานการปรับใช้จะคล้ายกับงานปกติ แต่มีฟังก์ชันการทํางานพิเศษบางอย่าง ฟังก์ชันนี้รวมถึงการกําหนดสภาพแวดล้อมที่งานการปรับใช้ใช้ใช้:

variables:
  - name: deploymentDefaultLocation
    value: westus3

stages:

- stage: Preview
  jobs:
  - job: Preview
    steps:
    - task: AzureCLI@2
      inputs:
        azureSubscription: 'MyServiceConnection'
        scriptType: 'bash'
        scriptLocation: 'inlineScript'
        inlineScript: |
          az deployment group what-if \
            --resource-group $(ResourceGroupName) \
            --template-file deploy/main.bicep

- stage: Deploy
  jobs:
    - deployment: Deploy
      environment: MyAzureEnvironment
      strategy:
        runOnce:
          deploy:
            steps:
            - checkout: self

            - task: AzureResourceManagerTemplateDeployment@3
              name: Deploy
              displayName: Deploy to Azure
              inputs:
                connectedServiceName: 'MyServiceConnection'
                location: $(deploymentDefaultLocation)
                resourceGroupName: $(ResourceGroupName)
                csmFile: deploy/main.bicep

โปรดสังเกตว่า ในข้อกําหนด YAML สําหรับงานการปรับใช้ มีความแตกต่างที่สําคัญบางอย่างจากงานปกติ:

  • แทนที่จะเริ่มต้นด้วยคําว่า jobงานการปรับใช้ถูกกําหนดเป็น deployment
  • คําสําคัญ environment ระบุชื่อของสภาพแวดล้อมที่จะกําหนดเป้าหมาย ในตัวอย่างก่อนหน้า การปรับใช้ถูกติดตามเทียบกับสภาพแวดล้อมที่ชื่อว่า MyAzureEnvironment
  • คําสําคัญ strategy ระบุวิธีที่ Azure Pipelines เรียกใช้ขั้นตอนการปรับใช้ กลยุทธ์การปรับใช้สนับสนุนกระบวนการปรับใช้ที่ซับซ้อนโดยเฉพาะอย่างยิ่งเมื่อคุณมีสภาพแวดล้อมการผลิตหลายรายการ ในโมดูลนี้ คุณใช้ runOnce กลยุทธ์การปรับใช้ กลยุทธ์นี้จะทํางานคล้ายกับงานอื่น ๆ ที่คุณใช้อยู่แล้ว

การตรวจสอบและการอนุมัติลําดับขั้น

หลังจากที่คุณสร้างสภาพแวดล้อม คุณสามารถกําหนดการตรวจสอบ ได้ มีการใช้การตรวจสอบเพื่อตรวจสอบเงื่อนไขที่ต้องปฏิบัติตามก่อนที่ไปป์ไลน์จะสามารถใช้สภาพแวดล้อมได้ การอนุมัติคือชนิดของการตรวจสอบที่จําเป็นต้องให้การอนุมัติด้วยตนเอง

มีการกําหนดการตรวจสอบในสภาพแวดล้อม ไม่ใช่ไปป์ไลน์ ผู้เขียนของไฟล์ YAML ของไปป์ไลน์ไม่สามารถลบหรือเพิ่มการตรวจสอบและการอนุมัติเหล่านี้ได้ เฉพาะผู้ดูแลระบบของสภาพแวดล้อมเท่านั้นที่สามารถจัดการการตรวจสอบและการอนุมัติได้

ในองค์กรจํานวนมาก เจ้าของสภาพแวดล้อมใน Azure Pipelines คือ บุคคลที่รับผิดชอบสภาพแวดล้อมที่ปรับใช้ การตรวจสอบและการอนุมัติช่วยให้มั่นใจว่าบุคคลที่เหมาะสมมีส่วนร่วมในกระบวนการปรับใช้

การตรวจสอบและการอนุมัติทํางานอย่างไร

จะมีการประเมินการตรวจสอบและการอนุมัติก่อนเริ่มขั้นตอนไปป์ไลน์ เมื่อ Azure Pipelines กําลังจะเรียกใช้ขั้นตอนไปป์ไลน์ จะดูที่ทรัพยากรไปป์ไลน์ทั้งหมดที่ลําดับขั้นใช้ รวมถึงสภาพแวดล้อม สภาพแวดล้อมสามารถมีการตรวจสอบที่จําเป็นต้องพอใจ

การอนุมัติคือการตรวจสอบประเภทหนึ่ง เมื่อคุณกําหนดค่าการตรวจสอบการอนุมัติ คุณจะกําหนดผู้ตรวจสอบอย่างน้อยหนึ่งรายที่จําเป็นต้องอนุมัติความต่อเนื่องของไปป์ไลน์

ไปป์ไลน์ Azure ยังมีการตรวจสอบชนิดอื่น ๆ ด้วย ตัวอย่างเช่น คุณสามารถเรียกใช้ API เพื่อเรียกใช้ตรรกะแบบกําหนดเอง ควบคุมชั่วโมงทําการระหว่างที่ขั้นตอนสามารถทํางานได้ และแม้แต่คิวรี Azure Monitor เพื่อให้แน่ใจว่าการปรับใช้สําเร็จ มีการกล่าวถึงเฉพาะการตรวจสอบการอนุมัติในโมดูลนี้เท่านั้น แต่สรุปโมดูลมีลิงก์ไปยังข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบ

โน้ต

กลุ่มตัวแทนและการเชื่อมต่อบริการยังสามารถมีการกําหนดค่าการตรวจสอบบนพวกเขา คุณยังสามารถใช้ขั้นตอนพิเศษที่เรียกว่า งานการอนุมัติด้วยตนเองได้ อย่างไรก็ตาม โมดูลนี้มุ่งเน้นไปที่สภาพแวดล้อมและการตรวจสอบที่เกี่ยวข้องกับสภาพแวดล้อมดังกล่าว

หลังจากที่ไปป์ไลน์ของคุณเริ่มต้นและไปถึงขั้นตอนที่จําเป็นต้องมีการตรวจสอบการอนุมัติ ไปป์ไลน์จะทํางานชั่วคราว ผู้ตรวจสอบทั้งหมดที่ได้รับการกําหนดเป็นผู้อนุมัติจะได้รับข้อความใน Azure DevOps และทางอีเมล

ผู้อนุมัติสามารถตรวจสอบไฟล์บันทึกไปป์ไลน์ได้ เช่น การเปลี่ยนแปลงที่การดําเนินการ What-if ตรวจพบ พวกเขาจะอนุมัติหรือปฏิเสธการเปลี่ยนแปลงโดยยึดตามข้อมูลนี้ หากพวกเขาอนุมัติการเปลี่ยนแปลง ไปป์ไลน์จะดําเนินการต่อ หากพวกเขาปฏิเสธ หรือหากไม่ตอบสนองภายในระยะเวลาการหมดเวลาที่สามารถกําหนดค่าได้ ลําดับขั้นจะล้มเหลว

แผนภาพของไปป์ไลน์ที่มีลําดับขั้นของ Lint, Validate, Preview และ Deploy มีการตรวจสอบการอนุมัติก่อนขั้นตอนการปรับใช้

ความสําคัญของแนวทางปฏิบัติที่ดี

คุณลักษณะสภาพแวดล้อมใน Azure Pipelines ช่วยให้คุณสามารถเชื่อมโยงการปรับใช้ของคุณกับสภาพแวดล้อมได้ จากนั้นการปรับใช้จะสืบทอดการตรวจสอบและการอนุมัติที่กําหนดโดยเจ้าของสภาพแวดล้อม อย่างไรก็ตาม ไม่จําเป็นต้องให้ไปป์ไลน์ใหม่ใช้สภาพแวดล้อม

สิ่งสําคัญคือคุณและองค์กรของคุณสร้างแนวทางปฏิบัติที่ดีในการตรวจสอบข้อกําหนดไปป์ไลน์ของคุณ ตัวอย่างคือการกําหนดค่าที่เก็บข้อมูลของคุณเพื่อกําหนดให้มีการตรวจสอบคําขอดึงข้อมูลเกี่ยวกับการเปลี่ยนแปลงใดก็ตาม สาขา หลักโดยใช้นโยบายการป้องกันสาขา คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับแนวคิดนี้ในมอดูลในอนาคต

คุณยังสามารถเพิ่มการตรวจสอบและการอนุมัติไปยังการเชื่อมต่อบริการเพื่อให้แน่ใจว่าได้รับการอนุมัติก่อนการปรับใช้สามารถใช้ข้อมูลประจําตัวของโครงร่างสําคัญของบริการ อย่างไรก็ตาม การอนุมัติจะส่งผลกระทบต่อความสามารถของไปป์ไลน์ของคุณในการเรียกใช้การตรวจสอบ Preflight และการดําเนินการ What-if เนื่องจากจําเป็นต้องมีการเชื่อมต่อบริการด้วย

คุณสามารถใช้การเชื่อมต่อบริการอื่นสําหรับขั้นตอน What-if ด้วยองค์ประกอบหลักของบริการของตนเอง บริการหลักที่ใช้สําหรับขั้นตอน preflight และการตรวจสอบจําเป็นต้องมีบทบาท Azure แบบกําหนดเองที่กําหนดเพื่อให้แน่ใจว่ามีสิทธิ์ขั้นต่ําที่จําเป็นในการทํางาน