Como criar arquivos de configuração JSON para implantações

Para implantar uma versão do seu aplicativo com a API Admin, defina os detalhes de configuração da versão em um arquivo no formato JSON. É possível criar manualmente o arquivo de configuração ou converter um arquivo app.yaml atual.

A criação de um arquivo de configuração no formato JSON se divide em duas partes:

  1. Definição das informações de configuração para a versão que você quer implantar.
  2. Defina uma seção deployment para especificar todos os arquivos e recursos do app que você quer implantar.

Dica: considere gerar o arquivo de configuração app.json de maneira programática.

Antes de começar

Primeiro, é necessário fazer upload de todos os arquivos e recursos do aplicativo em um bucket do Cloud Storage antes de criar o arquivo de configuração app.json.

Como criar manualmente o arquivo de configuração JSON

Siga as etapas a seguir se precisar criar manualmente o arquivo de configuração, por exemplo, quando seu aplicativo excluir um app.yaml ou se o aplicativo Java atual usar um arquivo appengine-web.xml.

Para criar manualmente o arquivo de configuração app.json para implantar seu aplicativo com a API Admin:

  1. Crie um nome de arquivo app.json.
  2. Use as informações de configuração fornecidas na coleção apps.services.versions para definir e configurar a versão a ser implantada.
  3. Use o modelo na seção Como definir deployment para especificar todos os arquivos e recursos a serem implantados no bucket do Cloud Storage.

Consulte a seção Exemplo abaixo para ver como criar o arquivo de configuração app.json.

Como converter um arquivo app.yaml no formato JSON

É possível usar a ferramenta convert_yaml.py para converter e gerar uma versão app.json de um arquivo app.yaml existente.

Se houver um arquivo app.yaml, que normalmente é usado para implantar manualmente versões do seu aplicativo, mantenha essas informações convertendo essas configurações em arquivos JSON.

Pré-requisito

Faça o download e instale a ferramenta convert_yaml.py, incluindo os requisitos especificados.

Como converter arquivos YAML com a ferramenta convert_yaml.py

Para converter seu arquivo app.yaml com a ferramenta convert_yaml.py:

  1. Localize e anote o caminho do diretório para o app.yaml.

    Exemplo:

    cd root/apps-container/my-application/
    

    Onde a aparência do app.yaml do aplicativo example-python-app.py pode ser:

    service: default
    version: v1
    runtime: python27
    threadsafe: true
    
    handlers:
    - url: /.*
      script: example-python-app.py
    
  2. Navegue até o diretório local em que você fez o download da ferramenta convert_yaml.py. Por exemplo:

    cd root/tools/appengine-config-transformer
    
  3. Crie o arquivo app.json a partir do arquivo app.yaml executando a ferramenta convert_yaml.py:

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

    Em que [DIRECTORY_PATH] é o caminho para o arquivo app.yaml.

    Uma versão JSON (app.json) do arquivo app.yaml é criada no diretório [DIRECTORY_PATH].

  4. Verifique se o ID da versão está definido no arquivo de configuração app.json.

    Se o arquivo app.yaml excluir o elemento version: [VERSION_NAME], o elemento "id": [VERSION_NAME] não será incluído no arquivo app.json após a conversão. Por exemplo, se você quiser definir o código da versão como v1, adicione manualmente a seguinte linha ao arquivo app.json:

    "id": "v1",
    
  5. Use o modelo na seção Como definir a deployment para especificar todos os arquivos e recursos do aplicativo que você quer implantar.

Consulte a seção Exemplo abaixo para ver como criar o arquivo de configuração app.json.

Como definir a seção deployment

Para criar uma seção deployment no arquivo de configuração app.json e definir manualmente todos os recursos localizados no bucket do Cloud Storage, você usará as informações de referência na seçãodeployment da coleção apps.services.versions. Se estiver definindo arquivos individuais, use o modelo a seguir:

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

em que my-resource-file1 define o nome do arquivo e o caminho de diretório relativo para o local em que você quer implantar o arquivo no App Engine.

Exemplo de arquivo app.json:

Use o exemplo a seguir app.json para ajudar você a criar o arquivo de configuração.

No exemplo a seguir app.json, o ID da versão v1 é definido com uma seção deployment que inclui dois exemplos de arquivos de origem do Bucket do Cloud Storage [MY_BUCKET_ID].

{
  "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,
}

Dica: nem todos os ambientes de execução compatíveis com o App Engine incluem a compatibilidade com um ScriptHandler. Para ver mais informações, consulte a referência app.yaml ou appengine-web.xml correspondente do ambiente de execução da sua linguagem.

A seguir