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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB
Azure Cosmos DB 資源會具有如下範例格式的子資源:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB/providers/Microsoft.Chaos/targets/Microsoft-CosmosDB
只有已從中建立了目標的資源,才是能使用 Chaos Studio 進行錯誤插入的目標。
功能
功能可讓 Chaos Studio 對資源執行特定錯誤,例如關閉虛擬機器。 每個目標型別的功能都是唯一的。 代表其所啟用的錯誤,例如 CPUPressure-1.0
。 為了解所有可用的錯誤及其對應的功能名稱和目標型別,請參閱 Chaos Studio 錯誤程式庫。
功能是作為目標子系所建立的擴充資源。 例如,如果在具有服務導向目標識別碼的虛擬機器上啟用關機錯誤:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine
目標資源將具有如下範例格式的子資源:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
}
下一步
既然您已了解目標與功能,即可: