스테이지 변수는 REST API의 배포 스테이지와 연결된 구성 속성으로 정의되는 키-값 페어입니다. 환경 변수와 비슷한 역할을 하며 API 설정 및 매핑 템플릿에 사용할 수 있습니다. API Gateway의 배포 스테이지를 통해 각 API에 대한 여러 릴리스 스테이지를 관리할 수 있으며, 스테이지 변수를 사용하여 다양한 백엔드 엔드포인트와 상호 작용하도록 API 배포 스테이지를 구성할 수 있습니다.
단계 변수는 자격 증명과 같은 중요한 데이터에 사용할 수 없습니다. 중요한 데이터를 통합에 전달하려면 AWS Lambda 권한 부여자를 사용합니다. Lambda 권한 부여자의 출력에서 중요한 데이터를 통합에 전달할 수 있습니다. 자세한 내용은 API Gateway Lambda 권한 부여자의 출력 단원을 참조하십시오.
스테이지 변수 사용 사례
스테이지 변수의 사용 사례는 다음과 같습니다.
- 다른 백엔드 엔드포인트 지정
API에서 백엔드 웹 호스트에
GET
요청을 HTTP 프록시로 전달할 수 있습니다. 스테이지 변수를 사용하여 API 호출자가 프로덕션 엔드포인트를 간접적으로 호출할 때 API Gateway가example.com
을 직접적으로 호출하도록 할 수 있습니다. 그런 다음 API 호출자가 베타 스테이지를 간접적으로 호출하면 API Gateway는 다른 웹 호스트(예:beta.example.com
)를 직접적으로 호출합니다. 마찬가지로, API의 각 단계에서 다른 AWS Lambda 함수 이름을 지정하는 데 단계 변수를 사용할 수 있습니다.GET
요청을 한 스테이지에서는 HTTP 프록시 통합으로, 다른 스테이지에서는 Lambda 프록시 통합으로 가리키는 등 다른 통합 엔드포인트를 설정하는 데는 스테이지 변수를 사용할 수 없습니다.Lambda 함수 이름을 단계 변수 값으로 지정할 때는 Lambda 함수에 대한 권한을 수동으로 구성해야 합니다. API Gateway 콘솔에서 Lambda 함수를 지정하면 적절한 권한을 구성하기 위한 AWS CLI 명령이 표시됩니다. 다음 AWS CLI 명령을 사용하여 이 작업을 수행할 수도 있습니다.
aws lambda add-permission --function-name "arn:aws:lambda:
us-east-2
:123456789012
:function:my-function
" --source-arn "arn:aws:execute-api:us-east-2
:123456789012
:api_id
/*/HTTP_METHOD/resource" --principal apigateway.amazonaws.com --statement-id apigateway-access --action lambda:InvokeFunction- 매핑 템플릿을 사용하여 정보 전달
매핑 템플릿에서 스테이지 변수를 액세스하거나 구성 파라미터를 AWS Lambda 또는 HTTP 백엔드에 전달할 수 있습니다. 예를 들어 API의 여러 스테이지에 동일한 Lambda 함수를 재사용하려고 할 수 있지만, 이 함수는 스테이지에 따라 다른 Amazon DynamoDB 테이블에서 데이터를 읽어야 합니다. 이때 Lambda 함수에 대한 요청을 생성하는 매핑 템플릿에서 단계 변수를 사용하여 테이블 이름을 Lambda에 전달할 수 있습니다.
스테이지 변수를 사용하려면 먼저 스테이지 변수를 구성한 다음 값을 할당합니다. 예를 들어 HTTP 통합 엔드포인트를 사용자 지정하려면 먼저 url
스테이지 변수를 생성한 다음 API의 통합 요청에서 스테이지 변수 값 http://${stageVariables.url}
을 입력합니다. 이 값은 API가 실행되는 단계에 따라 실행 시간에 단계 변수 ${}
를 대체하도록 API Gateway에 지시합니다. 자세한 내용은 API Gateway에서 REST API에 대한 스테이지 변수 설정 단원을 참조하십시오.