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 |