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

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

JSON 형식의 구성 파일을 만드는 과정은 2단계로 나뉩니다.

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

팁: app.json 구성 파일을 프로그래매틱 방식으로 생성해 보세요.

시작하기 전에

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/
    

    my-python-app.py 애플리케이션의 app.yaml은 다음과 같이 표시될 수 있습니다.

    service: default
    version: v1
    runtime: python27
    threadsafe: true
    
    handlers:
    - url: /.*
      script: my-python-app.application
    
  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. app.json 구성 파일에 버전의 ID가 정의되어 있는지 확인합니다.

    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를 사용하면 구성 파일을 만드는 데 도움이 됩니다.

이 예에서 v1 버전 ID와 함께 정의되는 deployment에는 [MY_BUCKET_ID] Cloud Storage 버킷에 위치한 두 소스 파일이 포함되어 있습니다.

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

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

App Engine Admin API