배포를 위한 JSON 구성 파일 만들기

Admin API를 사용해 앱 버전을 배포하려면 JSON 형식의 파일을 사용해 버전의 구성 세부정보를 정의해야 합니다. 수동으로 구성 파일을 만들거나 기존 app.yaml 파일을 변환할 수 있습니다.

JSON 형식의 구성 파일을 만드는 과정은 두 부분으로 구성됩니다.

  1. 배포할 버전의 구성 정보를 정의합니다.
  2. deployment 섹션을 정의하여 배포할 모든 앱의 파일과 리소스를 지정합니다.

시작하기 전에

app.json 구성 파일을 만들려면 먼저 앱의 모든 파일과 리소스를 Cloud Storage 버킷에 업로드해야 합니다.

수동으로 JSON 구성 파일 만들기

예를 들어 앱에서 app.yaml을 제외하거나 기존 자바 앱에서 appengine-web.xml 파일을 사용하는 것과 같이 수동으로 구성 파일을 만들어야 하는 경우 다음 단계를 사용합니다.

Admin API로 앱을 배포하기 위해 app.json 구성 파일을 수동으로 만들려면 다음 안내를 따르세요.

  1. app.json이라는 파일을 만듭니다.
  2. apps.services.versions collection에 제공된 구성 정보를 사용해 배포할 버전을 정의하고 구성합니다.
  3. deployment 정의 섹션의 템플릿을 사용하여 Cloud Storage 버킷에서 배포할 모든 파일과 리소스를 지정합니다.

또한 아래의 섹션을 참조하여 app.json 구성 파일을 만들 수 있습니다.

app.yaml 파일을 JSON 형식으로 변환

convert_yaml.py 도구를 사용하여 기존 app.yaml 파일에서 app.json 버전을 변환하고 생성할 수 있습니다.

일반적으로 앱의 버전을 수동으로 배포할 때 사용하는 app.yaml 파일이 존재하는 경우 이러한 구성 설정을 JSON 형식으로 변환하면 해당 정보를 유지할 수 있습니다.

선행 조건

지정된 요구사항을 포함하여 convert_yaml.py 도구를 다운로드하고 설치합니다.

convert_yaml.py 도구를 사용하여 YAML 파일 변환

convert_yaml.py 도구로 app.yaml 파일을 변환하려면 다음 안내를 따르세요.

  1. app.yaml에 대한 디렉터리 경로를 찾아서 기록합니다.

    예:

    cd root/apps-container/my-application/
    

    example-python-app.py 애플리케이션의 app.yaml은 다음과 같습니다.

    service: default
    version: v1
    runtime: python27
    threadsafe: true
    
    handlers:
    - url: /.*
      script: example-python-app.py
    
  2. convert_yaml.py 도구를 다운로드한 로컬 디렉터리로 이동합니다. 예를 들면 다음과 같습니다.

    cd root/tools/appengine-config-transformer
    
  3. convert_yaml.py 도구를 실행하여 app.yaml 파일에서 app.json 파일을 만듭니다.

    python ./convert_yaml.py [DIRECTORY_PATH]/app.yaml > [DIRECTORY_PATH]/app.json
    

    여기서 [DIRECTORY_PATH]app.yaml 파일의 경로입니다.

    app.yaml 파일의 JSON 버전(app.json)이 [DIRECTORY_PATH] 디렉터리에 생성됩니다.

  4. 버전 ID가 app.json 구성 파일에 정의되어 있는지 확인합니다.

    app.yaml 파일에서 version: [VERSION_NAME] 요소를 제외하면 "id": [VERSION_NAME] 요소는 변환 후에 app.json 파일에 포함되지 않습니다. 예를 들어 버전 ID를 v1으로 설정하려면 다음 줄을 app.json 파일에 수동으로 추가해야 합니다.

    "id": "v1",
    
  5. deployment 섹션 정의의 템플릿을 사용하여 배포할 모든 파일과 리소스를 지정합니다.

또한 아래의 섹션을 참조하여 app.json 구성 파일을 만들 수 있습니다.

deployment 섹션 정의

app.json 구성 파일에서 deployment 섹션을 만들고 Cloud Storage 버킷에 있는 모든 리소스를 수동으로 정의하려면 apps.services.versions 컬렉션의 deployment 섹션에 있는 참조 정보를 사용합니다. 개별 파일을 정의하는 경우 다음 템플릿을 사용하면 됩니다.

"deployment": {
  "files": {
    "my-resource-file1": {
      "sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/my-application/my-resource-file1"
    },
  }
},

여기서 my-resource-file1은 App Engine에서 파일을 배포할 파일 이름과 상대 디렉터리 경로를 정의합니다.

app.json 파일 예

다음 app.json 예를 사용하여 구성 파일을 만들 수 있습니다.

다음 app.json 예에서 v1 버전 ID는 [MY_BUCKET_ID] Cloud Storage 버킷에서 두 개의 예제 소스 파일을 포함하는 deployment 섹션과 함께 정의됩니다.

{
  "deployment": {
    "files": {
      "example-resource-file1": {
        "sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/example-application/example-resource-file1"
      },
      "images/example-resource-file2": {
        "sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/example-application/images/example-resource-file2"
      },
    }
  },
  "id": "v1",
  "handlers": [
    {
      "urlRegex": "/.*",
      "script": {
        "scriptPath": "example-python-app.py"
      }
    },
  ],
  "runtime": "python27",
  "threadsafe": true,
}

다음 단계