Cele i możliwości w usłudze Azure Chaos Studio

Aby można było wstrzyknąć błąd względem zasobu platformy Azure, zasób musi najpierw mieć włączone odpowiednie elementy docelowe i możliwości. Cele i możliwości kontrolują, które zasoby są włączone do wstrzykiwania błędów i które błędy mogą działać względem tych zasobów.

Korzystając z obiektów docelowych i możliwości wraz z innymi środkami zabezpieczeń, można uniknąć przypadkowego lub złośliwego wstrzyknięcia błędów w usłudze Azure Chaos Studio. Na przykład w przypadku obiektów docelowych i możliwości można zezwolić na działanie błędu ciśnienia procesora CPU na maszynach wirtualnych produkcyjnych, uniemożliwiając jednocześnie działanie błędu procesu kill.

Cele

Cel chaosu umożliwia programowi Chaos Studio interakcję z zasobem dla określonego typu docelowego. Typ docelowy reprezentuje metodę wstrzykiwania błędów względem zasobu. Typy zasobów, które obsługują tylko błędy bezpośrednie usługi, mają jeden typ docelowy. Przykładem jest Microsoft-CosmosDB typ usługi Azure Cosmos DB.

Typy zasobów, które obsługują błędy oparte na usłudze i agenta, mają dwa typy docelowe. Jednym typem docelowym są błędy bezpośrednie usługi (na przykład Microsoft-VirtualMachine). Innym typem docelowym są błędy oparte na agencie (zawsze Microsoft-Agent).

Elementem docelowym jest zasób rozszerzenia utworzony jako element podrzędny zasobu, który jest dołączany do programu Chaos Studio. Przykłady to maszyna wirtualna lub sieciowa grupa zabezpieczeń. Element docelowy definiuje typ docelowy, który jest włączony w zasobie. Jeśli na przykład dołączasz wystąpienie usługi Azure Cosmos DB przy użyciu tego identyfikatora zasobu:

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

Zasób usługi Azure Cosmos DB ma zasób podrzędny sformatowany w następujący przykład:

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

Tylko zasoby z obiektem docelowym utworzonym poza nimi są przeznaczone do wstrzykiwania błędów za pomocą programu Chaos Studio.

Funkcje

Funkcja umożliwia programowi Chaos Studio uruchamianie określonego błędu względem zasobu, takiego jak zamykanie maszyny wirtualnej. Możliwości są unikatowe dla każdego typu docelowego. Reprezentują one błąd, który włącza, na przykład CPUPressure-1.0. Aby zrozumieć wszystkie dostępne błędy i odpowiadające im nazwy możliwości i typy docelowe, zobacz bibliotekę błędów Programu Chaos Studio.

Funkcja to zasób rozszerzenia utworzony jako element podrzędny obiektu docelowego. Jeśli na przykład włączasz błąd zamykania na maszynie wirtualnej z identyfikatorem docelowym usługi bezpośredniej:

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

Zasób docelowy ma zasób podrzędny sformatowany w następujący przykład:

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

Eksperyment może wprowadzać tylko błędy we dołączanych elementach docelowych z włączonymi odpowiednimi możliwościami.

Wyświetlanie listy nazw i parametrów funkcji

Lista nazw możliwości, adresów URL błędów i parametrów jest dostępna w naszej bibliotece błędów. Możesz użyć odpowiedzi HTTP, aby utworzyć możliwość lub wykonać polecenie GET dla istniejącej możliwości, aby uzyskać te informacje na żądanie. Aby na przykład wykonać polecenie GET w przypadku możliwości zamykania maszyny wirtualnej:

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"

Zwraca następujący kod 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"
}

Właściwość properties.urn służy do definiowania błędu, który ma zostać uruchomiony w eksperymencie chaosu. Aby zrozumieć schemat parametrów tego błędu, możesz pobrać schemat, do którego odwołuje się properties.parametersSchemaprogram :

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

Zwraca następujący kod JSON:

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

Następne kroki

Teraz, po zapoznaniu się z celami i możliwościami, możesz przystąpić do: