Como criar aplicativos do App Engine com a API Admin

ID da região

O REGION_ID é um código abreviado que o Google atribui com base na região que você selecionou ao criar o aplicativo. O código não corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes aos códigos de país e estado geralmente usados. A inclusão de REGION_ID.r em URLs do App Engine é opcional para aplicativos atuais. Em breve, será necessária para todos os aplicativos novos.

Para garantir uma transição tranquila, estamos atualizando o App Engine gradativamente para usar IDs de região. Se ainda não tivermos atualizado seu projeto do Google Cloud, você não verá um ID da região para o app. Como o ID é opcional para os apps atuais, não é necessário atualizar os URLs ou fazer outras alterações quando o ID da região está disponível para eles.

Saiba mais sobre IDs de região.

Use a API App Engine Admin do Google para criar aplicativos do App Engine de maneira programática em novos projetos do Google Cloud. Com a API Admin e a API Cloud Resource Manager, é possível gerenciar projetos do Cloud e aplicativos do App Engine de maneira programática.

Criar um aplicativo do App Engine cria um recurso Application para um projeto de destino do Cloud no local especificado.

Para criar manualmente um aplicativo do App Engine em um projeto do Cloud, consulte o tópico Como gerenciar projetos, aplicativos e faturamento para seu idioma no ambiente padrão ou ambiente flexível.

Antes de começar

É preciso atender aos seguintes pré-requisitos, antes de criar um aplicativo do App Engine usando a API Admin:

  • Você precisa criar ou ter um projeto do Cloud.
  • Você precisa ser o proprietário do projeto do Cloud de destino.
  • É preciso que você tenha permissão para acessar a API Admin.

Antes que qualquer outra conta de usuário possa executar tarefas em um aplicativo do App Engine, o proprietário do projeto do Cloud precisa primeiro criar o recurso Application. Por exemplo, primeiro você precisa criar o aplicativo do App Engine para que uma conta de usuário com o papel de Implantador do App Engine possa implantar um aplicativo usando uma conta de serviço.

Para criar um projeto do Cloud:

API

Para criar um projeto do Cloud de maneira programática, use a API Cloud Resource Manager. Para saber mais, consulte Como criar um novo projeto. Veja um breve exemplo.

Console

Para criar um projeto do Cloud usando o Console do Cloud:

Acessar a página "Projetos"

gcloud

Depois de instalar o SDK do Google Cloud, execute o seguinte comando da ferramenta gcloud para criar um projeto do Cloud:

gcloud projects create

Se você optar por usar um projeto que já existe no Cloud, certifique-se de que ele não contenha o recurso Application porque os projetos são compatíveis com apenas um aplicativo do App Engine. Para verificar se o projeto do Cloud já contém o recurso Application, use o método apps.get ou execute o comando gcloud app describe.

Como criar um aplicativo do App Engine

Para criar um aplicativo do App Engine com a API Admin:

  1. Autorize suas solicitações HTTP, por exemplo, receba um token de acesso.

    É possível autorizar o acesso à API Admin usando diferentes fluxos do OAuth, dependendo das necessidades do aplicativo de API. Para mais informações, consulte Como acessar a API.

  2. Envie uma solicitação HTTP POST usando seu token de acesso e a API Admin para criar um aplicativo do App Engine.

    Você define o recurso Application e segmenta o projeto do Cloud na solicitação HTTP POST, por exemplo:

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

    Campos de solicitação HTTP obrigatórios:

    • id: o ID do projeto do Cloud de destino em que você quer criar um aplicativo do App Engine.

    • locationId: o nome da região geográfica em que o aplicativo do App Engine está localizado, conforme listado nos Locais do App Engine, por exemplo, us-east1.

      Para ver uma lista completa de locais compatíveis, use o método apps.locations.list.

      Exemplo: autorize e execute essa solicitação de exemplo no APIs Explorer para visualizar uma lista atual de locais compatíveis.

    Para uma lista completa de opções de campo, consulte o recurso Application.

    Exemplo de comando 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
    

    Em que:

    • [MY_PROJECT_ID] é o código do projeto de destino em que você quer criar o aplicativo do App Engine.
    • [MY_APP_LOCATION] é o local em que você quer criar o aplicativo do App Engine.
    • [MY_ACCESS_TOKEN] é o token de acesso que você recebeu para autorizar suas solicitações HTTP.

    Exemplo de resposta:

    {
      "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. Verifique se o aplicativo do App Engine foi criado:

    1. Veja o status da operação de criação real:

      A solicitação HTTP POST usada na etapa anterior retornou o nome da operação no campo name, que você usa com o método GET da coleção apps.operations para verificar o status da operação de criação.

      Por exemplo, se o campo name da resposta for:

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

      Você enviará a seguinte solicitação HTTP GET:

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

      Exemplo de comando 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
      

      Em que [MY_ACCESS_TOKEN] é seu token de acesso e [MY_PROJECT_ID] é o código do projeto de destino.

      Exemplo de resposta:

      {
        "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. Verifique se o aplicativo do App Engine foi criado no projeto:

      Para visualizar detalhes sobre a versão, use o método GET da coleção apps. É preciso especificar qual projeto você implantou na solicitação HTTP GET, por exemplo:

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

      Exemplo de comando cURL:

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

      Em que [MY_ACCESS_TOKEN] é seu token de acesso e [MY_PROJECT_ID] é o código do projeto de destino.

      Exemplo de resposta:

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

      O REGION_ID é um código abreviado que o Google atribui com base na região que você selecionou ao criar o aplicativo. O código não corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes aos códigos de país e estado geralmente usados. A inclusão de REGION_ID.r em URLs do App Engine é opcional para aplicativos atuais. Em breve, será necessária para todos os aplicativos novos.

      Para garantir uma transição tranquila, estamos atualizando o App Engine gradativamente para usar IDs de região. Se ainda não tivermos atualizado seu projeto do Google Cloud, você não verá um ID da região para o app. Como o ID é opcional para os apps atuais, não é necessário atualizar os URLs ou fazer outras alterações quando o ID da região está disponível para eles.

A seguir