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.
Saiba mais acerca dos IDs de regiões.
Este guia aborda como estruturar os serviços e os recursos relacionados da sua app do App Engine.
Estrutura do diretório
Cada versão do seu serviço do App Engine é definida num ficheiro de configuração app.yaml
. Para apps simples, o requisito mínimo para a implementação é definir o ficheiro app.yaml
. O ficheiro app.yaml
funciona como um descritor de implementação e define o tipo de escalabilidade e os recursos de CPU, disco e memória para uma versão específica de um serviço. Se estiver a implementar várias versões de um serviço, pode criar vários ficheiros YAML no mesmo diretório para representar a configuração de cada uma das suas versões.
Para o tempo de execução Java, os ficheiros de configuração estão no formato YAML.
Para cada serviço, pode criar diretórios separados na raiz da sua app quando estiver a desenvolver localmente. Se alojar a sua app fora de um sistema de controlo de versões (VCS), por exemplo, o GitHub, também pode estruturar a sua app para usar diretórios separados num repositório ou usar repositórios separados para cada serviço. Cada diretório ou repositório deve representar um único serviço e
conter o ficheiro app.yaml
desse serviço, juntamente com o código fonte associado.
Tem a opção de especificar um nome exclusivo para cada um dos ficheiros app.yaml
do seu serviço. Por exemplo, pode dar o nome de um ficheiro de configuração ao seu serviço ou usar nomes exclusivos para representar cada versão desse serviço específico, como service1.yaml
ou app.flexible.yaml
.
Os outros ficheiros de configuração opcionais devem residir no diretório ou repositório raiz do serviço default
da sua app. Estes ficheiros de configuração opcionais aplicam definições ao nível da app que não são específicas de um serviço em particular, incluindo os ficheiros dispatch.yaml
, index.yaml
e cron.yaml
.
Exemplos
Uma app simples só requer que o ficheiro app.yaml
seja adicionado na mesma localização que os ficheiros de origem da app. Para uma app de serviço único, essa app só inclui o serviço default
e todos os ficheiros podem estar no mesmo diretório, na raiz dessa app:
O exemplo seguinte demonstra como estruturar o aspeto de uma app com três serviços se estiver a desenvolver a sua app localmente. O ficheiro dispatch.yaml
opcional foi adicionado a essa app no diretório raiz. Também na raiz, existem três diretórios para cada um dos serviços da app. O subdiretório para service1
inclui os ficheiros de origem e de configuração desse serviço. Da mesma forma, service2
e service3
estão em diretórios separados, que contêm os ficheiros de cada serviço, embora service3
inclua duas versões do ficheiro de configuração YAML:
No exemplo seguinte, um único serviço tem o ficheiro dispatch.yaml
opcional e dois ficheiros de configuração que representam versões diferentes desse serviço, service1.yaml
e service2.yaml
:
Considerações de design para o tempo de atividade da instância
As falhas de hardware ou software que causam o encerramento antecipado ou os reinícios frequentes de instâncias podem ocorrer sem aviso prévio e podem demorar um tempo considerável a resolver. A sua aplicação deve conseguir processar essas falhas.
Seguem-se algumas boas estratégias para evitar o tempo de inatividade devido a reinícios de instâncias:
- Reduzir o tempo que as instâncias demoram a reiniciar ou a iniciar.
- Para cálculos de longa duração, crie periodicamente pontos de verificação para que possa retomar a partir desse estado.
- A sua app deve ser "sem estado" para que nada seja armazenado na instância.
- Use filas para executar tarefas assíncronas.
- Se configurar as suas instâncias para o escalamento manual:
- Use o balanceamento de carga em várias instâncias.
- Configurar mais instâncias do que o necessário para processar o tráfego normal.
- Escreva uma lógica alternativa que use resultados em cache quando uma instância de escalamento manual não estiver disponível.
Saiba mais sobre as instâncias em Como as instâncias são geridas.
O serviço default
Todas as aplicações do App Engine incluem um serviço default
. Tem de implementar a versão inicial da sua app no serviço default
antes de poder criar e implementar serviços adicionais na app.
O serviço predefinido pode ser especificado opcionalmente no app.yaml
com a definição
service: default
.
Os pedidos enviados para a sua app através do seu projeto Google Cloud são enviados para o serviço default
, por exemplo, https://PROJECT_ID.REGION_ID.r.appspot.com
. Para saber mais sobre a segmentação dos seus outros serviços, consulte o artigo Comunicação entre serviços.
Ficheiros de configuração opcionais
Os seguintes ficheiros de configuração controlam funcionalidades opcionais que se aplicam a todos os serviços numa app individual. Consulte os seguintes tópicos para ver detalhes sobre cada uma das funcionalidades opcionais:
cron.yaml
configura tarefas agendadas regularmente que operam em horários definidos ou em intervalos regulares.dispatch.yaml
substitui as regras predefinidas de encaminhamento enviando pedidos recebidos para um serviço específico com base no caminho ou no nome de anfitrião no URL.index.yaml
especifica os índices de que a sua app precisa se usar consultas do Datastore.- Tenha em atenção que este ficheiro está disponível para todos os tempos de execução, exceto o tempo de execução .NET.
Considerações sobre o armazenamento de dados e ficheiros
A partir do App Engine, pode aceder facilmente a outros serviços, como o Datastore, o Cloud SQL e o Cloud Storage. Google Cloud
Também tem a opção de usar uma base de dados externa ou de terceiros se essa base de dados for suportada pelo seu idioma e acessível a partir da sua instância do App Engine.
Para ver detalhes sobre o armazenamento de ficheiros no Google Cloud ou externamente, consulte o artigo Compreender o armazenamento de dados e ficheiros.
Também pode escolher como quer publicar o seu conteúdo estático. Pode publicar o conteúdo estático da sua app diretamente a partir dessa app no App Engine, alojar o conteúdo estático numa Google Cloud opção como o Cloud Storage ou usar uma rede de fornecimento de conteúdo (RFC) de terceiros. Para mais informações sobre a publicação de conteúdo estático, consulte o artigo Publicar ficheiros estáticos.
O que se segue?
Se estiver a trabalhar com vários serviços e quiser implementá-los em conjunto, consulte os passos para implementar vários serviços.