Canary 릴리스 업데이트 - Amazon API Gateway

Canary 릴리스 업데이트

Canary 릴리스가 배포된 후 테스트 성능을 최적화하기 위해 Canary 트래픽 백분율을 조정하거나 단계 캐시 사용을 활성화 또는 비활성화할 수 있습니다. 실행 컨텍스트가 업데이트될 때 Canary 릴리스에서 사용되는 단계 변수를 수정할 수도 있습니다. 이러한 업데이트를 수행하려면 CanarySettings에서 새 값을 사용하여 stage:update 작업을 호출합니다.

API Gateway 콘솔, AWS CLI update-stage 명령 또는 AWS SDK를 사용하여 Canary 릴리스를 업데이트할 수 있습니다.

API Gateway 콘솔을 사용하여 Canary 릴리스 업데이트

API Gateway 콘솔을 사용하여 단계에서 기존의 Canary 설정을 업데이트하려면 다음을 수행합니다.

기존 Canary 설정을 업데이트하려면
  1. API Gateway 콘솔에 로그인하고 기존 REST API를 선택합니다.

  2. 기본 탐색 창에서 스테이지를 선택한 후 기존 스테이지를 선택합니다.

  3. Canary 탭을 선택한 후 편집을 선택합니다. Canary 탭을 표시하려면 오른쪽 화살표 버튼을 선택해야 할 수도 있습니다.

  4. 0.0부터 100.0 사이의 백분율 숫자(0.0과 100.0 포함)를 늘리거나 줄여 요청 배포를 업데이트합니다.

  5. 스테이지 캐시 확인란을 선택하거나 선택 취소합니다.

  6. Canary 스테이지 변수를 추가, 제거 또는 수정합니다.

  7. Save(저장)를 선택합니다.

AWS CLI를 사용하여 Canary 릴리스 업데이트

AWS CLI를 사용하여 Canary를 업데이트하려면 update-stage 명령을 호출합니다.

Canary에 대한 단계 캐시 사용을 활성화하거나 비활성화하려면 다음과 같이 update-stage 명령을 호출합니다.

aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name '{stage-name}' \ --patch-operations op=replace,path=/canarySettings/useStageCache,value=true

Canary 트래픽 백분율을 조정하려면 update-stage를 호출하여 단계에서 /canarySettings/percentTraffic 값을 바꿉니다.

aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name '{stage-name}' \ --patch-operations op=replace,path=/canarySettings/percentTraffic,value=25.0

Canary 단계 변수 추가, 교체 또는 제거를 포함하여 Canary 단계 변수를 업데이트하려면

aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name '{stage-name}' \ --patch-operations '[{ "op": "replace", "path": "/canarySettings/stageVariableOverrides/newVar", "value": "newVal" }, { "op": "replace", "path": "/canarySettings/stageVariableOverrides/var2", "value": "val4" }, { "op": "remove", "path": "/canarySettings/stageVariableOverrides/var1" }]'

작업들을 단일 patch-operations 값으로 결합하면 위의 모두를 업데이트할 수 있습니다.

aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name '{stage-name}' \ --patch-operations '[{ "op": "replace", "path": "/canarySettings/percentTraffic", "value": "20.0" }, { "op": "replace", "path": "/canarySettings/useStageCache", "value": "true" }, { "op": "remove", "path": "/canarySettings/stageVariableOverrides/var1" }, { "op": "replace", "path": "/canarySettings/stageVariableOverrides/newVar", "value": "newVal" }, { "op": "replace", "path": "/canarySettings/stageVariableOverrides/val2", "value": "val4" }]'