ภาพรวม Azure Resource Manager

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

ภาพรวม Infrastructure as Code

  • ลองนึกถึง IaC ว่าเป็น แบบพิมพ์เขียว ของ cloud
  • แทนที่จะกำหนดคำสั่งรายวัน แบบพิมพ์เขียวจะกำหนดการออกแบบทั้งหมด
  • โค้ดไม่ได้ใช้ภายในแอป แต่ใช้กำหนด:
    • บริการใดบ้างที่ประกอบขึ้นเป็นแอป
    • แต่ละบริการได้รับการกำหนดค่าอย่างไร

Infrastructure as Code

Azure API Management

การ deploy ด้วย IaC

  • เมื่อเขียนโค้ด IaC แล้ว สามารถรันเพื่อ deploy ทั้ง environment ได้เลย
  • ไม่ต้องกำหนดค่าแต่ละบริการด้วยตนเอง
  • การ deploy รวดเร็วขึ้น ทำซ้ำได้ และเกิดข้อผิดพลาดน้อยลง

การ deploy ด้วย IaC

Azure API Management

แนะนำ ARM templates

  • มีหลายวิธีในการทำ IaC บน Azure
  • ARM templates เป็นกลไกดั้งเดิม
  • Template เหล่านี้ใช้ JSON เป็นพื้นฐาน
  • การ deploy ทรัพยากรมีความสม่ำเสมอข้ามทุก environment
  • รองรับการทำซ้ำและระบบอัตโนมัติ

เมนู Automation

Azure API Management

การสร้าง ARM templates

การ export ARM template

  • บริการใหม่สามารถสร้าง template จากบริการที่มีอยู่ได้

    • เหมือนการถ่ายภาพอาคารเพื่อสร้างขึ้นใหม่ที่อื่น
  • บน Azure Portal:

    • เปิด APIM instance -> เลือก blade Automation script หรือ Export template
    • Portal รวบรวมการกำหนดค่าปัจจุบัน (ตั้งค่า, API, policies, connections)
    • สร้างไฟล์ JSON และไฟล์ parameters ที่ดาวน์โหลดได้
  • แก้ไขค่าคอนฟิก เปลี่ยนชื่อ แล้ว deploy ใหม่ได้เลย

Azure API Management

โครงสร้าง ARM template

  • ARM template คือ JSON ที่มีโครงสร้างเฉพาะ
  • ลองนึกถึงมันว่าเป็นแผนผังหรือแบบแปลนของ environment

  • ส่วน Resources = แบบแปลนหลัก

    • ระบุทุกอย่างที่จะสร้าง (เช่น APIM service, APIs, products, policies)
    • แต่ละ resource มี type, API version และ properties
  • ส่วนอื่นของ template เพิ่มความยืดหยุ่นนอกเหนือจาก resources

โครงสร้าง ARM Template

Azure API Management

ARM template parameters และ variables

ARM template parameters และ variables

  • Parameters เปรียบเหมือนช่องว่างในแบบฟอร์ม

    • กรอกค่าตอน deploy (ชื่อ APIM, location, SKU, ข้อมูล publisher)
  • Variables เปรียบเหมือนกระดาษร่าง

    • ตัวช่วยที่คำนวณค่าเพื่อให้ template มีโครงสร้างที่ดี
    • ตัวอย่าง: เชื่อมชื่อ environment, สร้าง resource ID, หลีกเลี่ยงการซ้ำซ้อน
    • ทำให้ template อ่านง่ายและแก้ไขได้อย่างปลอดภัย
Azure API Management

ARM template outputs

  • Outputs เป็นส่วนที่ไม่บังคับ
  • คิดว่าเป็นเหมือนใบเสร็จที่ได้รับหลัง deploy เสร็จ
  • ให้ค่าที่มีประโยชน์ เช่น gateway URL หรือ resource ID
  • ช่วยให้สคริปต์อื่นใน deployment chain นำค่าเหล่านี้ไปใช้ต่อได้

ARM template outputs

Azure API Management

มาฝึกกันเถอะ!

Azure API Management

Preparing Video For Download...