API Gateway REST API를 AWS 계정 또는 리전 간에 마이그레이션하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 10월 6일

AWS 계정 또는 리전 간에 Amazon API Gateway REST API를 마이그레이션하려고 합니다. 어떻게 해야 합니까?

간략한 설명

API Gateway에서 REST API를 내보내기를 할 수 있는 지점은 OpenAPI 2.0(Swagger) 또는 OpenAPI 3.0 정의 파일입니다. 그런 다음, API를 다른 계정 또는 리전의 API Gateway로 가져옵니다.

중요: REST API를 가져오려면 대상 계정 또는 리전에 통합 API 리소스도 다시 생성해야 합니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

API Gateway 콘솔 또는 AWS CLI를 사용하여 API를 내보냅니다.

API Gateway 콘솔을 사용하여 API를 내보내려면

1.    API Gateway 콘솔에서 API를 선택합니다.

2.    API를 단계에 배포합니다.

3.    [스테이지 편집기] 창에서 [내보내기] 탭을 선택합니다.

4.    [다른 이름으로 내보내기]에서 Swagger 또는 OpenAPI3를 선택합니다.

5.    사용 사례에 따라 다음 중 하나에서 일시 중지합니다.
Swagger + API Gateway 확장으로 내보내기
OpenAPI 3 + API Gateway 확장으로 내보내기

OpenAPI 정의가 콘솔에 나타납니다.

6.    JSON 또는 YAML을 선택하여 OpenAPI 정의를 원하는 파일 형식으로 다운로드합니다.

AWS CLI를 사용하여 API를 내보내려면

다음 get-export 명령을 실행합니다.

중요: --parameters, --export-type--accept 명령 옵션의 값을 원하는 내보내기 형식과 일치하도록 변경합니다.

aws apigateway get-export --parameters extensions='integrations' --rest-api-id a1b2c3d4e5 --stage-name dev --export-type swagger --accept application/yaml /path/to/filename.yaml

자세한 내용은 API Gateway에서 REST API 내보내기를 참조하십시오. 또한 get-export도 해당합니다 (AWS CLI 명령 참조).

내보낸 OpenAPI 정의에서 API 리소스의 Amazon 리소스 이름(ARN)을 업데이트합니다.

OpenAPI 정의에 있는 API 리소스의 ARN을 API가 마이그레이션되는 계정 및 리전의 리소스 ARN으로 변경합니다.

예를 들어 AWS Lambda 통합이 포함된 API에 대한 Swagger 템플릿의 코드 조각을 참조하십시오.

중요: 이 예제에서는 arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:12345678910:function:mylambda/invocations을 대상 계정의 Lambda 함수 ARN으로 변경합니다.

"x-amazon-apigateway-integration": {
          "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:12345678910:function:mylambda/invocations",
          "responses": {
            "default": {
              "statusCode": "200"
            }
          }

API를 다른 계정 또는 리전의 API Gateway로 가져옵니다.

API Gateway 콘솔을 사용하여 API를 가져오려면

1.    대상 계정 또는 리전의 API Gateway 콘솔을 엽니다.

2.    [API 생성]을 선택합니다.

3.    [REST API] 아래에서 [API 유형 선택]의 경우, [가져오기]를 선택합니다.

4.    [Swagger 또는 Open API 3에서 가져오기]에서 다음 중 하나를 수행합니다.
[Swagger 파일 선택]을 선택한 다음, 업데이트된 OpenAPI 정의 파일을 선택합니다.
-또는-
업데이트된 OpenAPI 정의를 텍스트 편집기 필드에 붙여넣습니다.

5.    [설정]에서 [엔드포인트 유형]의 경우, 사용 사례에 따라 다음 중 하나를 선택합니다.
리전의
엣지 최적화된

프라이빗

6.    가져오는 동안 오류 또는 경고가 발생하면 [경고 발생 시 실패 처리]를 선택하여 가져오기를 중단합니다. 또는 [경고 무시]를 선택하여 가져오는 동안의 오류나 경고 여부에 관계없이 API를 가져옵니다.

AWS CLI를 사용하여 API를 가져오려면

1.    대상 계정 또는 리전에 대해 AWS CLI를 구성합니다.

2.    다음 import-rest-api 명령을 실행합니다.

$ aws apigateway import-rest-api --endpointConfigurationTypes 'REGIONAL' --fail-on-warnings --body 'file:/// path/to/filename.json'

자세한 내용은 REST API를 API Gateway로 가져오기를 참조하십시오.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?