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}
참고: UnsupportedMediaType
오류가 발생하면 참조된 JSON 파일이 유효한지 확인하고 다른 방법으로 .json
파일을 참조해 보세요. 명령줄 인터프리터에 따라 파일 참조 방법이 다를 수 있습니다. 또 다른 일반적인 구문은 --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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 을 실행하여 찾습니다. |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
{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 |