게이트웨이에 API 배포
기본 요건
API 게이트웨이에서 API 구성을 배포하려면 먼저 다음을 확인해야 합니다.
- 개발 환경 구성에 설명된 대로 개발 환경이 준비되었습니다. 
- API 정의에서 API 구성을 만들었습니다. 
게이트웨이 ID 요구사항
아래 표시된 많은 gcloud 명령에서는 GATEWAY_ID 형식으로 게이트웨이의 ID를 지정해야 합니다.
API 게이트웨이는 게이트웨이 ID에 대해 다음 요구사항을 적용합니다.
- 최대 49자여야 합니다.
- 소문자, 숫자, 대시만 포함해야 합니다.
- 대시로 시작해서는 안 됩니다.
- 밑줄을 포함해서는 안 됩니다.
배포된 API 구성의 엔드포인트 정의
API 구성을 게이트웨이에 배포하면 API 게이트웨이가 gateway.dev 도메인의 게이트웨이에 대해 고유한 URL을 만듭니다. 그러면 API 클라이언트가 아래 형식으로 URL을 사용해서 배포된 API 구성에 액세스할 수 있습니다.
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
여기서 GATEWAY_ID는 게이트웨이의 이름이고, HASH는 API를 배포할 때 생성된 고유한 해시 코드이고, REGION_CODE는 게이트웨이를 배포한 Cloud 위치의 코드입니다.
예를 들면 다음과 같습니다.
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
게이트웨이에 API 구성 배포
Google Cloud CLI를 사용해서 API 구성을 게이트웨이에 배포합니다. API 구성을 배포할 때는 API의 이름을 지정해야 합니다. API에 대해 게이트웨이가 아직 없으면 이 명령어로 생성됩니다.
게이트웨이에 API 구성을 배포하려면 다음 안내를 따르세요.
- 잘못된 프로젝트에 게이트웨이가 생성되지 않도록 다음 명령어로 반환되는 프로젝트 ID를 검증합니다. - gcloud config list project - 기본 프로젝트를 변경해야 하는 경우 다음 명령어를 실행하고 PROJECT_ID를 서비스를 만들 Google Cloud 프로젝트 ID로 바꿉니다. - gcloud config set project PROJECT_ID 
- gateway create명령어 도움말을 확인합니다.- gcloud api-gateway gateways create --help 
- 다음 명령어를 실행하여 게이트웨이에 API 구성을 배포합니다. - gcloud api-gateway gateways create GATEWAY_ID \ --api=API_ID --api-config=CONFIG_ID \ --location=GCP_REGION --project=PROJECT_ID - 각 항목의 의미는 다음과 같습니다. - GATEWAY_ID는 새 게이트웨이의 ID를 지정합니다. 게이트웨이가 아직 없으면 이 명령어로 생성됩니다.
- API_ID는 이 게이트웨이와 연결된 API 게이트웨이 API의 ID를 지정합니다.
- CONFIG_ID는 게이트웨이에 배포된 API 구성의 ID를 지정합니다. 게이트웨이를 만들 때 API 구성을 지정해야 합니다.
- GCP_REGION은 배포된 게이트웨이의 Cloud 위치를 지정합니다. 
- PROJECT_ID는 Google Cloud 프로젝트 ID를 지정합니다. 
 - 게이트웨이가 생성될 때 - gcloud가 터미널에 정보를 출력합니다.
- 성공적으로 완료되면 다음 명령어를 사용해서 게이트웨이에 대한 세부정보를 확인할 수 있습니다. - gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID - 이 명령어는 다음을 반환합니다. - apiConfig: projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID createTime: '2020-02-05T13:44:12.997862831Z' defaultHostname: my-gateway-a12bcd345e67f89g0h.uc.gateway.dev displayName: GATEWAY_ID name: projects/PROJECT_ID/locations/GCP_REGION/gateways/GATEWAY_ID serviceAccount: email: gateway-111111@222222-tp.iam.gserviceaccount.com state: ACTIVE updateTime: '2020-02-05T13:45:00.844705087Z' - defaultHostname속성 값을 기록해 둡니다. 이 값은 게이트웨이 URL의 호스트 이름 부분입니다. 이 게이트웨이에 배포된 API 구성에 액세스하려면 다음 형식의 URL을 사용합니다.- https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev 
Google Cloud CLI에는 gcloud 참조에 설명된 것을 포함하여 많은 옵션이 사용됩니다. 또한 API 게이트웨이에 대해 게이트웨이를 만들 때 다음 옵션을 설정할 수 있습니다.
- --async: 작업이 완료될 때까지 기다릴 필요 없이 터미널로 제어권을 즉시 반환합니다.
- --display-name=NAME: 게이트웨이의 표시 이름 즉, UI에 표시되는 이름을 지정합니다. 이름에 공백을 사용하지 마세요. 대신 하이픈과 밑줄을 사용하세요. 기본값은 GATEWAY_ID입니다.
- --labels=KEY1=VALUE1,KEY2=VALUE2,...: 게이트웨이와 연결된 라벨을 지정합니다.
게이트웨이 나열
특정 프로젝트의 게이트웨이를 나열하려면 다음 안내를 따르세요.
gcloud api-gateway gateways list --project=PROJECT_ID
이 명령어는 다음 형식으로 출력을 반환합니다.
GATEWAY_ID LOCATION DISPLAY_NAME STATE CREATE_TIME UPDATE_TIME my-gateway us-central1 my-gateway ACTIVE 2021-01-07T00:04:19 2022-05-21T00:33:46
특정 프로젝트 및 리전에 대해 게이트웨이를 나열하려면 다음 안내를 따르세요.
gcloud api-gateway gateways list --location=GCP_REGION --project=PROJECT_ID
filter 표현식을 사용해서 특정 API와 연관된 게이트웨이를 나열합니다.
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/*" \ --project=PROJECT_ID
또는 filter를 사용해서 특정 API 구성에 대한 게이트웨이를 나열합니다.
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID" \ --project=PROJECT_ID
프로젝트, 리전, 게이트웨이 ID를 사용해서 게이트웨이에 배포된 API 구성의 ID를 포함하여 게이트웨이에 대한 세부 정보를 가져옵니다.
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID
게이트웨이 업데이트
다음을 위해 게이트웨이를 업데이트합니다.
- 게이트웨이에 다른 API 구성을 배포합니다.
- 표시 이름을 업데이트합니다.
- 라벨을 업데이트합니다.
다음 gcloud 명령어를 사용해서 기존 게이트웨이를 업데이트합니다. 여기서 UPDATE_OPTIONS는 게이트웨이 옵션 플래그와 업데이트하려는 값으로 바꿉니다.  
gcloud api-gateway gateways update GATEWAY_ID \ UPDATE_OPTIONS --api=API_ID --location=GCP_REGION --project=PROJECT_ID
예를 들어 게이트웨이에 배포된 API 구성을 업데이트하려면 다음을 수행합니다.
gcloud api-gateway gateways update GATEWAY_ID \ --api-config=NEW_CONFIG_ID --api=API_ID --location=GCP_REGION --project=PROJECT_ID
여기서 NEW_CONFIG_ID는 게이트웨이에 배포할 새 API 구성을 지정합니다.
사용 가능한 업데이트 플래그 및 인수의 전체 목록은 gcloud api-gateway gateways update 참조를 확인하거나 다음 명령어를 사용해서 모든 업데이트 옵션을 확인합니다.
gcloud api-gateway gateways update --help
게이트웨이 삭제
다음 gcloud 명령어를 사용하여 기존 게이트웨이를 삭제합니다.
gcloud api-gateway gateways delete GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID