REST API를 사용하여 Chaos Studio와 상호 작용

Azure Chaos Studio를 CI/CD 파이프라인에 통합하거나 직접 API 호출을 사용하여 Azure 리소스와 상호 작용하려는 경우 Chaos Studio의 REST API를 사용할 수 있습니다. 전체 API 참조는 Azure Chaos Studio REST API 참조를 방문하세요. 이 페이지에서는 REST API를 효과적으로 사용하기 위한 샘플을 제공하며 포괄적인 참조용으로 사용되지 않습니다.

이 문서에서는 Azure CLI를 사용하여 이러한 명령을 실행하지만 다른 표준 REST 클라이언트에 적용할 수 있다고 가정합니다.

Chaos Studio REST API를 사용하여 다음을 수행할 수 있습니다.

  • 실험 만들기, 수정 및 삭제
  • 실험 실행 보기, 시작 및 중지
  • 대상 보기 및 관리
  • Chaos Studio 리소스 공급자에 구독 등록 및 등록 취소
  • 사용 가능한 리소스 공급자 작업을 봅니다.

az cli 유틸리티를 사용하여 명령줄에서 이러한 작업을 수행합니다.

Azure CLI를 사용하여 자세한 출력을 얻으려면 각 명령의 끝에 --verbose를 추가합니다. 이 변수는 디버깅에 도움이 되는 x-ms-correlation-request-id를 포함하여 명령이 실행되면 더 많은 메타데이터를 반환합니다.

이러한 예제는 일반적으로 사용 가능한 Chaos Studio API 버전 2023-11-01을 통해 검토되었습니다.

리소스 공급자 명령

이 섹션에서는 리소스 공급자의 상태와 사용 가능한 작업을 이해하는 데 도움이 되는 Chaos Studio 공급자 명령을 나열합니다.

Microsoft.Chaos 리소스 공급자에 대한 세부 정보 나열

여기에는 카오스 리소스 공급자 및 지역 가용성에 사용할 수 있는 API 버전과 같은 정보가 표시됩니다. 이 작업에 필요한 가장 최근의 api-version은 Chaos 리소스 공급자 작업의 api-version과 다를 수 있습니다.

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

Microsoft.Chaos 리소스 공급자의 모든 작업 나열

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

대상 및 기능

이러한 작업을 통해 사용 가능한 대상 및 기능을 확인하고 대상에 추가할 수 있습니다.

지역에서 사용할 수 있는 모든 대상 유형 나열

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

대상 유형에 사용할 수 있는 모든 기능 나열

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

리소스를 대상으로 사용

실험에서 리소스를 사용하려면 대상으로 사용하도록 설정해야 합니다.

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

대상에 대한 기능 사용

리소스를 대상으로 사용하도록 설정한 후에는 허용되는 기능(오류에 해당)을 지정해야 합니다.

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

대상에 사용할 수 있는 기능 확인

대상 및 기능을 사용하도록 설정하면 활성화된 기능을 볼 수 있습니다. 각 오류에 대한 매개 변수 스키마를 포함하므로 카오스 실험을 생성하는 데 유용합니다.

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

실험

이러한 작업을 통해 실험을 보고, 실행하고, 관리할 수 있습니다.

리소스 그룹의 모든 실험 나열

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

이름으로 실험 구성 세부 정보 가져오기

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

실험 만들기 또는 업데이트

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

실험 삭제

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

실험 시작

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

실험의 모든 실행 가져오기

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

특정 실험 실행의 세부 정보 나열

실험에 실패한 경우 오류 메시지와 실패한 특정 대상, 분기, 단계 또는 작업을 찾는 데 사용할 수 있습니다.

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

실험 취소(중지)

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

기타 유용한 명령 및 팁

이러한 명령은 특별히 Chaos Studio API를 사용하지 않지만 Chaos Studio를 효과적으로 사용하는 데 유용할 수 있습니다.

Azure Resource Graph를 사용하여 Chaos Studio 리소스 보기

Azure Resource Graph REST API를 사용하여 Chaos Studio와 연결된 리소스(예: 대상 및 기능)를 쿼리할 수 있습니다.

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

또는 Azure Resource Graph의 az cli확장을 사용할 수 있습니다.

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

예를 들어 리소스 그룹별로 구독에서 활성화된 모든 Chaos Studio 대상에 대한 요약을 원하는 경우 다음을 사용할 수 있습니다.

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

필터링 및 쿼리

다른 Azure CLI 명령과 마찬가지로 Azure CLI rest 명령과 함께 --query--filter 매개 변수를 사용할 수 있습니다. 예를 들어 특정 대상 형식에 사용 가능한 기능 유형의 테이블을 보려면 다음 명령을 사용합니다.

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}'

매개 변수 정의

이 섹션에서는 이 문서에서 사용되는 매개 변수와 이 매개 변수를 입력하는 방법에 대해 설명합니다.

매개 변수 이름 정의 Lookup 예시
{apiVersion} 제공된 명령을 실행할 때 사용할 API 버전 API 설명서에서 찾을 수 있습니다. 2023-11-01
{experimentId} 실험에 대한 Azure 리소스 ID Chaos Studio 실험 페이지에서 또는 /experiments 엔드포인트에 대한 GET 호출을 통해 찾을 수 있습니다. /subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment
{experimentName.json} 카오스 실험의 구성을 포함하는 JSON 사용자가 생성 experiment.json(전체 예제 파일에 대한 CLI 자습서 참조)
{subscriptionId} 대상 리소스가 있는 구독 ID Azure Portal 구독 페이지에서 또는 az account list --output table을 실행하여 찾습니다. 6b052e15-03d3-4f17-b2e1-be7f07588291
{resourceGroupName} 대상 리소스가 있는 리소스 그룹의 이름 리소소 그룹 페이지에서 또는 az group list --output table을 실행하여 찾습니다. my-resource-group
{executionDetailsId} 실험 실행의 실행 ID Chaos Studio 실험 페이지에서 또는 /executions 엔드포인트에 대한 GET 호출을 사용하여 찾습니다. C69E7FCD-1548-47E5-9DDA-92A5DD60E610
{targetType} 해당 리소스에 대한 대상 유형 오류 공급자 목록 또는 /locations/{locationName}/targetTypes 엔드포인트에 대한 GET 호출에서 찾습니다. Microsoft-VirtualMachine
{capabilityName} 대상 리소스를 확장하는 개별 기능 리소스의 이름 오류 참조 설명서에서 또는 capabilityTypes 엔드포인트에 대한 GET 호출을 사용하여 찾습니다. Shutdown-1.0
{locationName} 리소스 또는 지역 엔드포인트에 대한 Azure 지역 az account list-locations --output table을 사용하여 계정에 대해 가능한 모든 지역 찾기 eastus