Share via


Azure Chaos Studio 中的目標和功能

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

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

目標

混亂 目標 可讓 Chaos Studio 與特定目標類型的資源互動。 目標類型代表針對資源插入錯誤的方法。 只有支援服務直接錯誤的資源類型有一個目標類型。 例如 Microsoft-CosmosDB Azure Cosmos DB 的類型。

支援服務導向和代理程式型錯誤的資源類型有兩種目標類型。 其中一個目標類型適用於服務直接錯誤(例如, 。 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 可用來定義您想要在混亂實驗中執行的錯誤。 若要瞭解此錯誤參數的架構,您可以取得 所 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"
}

下一步

現在您已了解什麼是目標和功能,接下來即可: