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.

Indem Sie Ziele und Funktionen zusammen mit anderen Sicherheitsmaßnahmen verwenden, können Sie versehentliche oder böswillige Fehlereinfügungen mit Azure Chaos Studio vermeiden. Mit Zielen und Funktionen können Sie z. B. zulassen, dass der CPU-Druckfehler gegen Ihre virtuellen Produktionscomputer ausgeführt wird, während verhindert wird, dass der Kill-Prozessfehler gegen 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 Dienst-direct-Fehler unterstützen, weisen einen Zieltyp auf. Ein Beispiel ist der Microsoft-CosmosDB Typ für Azure Cosmos DB.

Ressourcentypen, die Dienst-direct- und agentbasierte Fehler unterstützen, weisen zwei Zieltypen auf. Ein Zieltyp ist für Dienst-direct-Fehler (z. B Microsoft-VirtualMachine. ) bestimmt. Der andere Zieltyp ist für agentbasierte Fehler (immer Microsoft-Agent) bestimmt.

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/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB

Die Azure Cosmos DB-Ressource weist eine untergeordnete Ressource auf, die wie in diesem Beispiel formatiert ist:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/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.

Funktionen

Mit einer Funktion kann Chaos Studio einen bestimmten Fehler gegen eine Ressource ausführen, z. B. das Herunterfahren eines virtuellen Computers. Funktionen sind pro Zieltyp eindeutig. Sie stellen den Fehler dar, den sie aktivieren, CPUPressure-1.0z. B. . 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 z. B. den Herunterfahrenfehler auf einem virtuellen Computer mit einer Dienst-direct-Ziel-ID aktivieren:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/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/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/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.

Listenfunktionsnamen und Parameter

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 eine GET auf eine vorhandene Funktion anzuwenden, um diese Informationen bei Bedarf abzurufen. So führen Sie z. B. eine GET-Funktion für das Herunterfahren eines virtuellen Computers 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/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"
}

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 abrufen, auf das verwiesen wird:properties.parametersSchema

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, welche Ziele und Funktionen sie sind, sind Sie bereit für: