Mål och funktioner i Azure Chaos Studio
Innan du kan mata in ett fel mot en Azure-resurs måste resursen först ha motsvarande mål och funktioner aktiverade. Mål och funktioner styr vilka resurser som är aktiverade för felinmatning och vilka fel som kan köras mot dessa resurser.
Genom att använda mål och funktioner tillsammans med andra säkerhetsåtgärder kan du undvika oavsiktlig eller skadlig felinmatning med Azure Chaos Studio. Med mål och funktioner kan du till exempel låta cpu-tryckfelet köras mot dina virtuella produktionsdatorer samtidigt som du förhindrar att avlivningsprocessens fel körs mot dem.
Mål
Ett kaosmål gör att Chaos Studio kan interagera med en resurs för en viss måltyp. En måltyp representerar metoden för att mata in fel mot en resurs. Resurstyper som endast stöder tjänstdirigeringsfel har en måltyp. Ett exempel är Microsoft-CosmosDB
typen för Azure Cosmos DB.
Resurstyper som stöder tjänstdirigering och agentbaserade fel har två måltyper. En måltyp är för tjänstdirigeringsfel (till exempel Microsoft-VirtualMachine
). Den andra måltypen är för agentbaserade fel (alltid Microsoft-Agent
).
Ett mål är en tilläggsresurs som skapas som underordnad resursen som registreras i Chaos Studio. Exempel är en virtuell dator eller en nätverkssäkerhetsgrupp. Ett mål definierar den måltyp som är aktiverad för resursen. Om du till exempel registrerar en Azure Cosmos DB-instans med det här resurs-ID:t:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB
Azure Cosmos DB-resursen har en underordnad resurs formaterad så här:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB/providers/Microsoft.Chaos/targets/Microsoft-CosmosDB
Endast resurser med ett mål som skapats av dem kan användas för felinmatning med Chaos Studio.
Funktioner
Med en funktion kan Chaos Studio köra ett visst fel mot en resurs, till exempel stänga av en virtuell dator. Funktionerna är unika per måltyp. De representerar det fel som de aktiverar, CPUPressure-1.0
till exempel . Information om alla tillgängliga fel och deras motsvarande kapacitetsnamn och måltyper finns i Chaos Studio-felbiblioteket.
En funktion är en tilläggsresurs som skapats som underordnad ett mål. Om du till exempel aktiverar avstängningsfelet på en virtuell dator med ett tjänstdirigeringsmål-ID:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine
Målresursen har en underordnad resurs formaterad som det här exemplet:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0
Ett experiment kan bara mata in fel på registrerade mål med motsvarande funktioner aktiverade.
Lista kapacitetsnamn och parametrar
Som referens finns en lista över kapacitetsnamn, fel-URL:er och parametrar i vårt felbibliotek. Du kan använda HTTP-svaret för att skapa en funktion eller göra en GET på en befintlig funktion för att hämta den här informationen på begäran. Om du till exempel vill göra en GET på en funktion för avstängning av virtuella datorer:
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"
Returnerar följande 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"
}
Egenskapen properties.urn
används för att definiera det fel som du vill köra i ett kaosexperiment. För att förstå schemat för det här felets parametrar kan du HÄMTA schemat som refereras av properties.parametersSchema
:
az rest --method get --url "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json"
Returnerar följande JSON:
{
"$schema": "https://json-schema.org/draft-07/schema",
"properties": {
"abruptShutdown": {
"type": "boolean"
},
"restartWhenComplete": {
"type": "boolean"
}
},
"type": "object"
}
Nästa steg
Nu när du förstår vilka mål och funktioner som finns är du redo att: