Admin API로 App Engine 애플리케이션 만들기

리전 ID

REGION_ID는 앱을 만들 때 선택한 리전을 기준으로 Google에서 할당하는 축약된 코드입니다. 일부 리전 ID는 일반적으로 사용되는 국가 및 주/도 코드와 비슷하게 표시될 수 있지만 코드는 국가 또는 주/도와 일치하지 않습니다. 2020년 2월 이후에 생성된 앱의 경우 REGION_ID.r이 App Engine URL에 포함됩니다. 이 날짜 이전에 만든 기존 앱의 경우 URL에서 리전 ID는 선택사항입니다.

리전 ID에 대해 자세히 알아보세요.

App Engine Admin API를 사용하여 새 Google Cloud 프로젝트에서 App Engine 애플리케이션을 프로그래매틱 방식으로 만듭니다. Admin API와 Cloud Resource Manager API를 함께 사용하면 Google Cloud 프로젝트와 App Engine 애플리케이션을 프로그래매틱 방식으로 관리할 수 있습니다.

App Engine 애플리케이션을 만들면 지정된 위치에 있는 대상 Google Cloud 프로젝트의 Application 리소스가 생성됩니다.

Google Cloud 프로젝트에서 직접 App Engine 애플리케이션을 만들려면 표준 환경 또는 가변형 환경에서 언어에 맞는 프로젝트, 애플리케이션, 결제 관리 주제를 참조하세요.

시작하기 전에

Admin API를 사용하여 App Engine 애플리케이션을 만들려면 다음 선행 조건을 먼저 충족해야 합니다.

  • Google Cloud 프로젝트를 만들거나 기존 프로젝트가 있어야 합니다.
  • 대상 Google Cloud 프로젝트의 소유자여야 합니다.
  • Admin API에 액세스할 수 있어야 합니다.

다른 사용자 계정이 App Engine 애플리케이션에서 작업을 수행하려면 Google Cloud 프로젝트 소유자가 먼저 Application 리소스를 만들어야 합니다. 예를 들어 App Engine 애플리케이션을 먼저 만들어야 App Engine 배포자 역할을 가진 사용자 계정이 서비스 계정을 사용하여 앱을 배포할 수 있습니다.

Google Cloud 프로젝트를 만들려면 다음 안내를 따르세요.

API

Google Cloud 프로젝트를 프로그래매틱 방식으로 만들려면 Cloud Resource Manager API를 사용하면 됩니다. 자세한 내용은 새 프로젝트 만들기를 참조하세요. 간단한 예를 참조하세요.

콘솔

Google Cloud 콘솔을 사용하여 Google Cloud 프로젝트를 만들려면 다음 안내를 따르세요.

프로젝트 페이지로 이동

gcloud

Google Cloud CLI를 설치한 후 gcloud CLI의 다음 명령어를 실행하여 Google Cloud 프로젝트를 만들 수 있습니다.

gcloud projects create

기존 Google Cloud 프로젝트를 사용하는 경우, 프로젝트는 App Engine 애플리케이션 한 개만 지원하므로 프로젝트에 Application 리소스가 포함되어 있지 않아야 합니다. Google Cloud 프로젝트에 Application 리소스가 이미 있는지 확인하려면 apps.get 메서드를 사용하거나 gcloud app describe 명령어를 실행하면 됩니다.

App Engine 애플리케이션 만들기

Admin API로 App Engine 애플리케이션을 만들려면 다음 안내를 따르세요.

  1. HTTP 요청을 승인합니다(예: 액세스 토큰 확보).

    Admin API에 대한 액세스 승인은 API 앱의 요구사항에 따라 서로 다른 OAuth 흐름을 사용하여 이루어집니다. 자세한 내용은 API 액세스를 참조하세요.

  2. 액세스 토큰과 Admin API를 사용하여 HTTP POST 요청을 보내 App Engine 애플리케이션을 만듭니다.

    HTTP POST 요청에서 Application 리소스와 대상 Google Cloud 프로젝트를 정의합니다. 예를 들면 다음과 같습니다.

    POST https://appengine.googleapis.com/v1/apps { "id": "[MY_PROJECT_ID]", "locationId": "[MY_APP_LOCATION]" }
    

    필수 HTTP 요청 필드:

    • id: App Engine 애플리케이션을 만들려는 대상 Google Cloud 프로젝트의 프로젝트 ID입니다.

    • locationId: App Engine 애플리케이션이 위치한 리전의 이름으로, App Engine 위치에 나열되어 있습니다(예: us-east1).

      지원되는 위치의 전체 목록을 확인하려면 apps.locations.list 메서드를 사용하면 됩니다.

      예: API 탐색기에서 요청 예를 승인 및 실행하여 지원되는 위치의 현재 목록을 확인합니다.

    필드 옵션의 전체 목록은 Application 리소스를 참조하세요.

    cURL 명령어 예:

    curl -X POST -d "{ 'id': '[MY_PROJECT_ID]', 'locationId': '[MY_APP_LOCATION]' }" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps
    

    각 항목의 의미는 다음과 같습니다.

    • [MY_PROJECT_ID]는 App Engine 애플리케이션을 만들려는 대상 프로젝트의 ID입니다.
    • [MY_APP_LOCATION]은 App Engine 애플리케이션을 만들려는 위치입니다.
    • [MY_ACCESS_TOKEN]은 HTTP 요청을 승인하기 위해 받은 액세스 토큰입니다.

    응답 예:

    {
      "name": "apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f",
      "metadata": {
        "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1",
        "method": "google.appengine.v1.Applications.CreateApplication",
        "insertTime": "2016-10-03T20:48:02.099Z",
        "user": "me@example.com",
        "target": "apps/[MY_PROJECT_ID]"
      }
    }
    
  3. App Engine 애플리케이션이 만들어졌는지 확인합니다.

    1. 실제 생성 작업의 상태를 확인합니다.

      이전 단계에서 사용한 HTTP POST 요청은 name 필드에 작업 이름을 반환하고, apps.operations 컬렉션GET 메서드와 함께 사용하면 생성 작업 상태를 확인할 수 있습니다.

      예를 들어 응답의 name 필드가 다음과 같은 경우:

      "name": "apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f"
      

      다음 HTTP GET 요청을 보냅니다.

      GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f
      

      cURL 명령어 예:

      curl -X GET -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f
      

      여기서 [MY_ACCESS_TOKEN]은 액세스 토큰이며 [MY_PROJECT_ID]는 대상 프로젝트의 ID입니다.

      응답 예:

      {
        "name": "apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f",
        "metadata": {
          "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1",
          "method": "google.appengine.v1.Applications.CreateApplication",
          "insertTime": "2016-10-03T20:48:02.099Z",
          "endTime": "2016-10-03T20:48:18.272Z",
          "user": "me@example.com",
          "target": "apps/[MY_PROJECT_ID]"
        },
        "done": true,
        "response": {
          "@type": "type.googleapis.com/google.appengine.v1.Application",
          "id": "[MY_PROJECT_ID]",
          "locationId": "[MY_APP_LOCATION]"
        }
      }
      
    2. App Engine 애플리케이션이 프로젝트에 만들어졌는지 확인합니다.

      버전에 대한 세부정보를 보려면 apps 컬렉션GET 메서드를 사용합니다. 배포한 프로젝트를 HTTP GET 요청에 지정해야 합니다. 예를 들면 다음과 같습니다.

      GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]
      

      cURL 명령어 예:

      curl -X GET -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/
      

      여기서 [MY_ACCESS_TOKEN]은 액세스 토큰이며 [MY_PROJECT_ID]는 대상 프로젝트의 ID입니다.

      응답 예:

      {
        "name": "apps/[MY_PROJECT_ID]",
        "id": "[MY_PROJECT_ID]",
        "authDomain": "gmail.com",
        "locationId": "us-central",
        "defaultHostname": "[MY_PROJECT_ID].[REGION_ID].r.appspot.com",
        "defaultBucket": "[MY_PROJECT_ID].[REGION_ID].r.appspot.com"
      }
      

      REGION_ID는 앱을 만들 때 선택한 리전을 기준으로 Google에서 할당하는 축약된 코드입니다. 일부 리전 ID는 일반적으로 사용되는 국가 및 주/도 코드와 비슷하게 표시될 수 있지만 코드는 국가 또는 주/도와 일치하지 않습니다. 2020년 2월 이후에 생성된 앱의 경우 REGION_ID.r이 App Engine URL에 포함됩니다. 이 날짜 이전에 만든 기존 앱의 경우 URL에서 리전 ID는 선택사항입니다.

다음 단계