Crie uma app de tempo de execução personalizada no ambiente flexível do App Engine
ID da região
O REGION_ID
é um código abreviado que a Google atribui com base na região que seleciona quando cria a sua app. O código não corresponde a um país ou uma província, embora alguns IDs de regiões possam parecer semelhantes aos códigos de países e províncias usados frequentemente. Para apps criadas após
fevereiro de 2020, REGION_ID.r
está incluído nos
URLs do App Engine. Para apps existentes criadas antes desta data, o
ID da região é opcional no URL.
Os tempos de execução personalizados permitem-lhe criar apps que são executadas num ambiente definido por um Dockerfile. Ao usar um Dockerfile, pode usar idiomas e pacotes que não fazem parte doGoogle Cloud e usar os mesmos recursos e ferramentas que são usados no ambiente flexível do App Engine.
Neste início rápido, é iniciado um servidor Web nginx no App Engine através de um tempo de execução personalizado.
Antes de começar
Antes de executar a app de exemplo neste início rápido, tem de configurar o seu ambiente e criar um novo Google Cloud projeto para o App Engine:
Crie um novo Google Cloud projeto através da Google Cloud consola:
Abra a Google Cloud consola:
Clique em Criar projeto e, de seguida, atribua um nome ao novo Google Cloud projeto.
Ative a faturação no seu novo Google Cloud projeto criando uma nova conta de faturação ou definindo uma existente:
Transfira e instale a CLI Google Cloud e, de seguida, inicialize a CLI gcloud:
Execute o seguinte comando
gcloud
para criar uma aplicação do App Engine e especificar em que região geográfica quer que a sua app seja executada:gcloud app create
- Devido a alterações no comportamento predefinido da forma como o Cloud Build usa as contas de serviço em novos projetos e alterações à política organizacional segura por predefinição, pode ter de conceder funções adicionais à sua conta de serviço de implementação. Para mais informações sobre a concessão de funções específicas, consulte o guia de resolução de problemas.
Localizações do App Engine
O App Engine é regional, o que significa que a infraestrutura que executa as suas apps está localizada numa região específica e é gerida pela Google para estar disponível de forma redundante em todas as zonas dessa região.
O cumprimento dos requisitos de latência, disponibilidade ou durabilidade são fatores principais para selecionar a região onde as suas apps são executadas. Geralmente, pode selecionar a região mais próxima dos utilizadores da sua app, mas deve considerar as localizações onde o App Engine está disponível, bem como as localizações dos outrosGoogle Cloud produtos e serviços que a sua app usa. A utilização de serviços em várias localizações pode afetar a latência da sua app, bem como os respetivos preços.
Não pode alterar a região de uma app depois de a definir.
Se já tiver criado uma aplicação do App Engine, pode ver a respetiva região através de uma das seguintes ações:
Execute o comando
gcloud app describe
.Abra o painel de controlo do App Engine na Google Cloud consola. A região aparece junto à parte superior da página.
Transfira a app Hello World
Escolha uma das seguintes opções para transferir a app de exemplo Hello World do GitHub para o seu computador local:
Clone a app de exemplo Hello World a partir do seguinte repositório:
git clone https://github.com/GoogleCloudPlatform/appengine-custom-runtimes-samples
Transfira o exemplo como um ficheiro .zip e, em seguida, extraia-o para um diretório local.
Navegue para o diretório
nginx
onde o exemplo de código está localizado, por exemplo:cd appengine-custom-runtimes-samples/nginx
Executar o Hello World na sua máquina local
Pode testar a app de exemplo transferindo e instalando o Docker e, em seguida, executando o contentor Hello World na sua máquina local.
Não existem passos específicos do App Engine aqui, pelo que pode testar a app de exemplo usando as ferramentas e a abordagem que preferir.
Implementar o Hello World no App Engine
Quando tiver tudo pronto para implementar a app de exemplo no App Engine, siga os passos seguintes:
A partir do diretório onde se encontram os ficheiros
app.yaml
eDockerfile
, execute o seguinte comando:gcloud app deploy
Saiba mais acerca das sinalizações opcionais.
Para ver a sua app em execução em
https://PROJECT_ID.REGION_ID.r.appspot.com
, execute o seguinte comando para iniciar o navegador:gcloud app browse
Sinalizações de comandos gcloud
comuns
-
Inclua a flag
--version
para especificar um ID que identifique exclusivamente essa versão da sua app. Caso contrário, é gerado um ID para si. Exemplo:--version [YOUR_VERSION_ID]
-
Inclua a flag
--project
para especificar um ID do projeto Google Cloud alternativo ao que inicializou como predefinição na ferramentagcloud
. Exemplo:--project [YOUR_PROJECT_ID]
Exemplo:
gcloud app deploy --version pre-prod-5 --project my-sample-app
Para saber como implementar a sua app a partir da linha de comandos, consulte o artigo
Testar e implementar a sua app
. Para ver uma lista de todas as flags de comando, consulte a
gcloud app deploy
referência.
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
O que se segue?
Saiba mais sobre os Dockerfiles na referência do Dockerfile.
Para obter informações sobre como criar o seu próprio tempo de execução personalizado, consulte o artigo Criar tempos de execução personalizados.
Revisão de código
O Hello World é a app do App Engine mais simples possível, uma vez que cria um único contentor que executa apenas um serviço e uma versão. Esta secção descreve detalhadamente cada um dos ficheiros da app.
app.yaml
Especifica a configuração da app. O ficheiro
app.yaml
tem de estar no mesmo diretório que o ficheiroDockerfile
.A entrada
runtime: custom
indica ao App Engine que procure um ficheiroDockerfile
que defina a imagem do seu tempo de execução eenv: flex
especifica que está a implementar no ambiente flexível.Para mais informações, consulte a referência
app.yaml
.Dockerfile
Define o conjunto de instruções que são usadas para criar a imagem do Docker para o contentor da app de exemplo. O ficheiro
Dockerfile
tem de estar no mesmo diretório que o ficheiroapp.yaml
. Este comandoDockerfile
instala o servidor Web nginx e copia algumas configurações básicas:O comando FROM cria uma imagem de base com a imagem do Docker oficial para o servidor Web nginx.
Ao usar este
Dockerfile
, a imagem do contentor vai conter o nginx e todo o conteúdo no diretóriowww/
está disponível para a sua aplicação.
A app de exemplo Hello World também inclui um ficheiro
nginx.conf
que contém as informações básicas de configuração do nginx, bem como o ficheiro
index.html
que serve como página raiz para o servidor Web nginx.