를 통해 API Gateway API 판매AWS Marketplace - Amazon API Gateway

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 통해 API Gateway API 판매AWS Marketplace

API를 빌드, 테스트 및 배포한 후에는 API를 API Gateway 사용량 계획에 패키징하고 AWS Marketplace를 통해 해당 계획을 Software as a Service(SaaS) 제품으로 판매할 수 있습니다. AWS Marketplace에서는 사용량 계획에 대한 요청 수를 기반으로 제품을 구독하는 API 구매자에게 요금을 청구합니다.

AWS Marketplace에서 API를 판매하려면 AWS Marketplace를 API Gateway와 통합하도록 유통 경로를 설정해야 합니다. 일반적으로 AWS Marketplace에 제품을 나열하고, API Gateway에서 AWS Marketplace에 사용 지표를 전송하도록 허용하는 적절한 정책을 사용하여 IAM 역할을 설정하고, AWS Marketplace 제품을 API Gateway 사용 계획과 연결하고, AWS Marketplace 구매자를 API Gateway API 키와 연결합니다. 세부 정보는 다음 단원에 나와 있습니다.

AWS Marketplace에서 API를 SaaS 제품으로 판매하는 방법에 대한 자세한 내용은 AWS Marketplace 사용 설명서를 참조하십시오.

API Gateway와 AWS Marketplace의 통합 초기화

다음은 API를 SaaS 제품으로 판매할 수 있도록 API Gateway와 AWS Marketplace의 일회성 통합을 초기화하는 데 필요한 작업입니다.

에 제품 나열AWS Marketplace

사용량 계획을 SaaS 제품으로 나열하려면 AWS Marketplace를 통해 제품 로드 양식을 제출합니다. 제품에는 apigateway 유형의 requests 차원이 포함되어 있어야 합니다. 이 차원은 요청당 가격을 정의하며 API Gateway에서 API에 대한 요청을 측정하는 데 사용됩니다.

측정 역할 생성

다음과 같은 실행 정책 및 신뢰 정책을 사용하여 ApiGatewayMarketplaceMeteringRole이라는 IAM 역할을 생성합니다. 이 역할을 사용하여 API Gateway에서 AWS Marketplace로 사용 지표를 자동으로 보낼 수 있습니다.

측정 역할의 실행 정책

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "aws-marketplace:BatchMeterUsage", "aws-marketplace:ResolveCustomer" ], "Resource": "*", "Effect": "Allow" } ] }

측정 역할의 신뢰 관계 정책

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

사용량 계획과 AWS Marketplace 제품 연결

AWS Marketplace에 제품을 나열하면 AWS Marketplace 제품 코드를 받게 됩니다. API Gateway를 AWS Marketplace와 통합하려면 사용량 계획을 AWS Marketplace 제품 코드와 연결합니다. API Gateway 콘솔, API Gateway REST API, API Gateway용 AWS CLI 또는 API Gateway용 AWS SDK를 사용하여 API Gateway UsagePlanproductCode 필드를 AWS Marketplace 제품 코드로 설정하여 연결을 활성화합니다. 다음 코드 예제에서는 API Gateway REST API를 사용합니다.

PATCH /usageplans/USAGE_PLAN_ID Host: apigateway.region.amazonaws.com Authorization: ... { "patchOperations" : [{ "path" : "/productCode", "value" : "MARKETPLACE_PRODUCT_CODE", "op" : "replace" }] }

사용량 계획에 대한 고객 구독 처리

다음은 개발자 포털 애플리케이션에서 처리되는 작업입니다.

고객이 AWS Marketplace를 통해 제품을 구독하면 AWS Marketplace에서는 AWS Marketplace에 제품을 나열할 때 등록한 SaaS 구독 URL로 POST 요청을 전달합니다. POST 요청은 구매자 정보가 들어 있는 x-amzn-marketplace-token 파라미터와 함께 제공됩니다. SaaS 고객 온보딩의 지침에 따라 개발자 포털 애플리케이션에서 이 리디렉션을 처리하십시오.

고객의 구독 요청에 응답하여 AWS Marketplace는 구독할 수 있는 Amazon SNS 주제에 subscribe-success 알림을 보냅니다. (SaaS 고객 온보딩을 참조하십시오.) 고객 구독 요청을 수락하려면 고객에 대한 API Gateway API 키를 생성하거나 검색하고, AWS Marketplace에서 프로비저닝된 고객의 customerId를 API 키와 연결한 다음 사용량 계획에 API 키를 추가하여 subscribe-success 알림을 처리합니다.

고객의 구독 요청이 완료되면 개발자 포털 애플리케이션에서 고객에게 연결된 API 키를 제공하고, 고객에게 API를 요청할 때 x-api-key 헤더에 이 API 키를 포함시키도록 알려야 합니다.

고객이 사용량 계획에 대한 구독을 취소할 경우 AWS Marketplace에서는 unsubscribe-success 알림을 SNS 주제에 보냅니다. 고객의 구독 해지 프로세스를 완료하려면 고객의 API 키를 사용량 계획에서 제거하여 unsubscribe-success 알림을 처리합니다.

고객에게 사용량 계획 액세스 권한 부여

지정된 고객에게 사용량 계획에 대한 액세스 권한을 부여하려면 API Gateway API를 사용하여 고객에 대한 API 키를 가져오거나 생성한 다음 API 키를 사용량 계획에 추가합니다.

다음 예에서는 API Gateway REST API를 호출하여 특정 AWS Marketplace customerId 값(MARKETPLACE_CUSTOMER_ID)을 가진 새로운 API 키를 생성하는 방법을 보여줍니다.

POST apikeys HTTP/1.1 Host: apigateway.region.amazonaws.com Authorization: ... { "name" : "my_api_key", "description" : "My API key", "enabled" : "false", "stageKeys" : [ { "restApiId" : "uycll6xg9a", "stageName" : "prod" } ], "customerId" : "MARKETPLACE_CUSTOMER_ID" }

다음 예에서는 특정 AWS Marketplace customerId 값(MARKETPLACE_CUSTOMER_ID)을 API 키를 가져오는 방법을 보여줍니다.

GET apikeys?customerId=MARKETPLACE_CUSTOMER_ID HTTP/1.1 Host: apigateway.region.amazonaws.com Authorization: ...

API 키를 사용량 계획에 추가하려면 관련 사용량 계획에 대한 API 키를 사용하여 UsagePlanKey를 생성하십시오. 다음 예에서는 API Gateway REST API를 사용하여 이 작업을 수행하는 방법을 보여 줍니다. 여기서 n371pt는 사용량 계획 ID이고 q5ugs7qjjh는 이전 예에서 반환된 예제 API keyId입니다.

POST /usageplans/n371pt/keys HTTP/1.1 Host: apigateway.region.amazonaws.com Authorization: ... { "keyId": "q5ugs7qjjh", "keyType": "API_KEY" }

고객과 API 키 연결

ApiKeycustomerId 필드를 고객의 AWS Marketplace 고객 ID로 업데이트해야 합니다. 그러면 API 키가 AWS Marketplace 고객과 연결되고, 구매자에 대한 측정 및 청구가 활성화됩니다. 다음 코드 예제에서는 API Gateway REST API를 호출하여 이 작업을 수행합니다.

PATCH /apikeys/q5ugs7qjjh Host: apigateway.region.amazonaws.com Authorization: ... { "patchOperations" : [{ "path" : "/customerId", "value" : "MARKETPLACE_CUSTOMER_ID", "op" : "replace" }] }