Veja neste tutorial como gerenciar sessões no App Engine.
Muitos aplicativos precisam gerenciar sessões de autenticação e preferências do usuário. O PHP tem uma implementação baseada em memória para executar essa função. No entanto, essa implementação não é adequada para um aplicativo que pode ser veiculado de várias instâncias, porque a sessão gravada em uma instância pode ser diferente nas outras.
Objetivos
- Gravar o aplicativo.
- Executar o aplicativo localmente.
- Implantar o aplicativo no App Engine.
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Cloud de Confiance by S3NS:
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Para mais informações, consulte Limpeza.
Antes de começar
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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 Cloud de Confiance project.
Enable the Firestore API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Configure a CLI gcloud para usar sua identidade federada.
Para mais informações, consulte Fazer login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init - Configure a CLI gcloud para usar seu
novo Cloud de Confiance projeto:
Substitua# Configure gcloud for your project gcloud config set project PROJECT_ID
PROJECT_IDpelo ID do Cloud de Confiance projeto que você criou ou selecionou anteriormente.
Como configurar o projeto
Na janela de terminal, inicie em um diretório de sua escolha e crie um novo diretório chamado
sessions. Todo o código deste tutorial está dentro do diretóriosessions.Mude para o diretório
sessions:cd sessionsInstale as dependências:
composer require google/cloud-firestore
No final deste tutorial, a estrutura final do arquivo é semelhante à seguinte:
sessions
├── app.yaml
└── composer.json
├── index.php
Como gravar o aplicativo
Na janela de terminal, crie um arquivo chamado
index.phpcom o seguinte conteúdo:
Esse aplicativo exibe saudações em idiomas diferentes para cada usuário. Usuários recorrentes são sempre recebidos no mesmo idioma.
Para que o app possa armazenar as preferências de um usuário, você precisa de uma maneira de armazenar informações sobre o usuário atual em uma sessão. Este app de amostra usa o Firestore para armazenar esses dados.
Você pode usar o Firestore session handler para usar o Firestore em sessões do PHP.
Veja no diagrama a seguir como o Firestore gerencia as sessões do aplicativo do App Engine.
Depois que você definir session_set_save_handler, cada solicitação terá uma variável global $_SESSION que pode ser usada para acessar a sessão. Os dados da sessão são armazenados no Firestore.
Como executar no local
Inicie o servidor da Web PHP integrado:
php -S localhost:8080Veja seu app no navegador da Web:
Cloud Shell
Na barra de ferramentas do Cloud Shell, clique em Visualização da Web
e selecione Visualizar na porta 8080.Máquina local
No seu navegador, acesse
http://localhost:8080Você verá uma das cinco saudações: "Hello World"," "Hallo Welt", "Hola mundo", "Salut le Monde" ou "Ciao Mondo". O idioma será alterado se você abrir a página em um navegador diferente ou no modo de navegação anônima. Você pode conferir e editar os dados da sessão no Cloud de Confiance console.

Para interromper o servidor HTTP, pressione
Control+Cna janela do terminal.
Como implantar e executar no App Engine
Use o ambiente padrão do App Engine para criar e implantar um aplicativo que seja executado de forma confiável sob carga pesada e com grandes quantidades de dados.
Neste tutorial, o ambiente padrão do App Engine é usado para implantar o servidor.
Na janela de terminal, crie um arquivo
app.yamle copie o seguinte:Implante o aplicativo no App Engine:
gcloud app deployPara visualizar o aplicativo ativo, insira o seguinte URL:
https://PROJECT_ID.REGION_ID.r.appspot.comSubstitua:
PROJECT_ID: o ID do Cloud de Confiance projetoREGION_ID: um código que o App Engine atribui ao seu app
A saudação agora é entregue por um servidor da Web executado em uma instância do App Engine.
Como excluir sessões
O PHP executa a sessão coleta de lixo (GC, na sigla em inglês) (link em inglês),
que remove sessões antigas e expiradas
de acordo com a configuração php.ini. O gerenciador de sessão do Firestore não libera memória de sessões por padrão, mas você pode configurá-lo para fazer isso ao transmitir uma opção gcLimit durante a criação do gerenciador de sessão:
As sessões são removidas usando a GC com base em probabilidade ou quando você chama a função session_gc explicitamente.
Como depurar o aplicativo
Se você não conseguir se conectar ao aplicativo do App Engine, verifique o seguinte:
- Verifique se os comandos de implantação
gcloudforam concluídos com êxito e não geraram erros. Se houver erros (por exemplo,message=Build failed), corrija-os e tente implantar o aplicativo do App Engine novamente. No Cloud de Confiance console do, acesse a página Análise de registros.
Acessar a página Análise de registros
Na lista suspensa Recursos selecionados recentemente , clique em Aplicativo App Engine e, em seguida, clique em Todos os module_id. Você verá uma lista de solicitações de quando visitou seu aplicativo. Caso contrário, verifique se você selecionou Todos os module_id na lista suspensa. Se você vir mensagens de erro impressas no Cloud de Confiance console, verifique se o código do seu aplicativo corresponde ao código na seção sobre como gravar o app da Web.
Verifique se a API Firestore está ativada.
Limpar
Excluir o projeto
- No Cloud de Confiance 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.
Excluir a instância do App Engine
- No Cloud de Confiance console do, acesse a página Versões do App Engine.
- Marque a caixa de seleção da versão não padrão do app que você quer excluir.
- Para excluir a versão do app, clique em Excluir.