Criar um aplicativo PHP no ambiente flexível do App Engine
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. Para apps criados após
fevereiro de 2020, o REGION_ID.r está incluído nos
URLs do App Engine. Para apps existentes criados antes dessa data, o
ID da região é opcional no URL.
Saiba mais sobre IDs de região.
Neste guia de início rápido, você verá como criar e implantar um app que exibe uma mensagem curta. Você pode
usar o aplicativo de exemplo neste guia de início rápido para qualquer versão compatível do PHP. Basta especificar a versão do ambiente de execução e o sistema operacional no seu arquivo
app.yaml.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você não conhece o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em cenários reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Funções exigidas
Para conseguir as permissões necessárias a fim de concluir o guia de início rápido, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Administrador do App Engine (
roles/appengine.appAdmin) no projeto - Editor do Cloud Build (
roles/cloudbuild.builds.editor) no projeto - Administrador de objetos do Storage (
roles/storage.objectAdmin) no projeto - Leitor de registros (
roles/logging.viewer) no projeto - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço -
Peça ao administrador para conceder os seguintes papéis para a conta de serviço padrão do App Engine:
- Leitor do Artifact Registry (
roles/artifactregistry.reader) no projeto - Conta de serviço do Cloud Build (
roles/cloudbuild.builds.builder) no projeto - Leitor de objetos do Storage (
roles/storage.objectViewer) no projeto
- Leitor do Artifact Registry (
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Pré-requisitos adicionais
Inicialize seu aplicativo do App Engine com o projeto e escolha a região:
gcloud app create --project=[YOUR_PROJECT_ID]Quando solicitado, selecione a região em que você quer localizar o aplicativo do App Engine.
Instale o seguinte na máquina local:
- Fazer o download e instalar o Git.
- Instalar o PHP
Para gerenciar dependências, faça o download do Composer. Em seguida, verifique se o executável dele foi instalado globalmente.
Locais do App Engine
O App Engine é regional. Isso significa que a infraestrutura que executa os aplicativos está em uma determinada região que é gerenciada pelo Google para estar disponível de modo redundante em todas as zonas dessa região.
Atender aos requisitos de latência, disponibilidade ou durabilidade são os principais fatores para selecionar a região de execução dos aplicativos. Geralmente, é possível selecionar a região mais próxima dos usuários do aplicativo, mas considere os locais em que o App Engine está disponível bem como os locais dos outros Google Cloud produtos e serviços usados pelo app. O uso de serviços em vários locais pode afetar a latência e o preço do aplicativo.
Não é possível alterar a região de um aplicativo depois de defini-la.
Se você já criou um aplicativo do App Engine, será possível ver a região dele com um dos seguintes procedimentos:
Execute o comando
gcloud app describe.Abra o painel do App Engine no Google Cloud console. A região aparece perto do topo da página.
fazer o download do app Hello World
Criamos um app Hello World para App Engine. Assim, é possível ter uma ideia de como implantar um app no Google Cloud.
Clone o repositório do app de exemplo Hello World na máquina local.
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.gitOutra opção é fazer o download da amostra (em inglês) como um arquivo ZIP e extraí-lo.
Acesse o diretório que contém o exemplo de código.
cd php-docs-samples/appengine/flexible/helloworld
Como executar o Hello World na máquina local
Para executar o aplicativo Hello World no seu computador, siga estas etapas:
Instale as dependências.
composer installInicie um servidor da Web local:
php -S localhost:8080 -t web/No navegador da Web, digite este endereço:
A mensagem Hello World do aplicativo de amostra é exibida na página. Na janela do terminal, pressione Ctrl+C para sair do servidor da Web.
Implante e execute o Hello World no App Engine
Para implantar o aplicativo no ambiente flexível do App Engine:-
Implante o aplicativo Hello World executando o seguinte comando no diretório
appengine/flexible/helloworld:gcloud app deploy
Saiba mais sobre sinalizações opcionais.
Sinalizações comuns do comando
gcloud-
Inclua a sinalização
--versionpara especificar um ID que identifica exclusivamente a versão do seu aplicativo. Quando a sinalização não é incluída, o ID é gerado automaticamente. Exemplo:--version [YOUR_VERSION_ID] -
Inclua a sinalização
--projectpara especificar um Google Cloud ID do projeto alternativo ao que você inicializou como padrão na ferramentagcloud. Exemplo:--project [YOUR_PROJECT_ID]
Exemplo:
gcloud app deploy --version pre-prod-5 --project my-sample-app
Para aprender a implantar o app pela linha de comando, consulte Como testar e implantar o app. Para uma lista de todas as sinalizações de comando, consulte a referência do
gcloud app deploy. -
Inclua a sinalização
-
Abra o navegador para visualizar o app em
https://PROJECT_ID.REGION_ID.r.appspot.com em quegcloud app browse
PROJECT_IDrepresenta o Google Cloud ID do projeto.
Nesse momento, a página que exibe a mensagem “Hello World” é enviada por um servidor da Web em execução em uma instância do App Engine.
Parabéns! Você implantou seu primeiro aplicativo do App Engine no ambiente flexível do App Engine.
Se você encontrar erros na implantação do app, verifique as dicas de solução de problemas.Confira as seções a seguir para informações sobre limpeza e links das próximas etapas.
Limpar
Exclua o Google Cloud projeto para não ser cobrado pelos recursos usados nele.
- No Google Cloud console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Desligar para excluir o projeto.
A seguir
Conheça a plataforma inteira
Agora que você sabe como é desenvolver e implantar aplicativos do App Engine, explore o restante do Google Cloud. Você já tem a Google Cloud CLI instalada, o que oferece as ferramentas para interagir com produtos como Cloud SQL, Cloud Storage, Firestore e muitos outros.
Saiba mais sobre o ambiente flexível do App Engine
Listamos alguns tópicos para você continuar aprendendo sobre o App Engine:
Revisão do código do Hello World
O Hello World é o app mais simples possível do App Engine. Nele, há apenas um serviço e uma versão, e todo o código é armazenado no diretório raiz. Nesta seção, cada arquivo do app é descrito em detalhes.
index.php
O arquivo index.php contém o código PHP para iniciar um servidor e responder a
solicitações. Este exemplo usa o
Slim,
mas é possível utilizar outros
frameworks PHP da Web (ambos os links em inglês).
Esse código cria um novo objeto Slim Application e define duas rotas
GET diferentes:
app.yaml
O arquivo app.yaml
descreve a seguinte configuração para seu app:
- Define
env: flex, indicando que o aplicativo usa o ambiente flexível do App Engine. Especifica o ambiente de execução usado pelo app.
Para mais informações sobre como funciona o ambiente de execução do PHP, consulte este artigo.
Para aprender a projetar seu app para aproveitar mais as versões e os serviços, consulte Visão geral do App Engine.
Para mais detalhes sobre as configurações do App Engine, consulte Como configurar um app com o arquivo app.yaml.
composer.jsoncomposer.jsoné usado para declarar, instalar e atualizar dependências de aplicativos: