Ziele und Funktionen in Azure Chaos Studio
Bevor Sie einen Fehler für eine Azure-Ressource injizieren können, müssen für die Ressource zuerst die entsprechenden Ziele und Funktionen aktiviert sein. Ziele und Funktionen steuern, welche Ressourcen für die Fehlerinjektion aktiviert sind und welche Fehler für diese Ressourcen ausgeführt werden können.
Wenn Sie Ziele und Funktionen zusammen mit anderen Sicherheitsmaßnahmen verwenden, können Sie versehentliche oder böswillige Fault Injection mit Azure Chaos Studio vermeiden. Mit Zielen und Funktionen können Sie beispielsweise zulassen, dass der CPU-Druckfehler auf Ihren virtuellen Produktionscomputern ausgeführt wird, während gleichzeitig verhindert wird, dass der Beendigungsprozessfehler für sie ausgeführt wird.
Targets
Ein Chaosziel ermöglicht Chaos Studio die Interaktion mit einer Ressource für einen bestimmten Zieltyp. Ein Zieltyp stellt die Methode zum Injizieren von Fehlern für eine Ressource dar. Ressourcentypen, die nur dienstspezifische Fehler unterstützen, haben einen Zieltyp. Ein Beispiel ist der Typ Microsoft-CosmosDB
für Azure Cosmos DB.
Ressourcentypen, die dienstspezifische und agentbasierte Fehler unterstützen, weisen zwei Zieltypen auf. Ein Zieltyp ist für dienstspezifische Fehler vorgesehen (z. B. Microsoft-VirtualMachine
). Ein weiterer Zieltyp ist für agentbasierte Fehler bestimmt (immer Microsoft-Agent
).
Ein Ziel ist eine Erweiterungsressource, die als untergeordnetes Element der Ressource erstellt wird, die in Chaos Studio integriert wird. Beispiele sind ein virtueller Computer oder eine Netzwerksicherheitsgruppe. Ein Ziel definiert den Zieltyp, der für die Ressource aktiviert ist. Wenn Sie beispielsweise eine Azure Cosmos DB-Instanz mit dieser Ressourcen-ID integrieren:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB
Die Azure Cosmos DB-Ressource hat eine untergeordnete Ressource, die wie in diesem Beispiel formatiert ist:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB/providers/Microsoft.Chaos/targets/Microsoft-CosmosDB
Nur Ressourcen, für die ein Ziel erstellt wurde, können für die Fehlerinjektion mit Chaos Studio verwendet werden.
Capabilities
Mit einer Funktion kann Chaos Studio einen bestimmten Fehler für eine Ressource ausführen, z. B. das Herunterfahren eines virtuellen Computers. Funktionen sind pro Zieltyp eindeutig. Sie stellen den Fehler dar, den sie aktivieren, z. B. CPUPressure-1.0
. Informationen zu allen verfügbaren Fehlern und den entsprechenden Funktionsnamen und Zieltypen finden Sie in der Chaos Studio-Fehlerbibliothek.
Eine Funktion ist eine Erweiterungsressource, die als untergeordnetes Element eines Ziels erstellt wurde. Wenn Sie beispielsweise den Fehler beim Herunterfahren auf einem virtuellen Computer mit einer dienstspezifischen Ziel-ID aktivieren:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine
Die Zielressource hat eine untergeordnete Ressource, die wie in diesem Beispiel formatiert ist:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0
Ein Experiment kann nur Fehler auf integrierten Zielen mit aktivierten entsprechenden Funktionen injizieren.
Auflisten von Funktionsnamen und Parametern
Zur Referenz steht eine Liste der Funktionsnamen, Fehler-URNs und Parameter in unserer Fehlerbibliothek zur Verfügung. Sie können die HTTP-Antwort verwenden, um eine Funktion zu erstellen, oder GET für eine vorhandene Funktion ausführen, um diese Informationen bei Bedarf abzurufen. Führen Sie z. B. so GET für eine Funktion zum Herunterfahren einer VM aus:
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"
Gibt den folgenden JSON-Code zurück:
{
"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"
}
Die properties.urn
-Eigenschaft wird verwendet, um den Fehler zu definieren, den Sie in einem Chaosexperiment ausführen möchten. Um das Schema für die Parameter dieses Fehlers zu verstehen, können Sie das Schema, auf das von properties.parametersSchema
verwiesen wird, mit GET abrufen:
az rest --method get --url "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json"
Gibt den folgenden JSON-Code zurück:
{
"$schema": "https://json-schema.org/draft-07/schema",
"properties": {
"abruptShutdown": {
"type": "boolean"
},
"restartWhenComplete": {
"type": "boolean"
}
},
"type": "object"
}
Nächste Schritte
Nachdem Sie nun wissen, was Ziele und Funktionen sind, sind Sie für Folgendes bereit: