Lint และตรวจสอบรหัส Bicep ของคุณ
หลังจากที่คุณทราบว่าขั้นตอนไปป์ไลน์คืออะไร เรามาพิจารณาชุดแรกของขั้นตอนการตรวจสอบความถูกต้องที่คุณสามารถเพิ่มไปยังไปป์ไลน์การปรับใช้ Bicep ของคุณ ในหน่วยนี้ คุณจะได้เรียนรู้เกี่ยวกับการตรวจสอบเทมเพลต Bicep นอกจากนี้ คุณยังจะได้เรียนรู้เกี่ยวกับกิจกรรมสองอย่างที่โดยทั่วไปขั้นตอนการตรวจสอบความถูกต้องดําเนินการ: การตรวจสอบความถูกต้องของการซับและ preflight
ไฟล์ Bicep ที่ถูกต้องคืออะไร
ไฟล์ Bicep ที่ถูกต้องคือไฟล์ที่ไม่มีข้อผิดพลาดทางไวยากรณ์ นอกจากนี้ข้อกําหนดสําหรับทรัพยากร Azure ที่คุณวางแผนที่จะปรับใช้จะต้องถูกต้อง และเมื่อมีการปรับใช้ทรัพยากรที่กําหนดไว้ในไฟล์ พวกเขาจะต้องอยู่ภายในโควต้าและขีดจํากัดที่มีอยู่ในการสมัครใช้งาน Azure ของคุณ
จะมีการดําเนินการตรวจสอบบางอย่างบนไฟล์ Bicep ของคุณแยกจากกัน เช่น การตรวจสอบหาข้อผิดพลาดทางไวยากรณ์ สําหรับข้อกําหนดทรัพยากร Azure ที่ถูกต้อง และคุณภาพโค้ด ขั้นตอนเหล่านี้เป็นส่วนหนึ่งของกระบวนการที่เรียกว่า linting เพื่อตรวจสอบปัญหาอื่น ๆ คุณจําเป็นต้องขอให้บริการ Azure Resource Manager ตรวจสอบเทมเพลตของคุณและนําสภาพแวดล้อม Azure ของคุณเข้าสู่บัญชี
เทมเพลต Bicep ที่ถูกต้องมีโอกาสที่ดีขึ้นในการปรับใช้ที่ประสบความสําเร็จ คุณจะได้รับคําติชมโดยไม่ต้องปรับใช้เทมเพลต Bicep ของคุณ การตรวจสอบความถูกต้องเป็นแนวทางปฏิบัติที่ดีเนื่องจากถ้าคุณปรับใช้ไฟล์ Bicep ที่ไม่ถูกต้อง Azure อาจปรับใช้หรือเปลี่ยนแปลงเฉพาะชุดย่อยของทรัพยากรที่อธิบายไว้ในเทมเพลตของคุณ ผลลัพธ์อาจเป็นไปได้ว่าสถานะของสภาพแวดล้อมของคุณไม่สอดคล้องกันและอาจไม่ทํางานตามที่คุณคาดหวัง
สร้างและ lint Bicep code
เมื่อคุณปรับใช้ไฟล์ Bicep การใช้เครื่องมือ Bicep จะเรียกใช้ขั้นตอนการตรวจสอบพื้นฐานบางอย่างก่อน ขั้นตอนเหล่านี้เป็นขั้นตอนเดียวกับที่ทํางานเมื่อคุณปรับเปลี่ยนไฟล์ของคุณโดยใช้ Visual Studio Code ซึ่งจะตรวจสอบว่าคุณใช้คําหลักภาษา Bicep อย่างถูกต้องและคุณได้กําหนดทรัพยากร Azure ของคุณตามความต้องการสําหรับแต่ละชนิดทรัพยากร
นอกจากนี้ Bicep ยังเรียกใช้ linter ผ่านไฟล์ของคุณ Linting คือกระบวนการตรวจสอบโค้ดของคุณกับชุดคําแนะนํา Bicep linter ตรวจทานไฟล์ของคุณ และตรวจสอบว่าคุณได้ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดสําหรับการบํารุงรักษา ความถูกต้อง ความยืดหยุ่น และความสามารถในการขยายหรือไม่
linter ประกอบด้วยชุดกฎที่กําหนดไว้ล่วงหน้าสําหรับแต่ละหมวดหมู่เหล่านี้ กฎ linter ตัวอย่างประกอบด้วย:
- พารามิเตอร์ที่ไม่ได้ใช้ linter จะสแกนหาพารามิเตอร์ที่ไม่ได้ใช้ที่ใดก็ได้ในไฟล์ Bicep ด้วยการกําจัดพารามิเตอร์ที่ไม่ได้ใช้งานคุณทําให้สามารถปรับใช้เทมเพลตของคุณได้ง่ายขึ้นเนื่องจากคุณไม่จําเป็นต้องให้ค่าที่ไม่จําเป็น นอกจากนี้คุณยังลดความสับสนเมื่อมีคนพยายามที่จะทํางานกับไฟล์ Bicep ของคุณ
-
การใช้สตริง linter จะตรวจสอบว่าไฟล์ของคุณใช้ฟังก์ชัน
concat()แทนการใช้สตริง Bicep เพิ่มเติมหรือไม่ การประมาณค่าระหว่างสตริงทําให้ไฟล์ Bicep ของคุณอ่านง่ายขึ้น -
ค่าเริ่มต้นสําหรับพารามิเตอร์ความปลอดภัย linter จะเตือนคุณถ้าคุณตั้งค่าเริ่มต้นสําหรับพารามิเตอร์ที่ถูกทําเครื่องหมายด้วยของ
@secure()ตกแต่ง ค่าเริ่มต้นสําหรับพารามิเตอร์ความปลอดภัยเป็นแนวทางปฏิบัติที่ไม่ดีเนื่องจากให้พารามิเตอร์ความปลอดภัยที่มนุษย์สามารถอ่านได้และผู้คนอาจไม่เปลี่ยนแปลงก่อนการปรับใช้
Bicep linter จะทํางานโดยอัตโนมัติเมื่อคุณใช้เครื่องมือ Bicep ทุกครั้งที่คุณสร้างไฟล์ Bicep linter จะตรวจสอบกับแนวทางปฏิบัติที่ดีที่สุด Linting เกิดขึ้นโดยอัตโนมัติเมื่อคุณปรับใช้ไฟล์ Bicep กับ Azure แต่ในไปป์ไลน์ โดยทั่วไปแล้วคุณจะต้องเรียกใช้ขั้นตอนการตรวจสอบความถูกต้องและการสร้างภาพข้อมูลก่อนที่คุณจะปรับใช้ไฟล์ คุณสามารถกําหนดค่า Bicep เพื่อตรวจสอบไฟล์ของคุณโดยการสร้างไฟล์ Bicep ด้วยตนเองผ่าน Bicep CLI:
az bicep build --file main.bicep
bicep build main.bicep
โน้ต
เมื่อคุณเรียกใช้คําสั่ง build Bicep จะตัดรหัส Bicep ของคุณไปยังเทมเพลต JSON ARM ด้วย โดยทั่วไปแล้วคุณไม่จําเป็นต้องใช้ไฟล์ที่มีการแสดงผล ดังนั้นคุณสามารถเพิกเฉยได้
เนื่องจากคุณต้องการให้ linter ตรวจสอบเทมเพลต Bicep ของคุณแต่ละครั้งที่ทุกคนตรวจสอบโค้ดลงในที่เก็บของคุณ คุณสามารถเพิ่มลําดับขั้นและงานที่ไม่เป็นขุยในไปป์ไลน์ของคุณได้:
คุณสามารถแสดงส่วนเพิ่มเติมนี้ในไฟล์ YAML ไปป์ไลน์ของคุณดังนี้:
stages:
- stage: Lint
jobs:
- job: Lint
steps:
- script: |
az bicep build --file deploy/main.bicep
คําเตือนและข้อผิดพลาดของ Linter
ตามค่าเริ่มต้น linter จะปล่อยคําเตือนเมื่อพบว่าไฟล์ Bicep ได้ละเมิดกฎ คําเตือนว่า Bicep linter emits ไม่ถือว่าเป็นข้อผิดพลาด ดังนั้นพวกเขาจะไม่หยุดการทํางานของไปป์ไลน์หรือหยุดขั้นตอนต่อ ๆ ไปป์ไลน์จากการเรียกใช้
คุณสามารถเปลี่ยนลักษณะการทํางานนี้ ได้โดยการกําหนดค่า Bicep เพื่อจัดการการละเมิดกฎ linter เป็นข้อผิดพลาดแทนที่จะเป็นคําเตือน คุณทําการกําหนดค่าโดยการเพิ่มไฟล์ bicepconfig.json ไปยังโฟลเดอร์ที่มีไฟล์ Bicep ของคุณ คุณสามารถตัดสินใจได้ว่าปัญหาของ Linter ควรได้รับการปฏิบัติเป็นข้อผิดพลาดและปัญหาใดควรยังคงเป็นคําเตือน คุณจะเห็นวิธีอัปเดตกฎ linter ในภายหลังในมอดูลนี้
ปลาย
ไฟล์ bicepconfig.json ยังควบคุมวิธีที่ Visual Studio Code แสดงข้อผิดพลาดและคําเตือนในตัวแก้ไข ซึ่งแสดงเส้นหยักสีแดงและสีเหลืองภายใต้ส่วนที่กําหนดไว้ผิดในเทมเพลต Bicep ของคุณ ตัวบ่งชี้เหล่านี้จะให้คําติชมที่รวดเร็วยิ่งขึ้นเมื่อคุณกําลังเขียนรหัส Bicep ของคุณ ซึ่งจะช่วยลดโอกาสของข้อผิดพลาดได้มากยิ่งขึ้น
หลังจากที่คุณกําหนดค่า linter ใหม่เพื่อปล่อยข้อผิดพลาด เมื่อใดก็ตามที่ linter ตรวจพบปัญหา ไปป์ไลน์ของคุณจะหยุดทํางานและขั้นตอนหรืองานที่ตามมาไม่ทํางาน การตั้งค่านี้ช่วยให้มั่นใจว่าไม่ได้ปรับใช้รหัส Bicep ที่มีปัญหา
การตรวจสอบ Preflight
นอกจากนี้คุณควรตรวจสอบว่าเทมเพลต Bicep ของคุณมีแนวโน้มที่จะปรับใช้กับสภาพแวดล้อม Azure ของคุณเรียบร้อยแล้วหรือไม่ การตรวจสอบนี้เรียกว่า การตรวจสอบ Preflight และจะเรียกใช้การตรวจสอบที่ต้องการข้อมูลจาก Azure การตรวจสอบชนิดเหล่านี้รวมถึง:
- ชื่อที่คุณระบุสําหรับทรัพยากร Bicep ถูกต้องหรือไม่
- ชื่อที่คุณระบุสําหรับทรัพยากร Bicep ของคุณถูกใช้แล้วใช่หรือไม่
- ภูมิภาคที่คุณกําลังปรับใช้ทรัพยากรของคุณถูกต้องหรือไม่
การตรวจสอบก่อนใช้งานจําเป็นต้องมีการสื่อสารกับ Azure แต่ไม่ได้ปรับใช้ทรัพยากรใด ๆ
คุณสามารถใช้ AzureResourceManagerTemplateDeployment งานเพื่อส่งไฟล์ Bicep สําหรับการตรวจสอบ Preflight
deploymentModeกําหนดค่า เป็นValidation
- stage: Validate
jobs:
- job: Validate
steps:
- task: AzureResourceManagerTemplateDeployment@3
inputs:
connectedServiceName: 'MyServiceConnection'
location: $(deploymentDefaultLocation)
deploymentMode: Validation
resourceGroupName: $(ResourceGroupName)
csmFile: deploy/main.bicep
คําสั่งนี้คล้ายกับงานการปรับใช้ที่คุณใช้อยู่แล้ว แต่ไม่ได้ปรับใช้ทรัพยากรใด ๆ ซึ่งจะทําการตรวจสอบเพิ่มเติมกับทรัพยากรที่ใช้ในเทมเพลตของคุณ
ตัวอย่างเช่น สมมติว่าไฟล์ Bicep ของคุณประกอบด้วยบัญชีเก็บข้อมูล การตรวจสอบ Preflight จะตรวจสอบว่าบัญชีเก็บข้อมูลอื่นมีชื่อที่คุณเลือกแล้วหรือไม่ นอกจากนี้ยังตรวจสอบว่าชื่อที่คุณเลือกสําหรับบัญชีเก็บข้อมูลเป็นไปตามมาตรฐานการตั้งชื่อหรือไม่
คําสั่งการตรวจสอบความถูกต้องของ Preflight เรียกใช้ Bicep linter อย่างไรก็ตาม โดยปกติแล้วเป็นความคิดที่ดีที่จะเรียกใช้ linter แยกต่างหาก ด้วยวิธีนี้ถ้ามีข้อผิดพลาด linter ใด ๆ คุณตรวจพบได้อย่างรวดเร็วแทนที่จะรอให้กระบวนการตรวจสอบเสร็จสิ้น การตรวจสอบความถูกต้องใช้เวลานานขึ้น
สําคัญ
เมื่อคุณเรียกใช้การตรวจสอบ Preflight ผู้ให้บริการทรัพยากร Azure แต่ละคนจะดําเนินการตรวจสอบของตนเอง ผู้ให้บริการทรัพยากรบางรายไม่ได้เรียกใช้การตรวจสอบจํานวนมาก ในขณะที่ผู้ให้บริการรายอื่นทําเช่นนั้นคุณจึงไม่สามารถพึ่งพาการตรวจสอบความถูกต้อง Preflight ให้มั่นใจว่าไฟล์ของคุณถูกต้อง อย่างไรก็ตามเป็นเครื่องมือที่มีประโยชน์และคุ้มค่าที่จะรวมไว้ในไปป์ไลน์ของคุณ
การเพิ่มขั้นตอนการตรวจสอบความถูกต้องไปยังไปป์ไลน์ของคุณเพื่อเรียกใช้ linter และดําเนินการตรวจสอบ Preflight คุณจะมีความมั่นใจมากขึ้นก่อนที่คุณปรับใช้ไฟล์ Bicep ของคุณ