Doelen en mogelijkheden in Azure Chaos Studio

Voordat u een fout kunt injecteren voor een Azure-resource, moet de resource eerst overeenkomende doelen en mogelijkheden hebben ingeschakeld. Doelen en mogelijkheden bepalen welke resources zijn ingeschakeld voor foutinjectie en welke fouten kunnen worden uitgevoerd op deze resources.

Door doelen en mogelijkheden samen met andere beveiligingsmaatregelen te gebruiken, kunt u onbedoelde of schadelijke foutinjectie voorkomen met Azure Chaos Studio. Met doelen en mogelijkheden kunt u bijvoorbeeld toestaan dat de CPU-drukfout wordt uitgevoerd op uw virtuele machines in uw productieomgeving, terwijl wordt voorkomen dat de kill process-fout wordt uitgevoerd.

Doelen

Met een chaosdoel kan Chaos Studio communiceren met een resource voor een bepaald doeltype. Een doeltype vertegenwoordigt de methode voor het injecteren van fouten voor een resource. Resourcetypen die alleen service-directe fouten ondersteunen, hebben één doeltype. Een voorbeeld is het Microsoft-CosmosDB type voor Azure Cosmos DB.

Resourcetypen die service-directe en op agents gebaseerde fouten ondersteunen, hebben twee doeltypen. Eén doeltype is voor service-directe fouten (bijvoorbeeld Microsoft-VirtualMachine). Het andere doeltype is voor op agents gebaseerde fouten (altijd Microsoft-Agent).

Een doel is een extensieresource die is gemaakt als een onderliggend element van de resource die wordt geïmplementeerd in Chaos Studio. Voorbeelden zijn een virtuele machine of een netwerkbeveiligingsgroep. Een doel definieert het doeltype dat is ingeschakeld voor de resource. Als u bijvoorbeeld een Azure Cosmos DB-exemplaar onboardt met deze resource-id:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB

De Azure Cosmos DB-resource heeft een onderliggende resource die is opgemaakt zoals in dit voorbeeld:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB/providers/Microsoft.Chaos/targets/Microsoft-CosmosDB

Alleen resources met een doel dat van hen is gemaakt, zijn gericht op foutinjectie met Chaos Studio.

Functies

Met een mogelijkheid kan Chaos Studio een bepaalde fout uitvoeren op een resource, zoals het afsluiten van een virtuele machine. Mogelijkheden zijn uniek per doeltype. Ze vertegenwoordigen de fout die ze inschakelen, bijvoorbeeld CPUPressure-1.0. Zie de Chaos Studio-foutbibliotheek voor informatie over alle beschikbare fouten en de bijbehorende mogelijkheidsnamen en doeltypen.

Een mogelijkheid is een extensieresource die is gemaakt als een onderliggend element van een doel. Als u bijvoorbeeld de afsluitfout inschakelt op een virtuele machine met een service-direct doel-id:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine

De doelresource heeft een onderliggende resource die is opgemaakt zoals in dit voorbeeld:

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0

Een experiment kan alleen fouten op onboarded doelen injecteren met de bijbehorende mogelijkheden ingeschakeld.

Lijst met mogelijkheidsnamen en parameters

Ter referentie is een lijst met mogelijkheidsnamen, fout-URL's en parameters beschikbaar in onze foutbibliotheek. U kunt het HTTP-antwoord gebruiken om een mogelijkheid te maken of een GET uitvoeren op een bestaande mogelijkheid om deze informatie op aanvraag op te halen. Ga als volgt te werk om een GET uit te voeren op een VM-afsluitmogelijkheid:

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"

Retourneert de volgende 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"
}

De properties.urn eigenschap wordt gebruikt om de fout te definiëren die u wilt uitvoeren in een chaos-experiment. Als u het schema voor de parameters van deze fout wilt begrijpen, kunt u het schema ophalen waarnaar wordt verwezen door properties.parametersSchema:

az rest --method get --url "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json"

Retourneert de volgende JSON:

{
  "$schema": "https://json-schema.org/draft-07/schema",
  "properties": {
    "abruptShutdown": {
      "type": "boolean"
    },
    "restartWhenComplete": {
      "type": "boolean"
    }
  },
  "type": "object"
}

Volgende stappen

Nu u begrijpt wat doelen en mogelijkheden zijn, kunt u het volgende doen: