Compartir a través de


Usar las API de REST para interactuar con Chaos Studio

Si va a integrar Azure Chaos Studio en las canalizaciones de CI/CD, o simplemente prefiere usar llamadas de API directas para interactuar con los recursos de Azure, puede usar la API de REST de Chaos Studio. Para obtener la referencia completa de la API, visite la Referencia de la API de REST de Azure Chaos Studio. En esta página se proporcionan ejemplos para usar la API de REST de forma eficaz y no pretende ser una referencia exhaustiva.

En este artículo se da por supuesto que usa la CLI de Azure para ejecutar estos comandos, pero puede adaptarlos a otros clientes REST estándar.

Puede usar las API de REST de Chaos Studio para:

  • Crear, modificar y eliminar experimentos
  • Visualizar, iniciar y detener ejecuciones de experimentos
  • Visualizar y administrar destinos
  • Registrar y anular el registro de la suscripción con el proveedor de recursos de Chaos Studio
  • Ver las operaciones del proveedor de recursos disponibles.

Usar la utilidad az cli para realizar estas acciones desde la línea de comandos.

Sugerencia

Para obtener una salida más detallada con la CLI de Azure, anexe --verbose al final de cada comando. Esta variable devuelve más metadatos cuando se ejecutan comandos, incluido x-ms-correlation-request-id, que ayuda a la depuración.

Estos ejemplos se han revisado con la versión 2023-11-01 de la API de Chaos Studio disponible con carácter general.

Comandos del proveedor de recursos

En esta sección se enumeran los comandos del proveedor de Chaos Studio, que le ayudan a comprender el estado del proveedor de recursos y las operaciones disponibles.

Enumerar los detalles del proveedor de recursos Microsoft.Chaos

Esto muestra información como las versiones de API disponibles para el proveedor de recursos de Chaos y la disponibilidad de regiones. La api-version más reciente requerida para esto puede diferir de la api-version para las operaciones del proveedor de recursos de Chaos.

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos?api-version={apiVersion}" 

Enumerar todas las operaciones del proveedor de recursos Microsoft.Chaos

az rest --method get --url "https://management.azure.com/providers/Microsoft.Chaos/operations?api-version={apiVersion}" 

Destinos y capacidades

Estas operaciones le ayudan a ver qué destinos y funcionalidades están disponibles y a agregarlos a un destino.

Enumerar todos los tipos de destino disponibles en una región

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes?api-version={apiVersion}" 

Enumerar todas las funcionalidades disponibles para un tipo de destino

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version={apiVersion}" 

Habilitar un recurso como destino

Para usar un recurso en un experimento, debe habilitarlo como destino.

az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}?api-version={apiVersion}" --body "{'properties':{}}" 

Habilitar funcionalidades para un destino

Una vez que se ha habilitado un recurso como destino, debe especificar qué funcionalidades (correspondientes a errores) se permiten.

az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities/{capabilityName}?api-version={apiVersion}" --body "{'properties':{}}" 

Consulte qué funcionalidades están habilitadas para un destino

Una vez que se han habilitado un destino y funcionalidades, puede ver las funcionalidades habilitadas. Esto es útil para construir el experimento de caos, ya que incluye el esquema de parámetros para cada error.

az rest --method get --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities?api-version={apiVersion}"

Experimentos

Estas operaciones le ayudan a ver, ejecutar y administrar experimentos.

Enumerar todos los experimentos de un grupo de recursos

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Chaos/experiments?api-version={apiVersion}"

Obtener los detalles de configuración de un experimento por nombre

az rest --method get --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"

Creación o actualización de un experimento

az rest --method put --url "https://management.azure.com/{experimentId}?api-version={apiVersion}" --body @{experimentName.json} 

Nota: si recibe un error UnsupportedMediaType, asegúrese de que el archivo JSON al que se hace referencia es válido e intente otras formas de hacer referencia al archivo .json. Los distintos intérpretes de línea de comandos pueden requerir diferentes métodos de referencia de archivos. Otra sintaxis común es --body "@experimentName.json".

Eliminar un experimento

az rest --method delete --url "https://management.azure.com/{experimentId}?api-version={apiVersion}" 

Inicio de un experimento

az rest --method post --url "https://management.azure.com/{experimentId}/start?api-version={apiVersion}"

Obtener todas las ejecuciones de un experimento

az rest --method get --url "https://management.azure.com/{experimentId}/executions?api-version={apiVersion}" 

Enumeración de los detalles de la ejecución de un experimento específico

Si se ha producido un error en un experimento, se puede usar para buscar mensajes de error y destinos específicos, ramas, pasos o acciones con errores.

az rest --method post --url "https://management.azure.com/{experimentId}/executions/{executionDetailsId}/getExecutionDetails?api-version={apiVersion}" 

Cancelar (detener) un experimento

az rest --method post --url "https://management.azure.com/{experimentId}/cancel?api-version={apiVersion}" 

Otros comandos y sugerencias útiles

Aunque estos comandos no usan la API de Chaos Studio específicamente, pueden ser útiles para usar Chaos Studio de forma eficaz.

Visualizar recursos de Chaos Studio con Azure Resource Graph

Puede usar la API de REST de Azure Resource Graph para consultar los recursos asociados a Chaos Studio, como destinos y funcionalidades.

 az rest --method post --url "https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01" --body "{'query':'chaosresources'}"

Como alternativa, puede usar la extensión az cli de Azure Resource Graph.

az graph query -q "chaosresources | summarize count() by type"

Por ejemplo, si desea un resumen de todos los destinos de Chaos Studio activos en la suscripción por grupo de recursos, puede usar:

az graph query -q "chaosresources | where type == 'microsoft.chaos/targets' | summarize count() by resourceGroup"

Filtrado y consulta

Al igual que otros comandos de la CLI de Azure, puede usar los parámetros --query y --filter con los comandos de la CLI de Azure rest. Por ejemplo, para ver una tabla de tipos de funcionalidad disponibles para un tipo de destino específico, use el siguiente comando:

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version=2023-11-01" --output table --query 'value[].{name:name, faultType:properties.runtimeProperties.kind, urn:properties.urn}'

Definiciones de parámetros

En esta sección se describen los parámetros usados en este documento y cómo puede rellenarlos.

Nombre de parámetro Definición Búsqueda Ejemplo
{apiVersion} Versión de la API que se va a usar al ejecutar el comando proporcionado Se encuentra en la documentación de API. 2023-11-01
{experimentId} Id. de recurso de Azure para el experimento Puede encontrarse en la página Experimento de Chaos Studio o con una llamada GET al punto de conexión /experiments /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment
{experimentName.json} JSON que contiene la configuración del experimento de Chaos Generado por el usuario experiment.json (Consulte un tutorial de la CLI para obtener un archivo de ejemplo completo)
{subscriptionId} Id. de suscripción donde se encuentra el recurso de destino Buscar en la página Suscripciones de Azure Portal o ejecutando az account list --output table aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
{resourceGroupName} Nombre del grupo de recursos donde se encuentra el recurso de destino Buscar en la página Grupos de recursos o ejecutando az group list --output table my-resource-group
{executionDetailsId} Id. de ejecución de la ejecución de un experimento Buscar en la página Experimento de Chaos Studio o con una llamada GET al punto de conexión /executions C69E7FCD-1548-47E5-9DDA-92A5DD60E610
{targetType} Tipo de destino para el recurso correspondiente Buscar en la lista Proveedores de errores o en una llamada GET al punto de conexión /locations/{locationName}/targetTypes Microsoft-VirtualMachine
{capabilityName} Nombre de un recurso de funcionalidad individual, extensión de un recurso de destino Buscar en la documentación de referencia de errores o con una llamada GET al punto de conexión capabilityTypes Shutdown-1.0
{locationName} Región de Azure para un recurso o un punto de conexión regional Buscar todas las regiones posibles para su cuenta con az account list-locations --output table eastus