API 게이트웨이에 Cloud Endpoints API 배포
Cloud Endpoints는 API에서 보안, 모니터링, 분석, 할당량 설정을 도와주는 API 관리 시스템입니다. Endpoints는 Extensible Service Proxy(ESP) 또는 Extensible Service Proxy V2 베타(ESPv2 베타)를 사용하여 API를 호스팅합니다.
Endpoints를 사용할 때는 세 가지 옵션에 따라 API를 정의할 수 있습니다.
API 게이트웨이로 API 개발
API 게이트웨이는 OpenAPI 사양 버전 2.0을 사용하여 기술되는 API를 지원합니다. 즉, API 게이트웨이에서 Endpoints의 OpenAPI 사양을 배포할 수 있습니다.
API 게이트웨이에 Endpoints OpenAPI 사양 배포
API 게이트웨이는 OpenAPI용 Cloud Endpoints에서 지원되는 것과 동일한 OpenAPI 사양 정의 형식 및 옵션을 지원합니다. 즉, Endpoints OpenAPI 사양의 동일한 보안, 할당량, 기타 정의를 사용해서 API 게이트웨이에서 API를 정의할 수 있습니다.
Endpoints와 API 게이트웨이의 유일한 차이점은 OpenAPI 사양 정의에서 host
속성을 처리하는 방식입니다.
- Endpoints에서는, ESP를 배포할 때 생성된 URL의 호스트 이름 부분으로
host
속성을 설정합니다. 여기에서 ESP는 Endpoints API를 호스팅하기 위해 사용되는 서비스입니다. API 게이트웨이에서는
host
를 생략하거나 배포된 API의 DNS 이름으로 설정합니다. API 제공업체는 OpenAPI 사양을 API 소비자와 공유할 때 이를 DNS 이름으로 설정하는 경우가 많습니다. 하지만 API 게이트웨이는host
속성의 값을 강제 적용하지 않습니다.
예를 들어 아래 표시된 내용은 Cloud Run 함수에 배포된 백엔드 서비스에 액세스하도록 API를 정의하기 위해 Endpoints에서 사용되는 OpenAPI 사양의 일부입니다.
swagger: '2.0' info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 host: ESP_HOST schemes: - https produces: - application/json paths: /hello: ...
Endpoints의 경우 다음을 수행합니다.
ESP를 배포합니다. 그러면 ESP에 배포된 API에 액세스하는 데 사용되는 URL이 생성됩니다. 예를 들면 다음과 같습니다.
https://gateway-12345-uc.a.run.app
OpenAPI 사양을 수정해서
host
속성을 ESP URL의 도메인 이름으로 설정합니다. 예를 들면 다음과 같습니다.host: gateway-12345-uc.a.run.app
OpenAPI 사양을 ESP에 배포합니다.
ESP URL을 사용하여 API에 액세스합니다. 위의 OpenAPI 사양에서
paths
요소가/hello
로 설정되어, 다음 URL을 사용해서 이 API에 액세스할 수 있습니다.https://gateway-12345-uc.a.run.app/hello
여기에서 볼 수 있듯이 Endpoints의 경우 host
속성의 값을 설정할 수 있으려면 먼저 ESP를 배포해야 합니다.
이 API 정의를 사용해서 API 게이트웨이에 대해 API 구성을 만들려면 host
속성을 완전히 삭제하거나 파일에 남겨 두어야 합니다.
API 게이트웨이는 host
속성의 값을 강제 적용하지 않습니다.
게이트웨이를 만들 때 클라이언트가 API에 액세스하기 위해 사용하는 배포된 게이트웨이의 URL이 다음 형식으로 정의됩니다.
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
여기서 GATEWAY_ID는 게이트웨이의 이름이고, HASH는 API를 배포할 때 생성된 고유한 해시 코드이고, REGION_CODE는 게이트웨이를 배포한 GCP 리전의 코드입니다.
게이트웨이 인스턴스에 API를 배포한 후 /hello
액세스를 위해 사용되는 URL은 다음과 같습니다.
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
API 배포에 대한 자세한 내용은 API 게이트웨이 배포 모델을 참조하세요.
API 정의에 대한 OpenAPI 사양 만들기는 OpenAPI 개요를 참조하세요.