0Pricing
Azure Fundamentals · บทเรียน

การทำงานของ Azure Resource Manager

ติดตามคำขอสร้างทรัพยากรผ่านชั้น ARM ทำความเข้าใจกลุ่มทรัพยากรในฐานะคอนเทนเนอร์เชิงตรรกะ และเรียนรู้เกี่ยวกับการควบคุมการเข้าถึงตามบทบาทและบันทึกการตรวจสอบของ ARM

การทำงานของ Azure Resource Manager เป็นบทเรียน Azure Fundamentals ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Azure Fundamentals และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Azure Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน

Azure Resource Manager คืออะไร

Azure Resource Manager (ARM) คือบริการปรับใช้และจัดการสำหรับ Azure ทุกการดำเนินการที่คุณทำในพอร์ทัล Azure, CLI, PowerShell หรือส่วนติดต่อ REST จะส่งผ่าน ARM ทั้งหมด ARM ทำหน้าที่เป็นระนาบควบคุมแบบรวมศูนย์ที่ตรวจสอบสิทธิ์ อนุญาตสิทธิ์ และกำหนดเส้นทางให้การดำเนินการกับทรัพยากรทุกอย่าง

โฟลว์คำขอของ ARM

เมื่อคุณส่งคำขอเพื่อสร้างทรัพยากร ARM จะดักรับคำขอดังกล่าว ตรวจสอบข้อมูลประจำตัวของคุณผ่าน Microsoft Entra ID ตรวจสอบ สิทธิ์ RBAC ใช้กฎของ Azure Policy หากมี แล้วจึงส่งต่อคำขอที่ผ่านการตรวจสอบแล้วไปยังผู้ให้บริการทรัพยากรที่เหมาะสม ผู้ให้บริการทรัพยากร (เช่น Microsoft.Compute) จะดำเนินการจริงและส่งผลลัพธ์กลับไปยัง ARM

# Example: creating a VM via Azure CLI (routed through ARM)
az vm create \
  --resource-group MyRG \
  --name MyVM \
  --image UbuntuLTS \
  --admin-username azureuser

ผู้ให้บริการทรัพยากรและชนิดทรัพยากร

บริการ Azure ให้บริการผ่าน ผู้ให้บริการทรัพยากร ซึ่งแต่ละรายระบุด้วยเนมสเปซ เช่น Microsoft.Storage หรือ Microsoft.Network ทรัพยากรแต่ละชนิด (เช่น Microsoft.Storage/storageAccounts) ต้องลงทะเบียนในการสมัครใช้งานของคุณก่อนจึงจะสร้างอินสแตนซ์ของทรัพยากรชนิดนั้นได้ ผู้ให้บริการส่วนใหญ่จะลงทะเบียนโดยอัตโนมัติเมื่อคุณใช้บริการที่เกี่ยวข้องเป็นครั้งแรก

# List registered resource providers
az provider list --query "[?registrationState=='Registered'].namespace" -o table

# Register a provider manually
az provider register --namespace Microsoft.Insights

กลุ่มทรัพยากรในฐานะคอนเทนเนอร์เชิงตรรกะ

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

# Create a resource group
az group create --name MyResourceGroup --location eastus

# List all resources in a resource group
az resource list --resource-group MyResourceGroup -o table

ARM และการควบคุมการเข้าถึงตามบทบาท

ARM บังคับใช้ การควบคุมการเข้าถึงตามบทบาท (RBAC) ในทุกขอบเขต ได้แก่ กลุ่มการจัดการ การสมัครใช้งาน กลุ่มทรัพยากร หรือทรัพยากรแต่ละรายการ บทบาทในตัวอย่าง เจ้าของ Contributor และ ผู้อ่าน ครอบคลุมสถานการณ์ส่วนใหญ่ ARM จะประเมินการกำหนดบทบาทจากขอบเขตระดับสูงสุดลงมา และการกำหนดการปฏิเสธสามารถบล็อกสิทธิ์ที่สืบทอดมาได้

# Assign Contributor role at resource group scope
az role assignment create \
  --assignee user@contoso.com \
  --role 'Contributor' \
  --resource-group MyResourceGroup

บันทึกการตรวจสอบของ ARM

การดำเนินการทุกอย่างที่ส่งผ่าน ARM จะถูกบันทึกไว้ใน บันทึกกิจกรรมของ Azure บันทึกกิจกรรมจะเก็บข้อมูลว่าใครเป็นผู้ดำเนินการ ดำเนินการกับทรัพยากรใด ดำเนินการเมื่อใด และสำเร็จหรือล้มเหลว บันทึกกิจกรรมจะเก็บรักษาไว้เป็นเวลา 90 วันโดยค่าเริ่มต้น และสามารถเก็บถาวรไปยัง Storage Account หรือสตรีมไปยัง Log Analytics เพื่อเก็บรักษาได้นานขึ้น

# Query recent ARM operations in activity log
az monitor activity-log list \
  --resource-group MyResourceGroup \
  --max-events 10 \
  --query '[].{time:eventTimestamp, caller:caller, operation:operationName.value, status:status.value}' \
  -o table

การปรับใช้แบบ Declarative และ Imperative

ARM รองรับรูปแบบการปรับใช้ทั้งแบบ Declarative และ Imperative การปรับใช้แบบ Declarative ใช้เทมเพลต ARM หรือ Bicep เพื่ออธิบายสถานะปลายทางที่ต้องการ จากนั้น ARM จะคำนวณการดำเนินการที่จำเป็นเพื่อไปให้ถึงสถานะนั้น ส่วนการปรับใช้แบบ Imperative ใช้คำสั่ง CLI หรือ PowerShell ทีละขั้นตอน การปรับใช้แบบ Declarative เป็นรูปแบบที่แนะนำเพื่อให้ทำซ้ำได้ ควบคุมเวอร์ชันได้ และมีคุณสมบัติการทำงานซ้ำโดยให้ผลลัพธ์เดิม

# Imperative: create storage account step-by-step
az storage account create \
  --name mystorageaccount \
  --resource-group MyRG \
  --location eastus \
  --sku Standard_LRS

# Declarative: deploy via ARM template
az deployment group create \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --parameters @azuredeploy.parameters.json

โหมดการปรับใช้: Complete และ Incremental

การปรับใช้เทมเพลต ARM สามารถทำงานได้สองโหมด โหมด Incremental (ค่าเริ่มต้น) จะเพิ่มหรืออัปเดตทรัพยากรที่กำหนดไว้ในเทมเพลต โดยปล่อยทรัพยากรที่มีอยู่แล้วในกลุ่มแต่ไม่ได้อยู่ในเทมเพลตไว้ตามเดิม ส่วน โหมด Complete จะลบทรัพยากรใด ๆ ในกลุ่มทรัพยากรที่ไม่ได้กำหนดไว้ในเทมเพลต ทำให้กลุ่มตรงกับเทมเพลตทุกประการ จึงควรใช้อย่างระมัดระวัง

# Incremental deployment (default)
az deployment group create \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --mode Incremental

# Complete deployment (deletes unlisted resources!)
az deployment group create \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --mode Complete

โครงสร้างเทมเพลต ARM

เทมเพลต ARM คือเอกสาร JSONที่มีหกส่วนหลัก ได้แก่ $schema (เวอร์ชันเทมเพลต), contentVersion, parameters (ข้อมูลนำเข้า), variables (ค่าที่คำนวณแล้ว), resources (สิ่งที่จะปรับใช้) และ outputs (ค่าที่ส่งคืน) อาร์เรย์ resources จะมีออบเจ็กต์หนึ่งรายการต่อทรัพยากร Azure แต่ละรายการ โดยแต่ละรายการระบุชนิด เวอร์ชัน API ชื่อ ตำแหน่งที่ตั้ง และคุณสมบัติ

{
  '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#',
  'contentVersion': '1.0.0.0',
  'parameters': {},
  'variables': {},
  'resources': [
    {
      'type': 'Microsoft.Storage/storageAccounts',
      'apiVersion': '2023-01-01',
      'name': 'mystorageaccount',
      'location': '[resourceGroup().location]',
      'sku': { 'name': 'Standard_LRS' },
      'kind': 'StorageV2'
    }
  ],
  'outputs': {}
}

การจัดการการขึ้นต่อกันใน ARM

เมื่อปรับใช้ทรัพยากรหลายรายการ ARM สามารถปรับใช้ทรัพยากรที่ไม่ขึ้นต่อกันแบบขนานได้โดยค่าเริ่มต้น ซึ่งช่วยให้การปรับใช้รวดเร็วขึ้น หากทรัพยากรหนึ่งขึ้นต่ออีกทรัพยากรหนึ่ง (เช่น VM ต้องใช้ NIC และ NIC ต้องใช้ VNet) คุณต้องประกาศการขึ้นต่อกันอย่างชัดเจนด้วย dependsOn ARM จะวิเคราะห์กราฟการขึ้นต่อกันและจัดลำดับการดำเนินการให้สอดคล้องกัน

{
  'type': 'Microsoft.Network/networkInterfaces',
  'name': 'myNic',
  'dependsOn': [
    '[resourceId("Microsoft.Network/virtualNetworks", "myVNet")]'
  ],
  'properties': {
    'ipConfigurations': [{
      'name': 'ipconfig1',
      'properties': {
        'subnet': {
          'id': '[resourceId("Microsoft.Network/virtualNetworks/subnets", "myVNet", "mySubnet")]'
        }
      }
    }]
  }
}

การวิเคราะห์การปรับใช้แบบ What-If

ก่อนเรียกใช้การปรับใช้ ให้ใช้การดำเนินการ what-if เพื่อดูตัวอย่างการเปลี่ยนแปลงที่ ARM จะทำโดยไม่ดำเนินการจริง ผลลัพธ์จะแสดงรายการทรัพยากรที่จะสร้าง แก้ไข หรือลบ โดยใช้สีแยกตามชนิดการเปลี่ยนแปลง วิธีนี้มีประโยชน์อย่างยิ่งก่อนเรียกใช้การปรับใช้โหมด Complete หรือเปลี่ยนแปลงสภาพแวดล้อมการใช้งานจริง

# Preview changes before deploying
az deployment group what-if \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --parameters @params.json

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจแนวคิด Microsoft Azure Fundamentals (AZ-900) จากบทเรียนนี้

สรุปบทเรียน

ในบทเรียนนี้ คุณได้เรียนรู้ว่า Azure Resource Manager เป็นชั้นการจัดการแบบรวมศูนย์สำหรับทรัพยากร Azure ทั้งหมด กลุ่มทรัพยากรเป็นคอนเทนเนอร์เชิงตรรกะที่จัดกลุ่มทรัพยากรซึ่งใช้วงจรชีวิตร่วมกัน และ การปรับใช้ ARM สามารถทำงานในโหมด Incremental หรือ Complete พร้อมรองรับการแสดงตัวอย่างแบบ what-if บทถัดไปเราจะเรียนรู้การเขียนเทมเพลต ARM

คำถามที่พบบ่อย

บทเรียน “การทำงานของ Azure Resource Manager” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การทำงานของ Azure Resource Manager” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Azure Fundamentals ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Azure Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การทำงานของ Azure Resource Manager”

ติดตามคำขอสร้างทรัพยากรผ่านชั้น ARM ทำความเข้าใจกลุ่มทรัพยากรในฐานะคอนเทนเนอร์เชิงตรรกะ และเรียนรู้เกี่ยวกับการควบคุมการเข้าถึงตามบทบาทและบันทึกการตรวจสอบของ ARM คุณปฏิบัติ Azure Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Azure Fundamentals หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Azure Fundamentals บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การทำงานของ Azure Resource Manager” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Azure Fundamentals นี้ได้ไหม

ได้ บทเรียน Azure Fundamentals ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การทำงานของ Azure Resource Manager
  2. การเขียนเทมเพลต ARM
  3. Bicep: IaC สมัยใหม่สำหรับ Azure
  4. Terraform บน Azure
← กลับไปที่ Azure Fundamentals