分享方式:


Azure Chaos Studio 中的目標和功能

資源必須先啟用對應的目標和功能,才能對 Azure 資源插入錯誤。 目標和功能可控制哪些資源已啟用錯誤插入,以及哪些錯誤可以針對這些資源執行。

使用目標和功能加上其他安全性措施,您就可以避免使用 Azure Chaos Studio 時意外或惡意的錯誤插入。 例如,使用目標和功能,您可以允許 CPU 壓力錯誤針對生產虛擬機器執行,同時防止終止流程錯誤對其執行。

目標

混沌目標可讓 Chaos Studio 與特定目標型別的資源互動。 目標型別代表針對資源插入錯誤的方法。 僅支援服務導向錯誤的資源類型有一個目標型別。 範例為 Azure Cosmos DB 的 Microsoft-CosmosDB 型別。

支援服務導向和代理程式型錯誤的資源類型有兩種目標型別。 其中一個目標類型適用於服務導向錯誤 (例如 Microsoft-VirtualMachine)。 另一個目標型別是代理程式型錯誤 (一律是 Microsoft-Agent)。

目標是指作為上線至 Chaos Studio 資源的子系資源而建立的擴充資源。 範例包括虛擬機器或網路安全性群組。 目標會定義資源上啟用的目標型別。 例如,如果要將具有此資源識別碼的 Azure Cosmos DB 執行個體上線:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB

Azure Cosmos DB 資源會具有如下範例格式的子資源:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB/providers/Microsoft.Chaos/targets/Microsoft-CosmosDB

只有已從中建立了目標的資源,才是能使用 Chaos Studio 進行錯誤插入的目標。

功能

功能可讓 Chaos Studio 對資源執行特定錯誤,例如關閉虛擬機器。 每個目標型別的功能都是唯一的。 代表其所啟用的錯誤,例如 CPUPressure-1.0。 為了解所有可用的錯誤及其對應的功能名稱和目標型別,請參閱 Chaos Studio 錯誤程式庫

功能是作為目標子系所建立的擴充資源。 例如,如果在具有服務導向目標識別碼的虛擬機器上啟用關機錯誤:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine

目標資源將具有如下範例格式的子資源:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0

實驗只能在已啟用對應功能的上線目標上插入錯誤。

列出功能名稱和參數

如需參考,錯誤連結庫中會提供功能名稱、錯誤 URN 和參數的清單。 您可以使用 HTTP 回應以建立功能,或對現有功能執行 GET,以視需要取得這項資訊。 例如,在 VM 關機功能上執行 GET:

az rest --method get --url "https://management.azure.com/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0?api-version=2023-11-01"

傳回下列 JSON:

{
  "id": "/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0",
  "name": "shutdown-1.0",
  "properties": {
    "description": null,
    "name": "shutdown-1.0",
    "parametersSchema": "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json",
    "publisher": "Microsoft",
    "targetType": "VirtualMachine",
    "type": "shutdown",
    "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0",
    "version": "1.0"
  },
  "resourceGroup": "myRG",
  "systemData": {
    "createdAt": "2021-09-15T23:00:00.826575+00:00",
    "lastModifiedAt": "2021-09-15T23:00:00.826575+00:00"
  },
  "type": "Microsoft.Chaos/targets/capabilities"
}

properties.urn 屬性可用來定義您想要在混沌實驗中執行的錯誤。 若要了解這個錯誤參數的結構描述,您可以 GET properties.parametersSchema 所參考的結構描述:

az rest --method get --url "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json"

傳回下列 JSON:

{
  "$schema": "https://json-schema.org/draft-07/schema",
  "properties": {
    "abruptShutdown": {
      "type": "boolean"
    },
    "restartWhenComplete": {
      "type": "boolean"
    }
  },
  "type": "object"
}

下一步

既然您已了解目標與功能,即可: