แสดงตัวอย่างและอนุมัติการปรับใช้ของคุณ
คุณได้เรียนรู้เกี่ยวกับขั้นตอนไปป์ไลน์และวิธีการที่คุณสามารถเพิ่มขั้นตอนไปป์ไลน์เพื่อตรวจสอบรหัส Bicep ของคุณ ขั้นตอนถัดไปในการสร้างความมั่นใจด้วยการปรับใช้ของคุณคือการเพิ่มขั้นตอนอื่นเพื่อตรวจสอบสิ่งที่การปรับใช้ของคุณจะเปลี่ยนแปลงไป
ในหน่วยนี้ คุณจะได้เรียนรู้เกี่ยวกับการใช้คําสั่ง What-if ในไปป์ไลน์ นอกจากนี้ คุณยังจะได้เรียนรู้เกี่ยวกับการเพิ่มการอนุมัติเพื่อให้คุณมีโอกาสตรวจสอบเอาต์พุตของคําสั่งด้วยตนเองก่อนที่จะเรียกใช้การปรับใช้
การดําเนินการ What-if
ไฟล์ Bicep อธิบายถึงสถานะที่คุณต้องการให้สภาพแวดล้อม Azure ของคุณอยู่ในตอนท้ายของการปรับใช้ เมื่อคุณส่งการปรับใช้ Azure Resource Manager จะเปลี่ยนสภาพแวดล้อม Azure ของคุณให้ตรงกับสถานะที่อธิบายไว้ในไฟล์ Bicep ของคุณ
การปรับใช้อาจส่งผลให้มีการปรับใช้ทรัพยากรใหม่ในสภาพแวดล้อมของคุณหรือทรัพยากรที่มีอยู่ที่กําลังได้รับการอัปเดต เมื่อคุณเรียกใช้การปรับใช้ในโหมดที่สมบูรณ์ อาจส่งผลให้มีการลบทรัพยากรที่มีอยู่
เมื่อมีการสร้าง ปรับปรุง หรือลบทรัพยากร มีความเสี่ยงที่สิ่งต่างๆ สามารถเปลี่ยนแปลงได้ในแบบที่คุณไม่คาดคิด การเพิ่มขั้นตอนเพิ่มเติมเพื่อตรวจสอบว่าทรัพยากรใดที่จะสร้าง อัปเดต และลบ การยืนยันนี้จะเพิ่มมูลค่าให้กับกระบวนการอัตโนมัติของคุณ เมื่อคุณปรับใช้กับสภาพแวดล้อมการผลิต สิ่งสําคัญคือต้องยืนยันการเปลี่ยนแปลงใดๆ ที่เกิดขึ้นกับสภาพแวดล้อมของคุณ
Resource Manager ให้การดําเนินการ What-if ซึ่งคุณสามารถเรียกใช้บนไฟล์ Bicep ของคุณภายในขั้นตอนไปป์ไลน์ของคุณ:
คุณสามารถใช้ 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 ตรวจพบ พวกเขาจะอนุมัติหรือปฏิเสธการเปลี่ยนแปลงโดยยึดตามข้อมูลนี้ หากพวกเขาอนุมัติการเปลี่ยนแปลง ไปป์ไลน์จะดําเนินการต่อ หากพวกเขาปฏิเสธ หรือหากไม่ตอบสนองภายในระยะเวลาการหมดเวลาที่สามารถกําหนดค่าได้ ลําดับขั้นจะล้มเหลว
ความสําคัญของแนวทางปฏิบัติที่ดี
คุณลักษณะสภาพแวดล้อมใน Azure Pipelines ช่วยให้คุณสามารถเชื่อมโยงการปรับใช้ของคุณกับสภาพแวดล้อมได้ จากนั้นการปรับใช้จะสืบทอดการตรวจสอบและการอนุมัติที่กําหนดโดยเจ้าของสภาพแวดล้อม อย่างไรก็ตาม ไม่จําเป็นต้องให้ไปป์ไลน์ใหม่ใช้สภาพแวดล้อม
สิ่งสําคัญคือคุณและองค์กรของคุณสร้างแนวทางปฏิบัติที่ดีในการตรวจสอบข้อกําหนดไปป์ไลน์ของคุณ ตัวอย่างคือการกําหนดค่าที่เก็บข้อมูลของคุณเพื่อกําหนดให้มีการตรวจสอบคําขอดึงข้อมูลเกี่ยวกับการเปลี่ยนแปลงใดก็ตาม สาขา หลักโดยใช้นโยบายการป้องกันสาขา คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับแนวคิดนี้ในมอดูลในอนาคต
คุณยังสามารถเพิ่มการตรวจสอบและการอนุมัติไปยังการเชื่อมต่อบริการเพื่อให้แน่ใจว่าได้รับการอนุมัติก่อนการปรับใช้สามารถใช้ข้อมูลประจําตัวของโครงร่างสําคัญของบริการ อย่างไรก็ตาม การอนุมัติจะส่งผลกระทบต่อความสามารถของไปป์ไลน์ของคุณในการเรียกใช้การตรวจสอบ Preflight และการดําเนินการ What-if เนื่องจากจําเป็นต้องมีการเชื่อมต่อบริการด้วย
คุณสามารถใช้การเชื่อมต่อบริการอื่นสําหรับขั้นตอน What-if ด้วยองค์ประกอบหลักของบริการของตนเอง บริการหลักที่ใช้สําหรับขั้นตอน preflight และการตรวจสอบจําเป็นต้องมีบทบาท Azure แบบกําหนดเองที่กําหนดเพื่อให้แน่ใจว่ามีสิทธิ์ขั้นต่ําที่จําเป็นในการทํางาน