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.
O Pub/Sub oferece mensagens assíncronas fiáveis de muitos para muitos entre aplicações. As aplicações de publicadores podem enviar mensagens para um tópico, e outras aplicações podem subscrever esse tópico para receber as mensagens.
Este documento descreve como usar as bibliotecas cliente do Google Cloud para enviar e receber mensagens do Pub/Sub numa app do App Engine.Pré-requisitos
- Siga as instruções para criar uma app para o tempo de execução selecionado para configurar o ambiente e o projeto, e para compreender como as apps do App Engine estão estruturadas.
- Anote e guarde o ID do projeto, porque vai precisar dele para executar a aplicação de exemplo descrita neste documento.
- Crie uma conta de serviço e uma chave da conta de serviço para usar com a sua aplicação.
-
Enable the Google Cloud Pub/Sub API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Clonar a app de exemplo
Copie as apps de exemplo para a sua máquina local e navegue para o diretório pubsub
:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
cd golang-samples/appengine/go11x/pubsub/authenicated_push
Java
Não existe nenhum exemplo disponível para este tempo de execução.
Tenha em atenção que as apps de demonstração Java estão disponíveis no ambiente flexível.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/appengine/pubsub
PHP
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
cd php-docs-samples/pubsub
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/standard_python3/pubsub
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/pubsub
Crie um tópico e uma subscrição
Crie um tópico e uma subscrição, que inclui a especificação do ponto final para o qual o servidor Pub/Sub deve enviar pedidos:
Go
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Substitua YOUR_TOKEN
por um token aleatório secreto. O ponto final de envio usa isto para validar pedidos.
Para usar o Pub/Sub com autenticação, crie outra subscrição:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Substitua YOUR-SERVICE-ACCOUNT-EMAIL
pelo email da sua conta de serviço.
Java
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Substitua YOUR_TOKEN
por um token aleatório secreto. O ponto final de envio usa isto para validar pedidos.
Para usar o Pub/Sub com autenticação, crie outra subscrição:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Substitua YOUR-SERVICE-ACCOUNT-EMAIL
pelo email da sua conta de serviço.
Node.js
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Substitua YOUR_TOKEN
por um token aleatório secreto. O ponto final de envio usa isto para validar pedidos.
Para usar o Pub/Sub com autenticação, crie outra subscrição:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Substitua YOUR-SERVICE-ACCOUNT-EMAIL
pelo email da sua conta de serviço.
PHP
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Substitua YOUR_TOKEN
por um token aleatório secreto. O ponto final de envio usa isto para validar pedidos.
Para usar o Pub/Sub com autenticação, crie outra subscrição:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Substitua YOUR-SERVICE-ACCOUNT-EMAIL
pelo email da sua conta de serviço.
Python
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Substitua YOUR_TOKEN
por um token aleatório secreto. O ponto final de envio usa isto para validar pedidos.
Para usar o Pub/Sub com autenticação, crie outra subscrição:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Substitua YOUR-SERVICE-ACCOUNT-EMAIL
pelo email da sua conta de serviço.
Ruby
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Substitua YOUR_TOKEN
por um token aleatório secreto. O ponto final de envio usa isto para validar pedidos.
Para usar o Pub/Sub com autenticação, crie outra subscrição:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Substitua YOUR-SERVICE-ACCOUNT-EMAIL
pelo email da sua conta de serviço.
Definir variáveis de ambiente
Go
Edite o ficheiro app.yaml
para definir as variáveis de ambiente para o seu tópico e token de validação:
Java
Edite o ficheiro app.yaml
para definir as variáveis de ambiente para o seu tópico e token de validação:
env_variables:
PUBSUB_TOPIC: <your-topic-name>
PUBSUB_VERIFICATION_TOKEN: <your-verification-token>
Node.js
Edite o ficheiro app.yaml
para definir as variáveis de ambiente para o seu tópico e token de validação:
PHP
Edite o ficheiro index.php
para definir as variáveis de ambiente do seu tópico e subscrição:
Python
Edite o ficheiro app.yaml
para definir as variáveis de ambiente para o ID do projeto, o tópico e o token de validação:
Ruby
Edite o ficheiro app.standard.yaml
para definir as variáveis de ambiente para o ID do projeto, o tópico e o token de validação:
Revisão de código
A app de exemplo usa a biblioteca cliente do Pub/Sub.
Go
A app de exemplo usa as variáveis de ambiente que definiu no ficheiro app.yaml
(PUBSUB_TOPIC
e PUBSUB_VERIFICATION_TOKEN
) para configuração.
As mensagens recebidas por esta instância são armazenadas numa fatia:
messages []string
A função receiveMessagesHandler
recebe mensagens enviadas por push, valida o token e
adiciona a mensagem à fatia messages
:
Java
Não existe nenhum exemplo disponível para este tempo de execução.
Tenha em atenção que está disponível uma app de demonstração Java no ambiente flexível.
Node.js
A app de exemplo usa os valores que define no ficheiro app.yaml
para configurar as variáveis de ambiente. O controlador de pedidos push usa estes valores para
confirmar que o pedido foi enviado pelo Pub/Sub e teve origem numa
fonte fidedigna:
// The following environment variables are set by the `app.yaml` file when
// running on App Engine, but will need to be manually set when running locally.
var PUBSUB_VERIFICATION_TOKEN = process.env.PUBSUB_VERIFICATION_TOKEN;
var pubsub = gcloud.pubsub({
projectId: process.env.GOOGLE_CLOUD_PROJECT
});
var topic = pubsub.topic(process.env.PUBSUB_TOPIC);
A app de exemplo mantém uma lista global para armazenar mensagens recebidas por esta instância:
// List of all messages received by this instance
var messages = [];
Este método recebe mensagens push e adiciona-as à messages
lista global:
Este método interage com a app Web do App Engine para publicar novas mensagens e apresentar mensagens recebidas:
PHP
A app de exemplo usa os valores que define no ficheiro app.yaml
para configurar
variáveis de ambiente. O controlador de pedidos push usa estes valores para confirmar
que o pedido foi enviado pelo Pub/Sub e originou-se numa fonte fidedigna:
A app de exemplo mantém uma lista global para armazenar mensagens recebidas por esta instância:
$messages = [];
O método pull
obtém mensagens do tópico que criou e adiciona-as à lista de mensagens:
O método publish
publica novas mensagens no tópico:
Python
A app de exemplo usa os valores que define no ficheiro app.yaml
para configurar
variáveis de ambiente. O controlador de pedidos push usa estes valores para confirmar
que o pedido foi enviado pelo Pub/Sub e originou-se numa fonte fidedigna:
app.config['PUBSUB_VERIFICATION_TOKEN'] = \
os.environ['PUBSUB_VERIFICATION_TOKEN']
app.config['PUBSUB_TOPIC'] = os.environ['PUBSUB_TOPIC']
A app de exemplo mantém uma lista global para armazenar mensagens recebidas por esta instância:
MESSAGES = []
O método receive_messages_handler()
recebe mensagens push e adiciona-as à MESSAGES
lista global:
O método index()
interage com a app Web do App Engine para publicar novas mensagens e apresentar mensagens recebidas:
Ruby
A app de exemplo usa os valores que define no ficheiro app.standard.yaml
para configurar
variáveis de ambiente. O controlador de pedidos push usa estes valores para confirmar
que o pedido foi enviado pelo Pub/Sub e originou-se numa fonte fidedigna:
A app de exemplo mantém uma lista global para armazenar mensagens recebidas por esta instância:
Este método recebe mensagens push e adiciona-as à messages
lista global:
Este método interage com a app Web do App Engine para publicar novas mensagens e apresentar mensagens recebidas:
Executar o exemplo localmente
Quando executado localmente, pode usar a CLI Google Cloud para fornecer autenticação
para usar as APIs Google Cloud. Partindo do princípio de que configurou o seu ambiente conforme descrito em Pré-requisitos, já executou o comando gcloud init
, que fornece esta autenticação.
Go
Defina as variáveis de ambiente antes de iniciar a aplicação:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-token]
export PUBSUB_TOPIC=[your-topic]
go run pubsub.go
Java
Defina as variáveis de ambiente antes de iniciar a aplicação:
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
Para executar a sua aplicação localmente, use as ferramentas de desenvolvimento que usa normalmente.
Node.js
Defina as variáveis de ambiente antes de iniciar a aplicação:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
npm install
npm start
PHP
Instale dependências através do Composer:
composer install
Em seguida, defina as variáveis de ambiente antes de iniciar a aplicação:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
php -S localhost:8080
Python
Instale dependências, de preferência num ambiente virtual.
Mac OS / Linux
- Crie um
ambiente Python isolado:
python3 -m venv env
source env/bin/activate
- Se não estiver no diretório que contém o código de exemplo, navegue
para o diretório que contém o código de exemplo
hello_world
. Em seguida, instale as dependências:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Windows
Use o PowerShell para executar os seus pacotes Python.
- Localize a sua instalação do PowerShell.
- Clique com o botão direito do rato no atalho para o PowerShell e inicie-o como administrador.
- Crie um
ambiente Python isolado.
python -m venv env
.\env\Scripts\activate
- Navegue para o diretório do projeto e instale as dependências. Se não estiver no diretório
que contém o código de exemplo, navegue para o diretório que contém o
hello_world
código de exemplo. Em seguida, instale as dependências:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Em seguida, defina as variáveis de ambiente antes de iniciar a aplicação:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
python main.py
Ruby
Instalar dependências:
bundle install
Em seguida, defina as variáveis de ambiente antes de iniciar a aplicação:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
bundle exec ruby app.rb -p 8080
Simular notificações push
A aplicação pode enviar mensagens localmente, mas não consegue receber mensagens push localmente. No entanto, pode simular uma mensagem push fazendo um pedido HTTP ao ponto final de notificação push local. A amostra inclui o ficheiro
sample_message.json
.
Go
Pode usar curl
ou
um cliente httpie
para
enviar um pedido HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Ou
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Resposta:
HTTP/1.1 200 OK
Date: Tue, 13 Nov 2018 16:04:18 GMT
Content-Length: 0
Após a conclusão do pedido, pode atualizar localhost:8080
e ver a mensagem na lista de mensagens recebidas.
Java
Pode usar curl
ou
um cliente httpie
para
enviar um pedido HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Ou
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Após a conclusão do pedido, pode atualizar localhost:8080
e ver a mensagem na lista de mensagens recebidas.
Node.js
Pode usar curl
ou
um cliente httpie
para
enviar um pedido HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Ou
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Resposta:
HTTP/1.1 200 OK
Connection: keep-alive
Date: Mon, 31 Aug 2015 22:19:50 GMT
Transfer-Encoding: chunked
X-Powered-By: Express
Após a conclusão do pedido, pode atualizar localhost:8080
e ver a mensagem na lista de mensagens recebidas.
PHP
Pode usar curl
ou
um cliente httpie
para
enviar um pedido HTTP POST
:
curl -i --data @sample_message.json "localhost:4567/push-handlers/receive_messages?token=[your-token]"
Ou
http POST ":4567/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Após a conclusão do pedido, pode atualizar localhost:8080
e ver a mensagem na lista de mensagens recebidas.
Python
Pode usar curl
ou
um cliente httpie
para
enviar um pedido HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/pubsub/push?token=[your-token]"
Ou
http POST ":8080/pubsub/push?token=[your-token]" < sample_message.json
Resposta:
HTTP/1.0 200 OK
Content-Length: 2
Content-Type: text/html; charset=utf-8
Date: Mon, 10 Aug 2015 17:52:03 GMT
Server: Werkzeug/0.10.4 Python/2.7.10
OK
Após a conclusão do pedido, pode atualizar localhost:8080
e ver a mensagem na lista de mensagens recebidas.
Ruby
Pode usar curl
ou
um cliente httpie
para
enviar um pedido HTTP POST
:
curl -i --data @sample_message.json "localhost:4567/push-handlers/receive_messages?token=[your-token]"
Ou
http POST ":4567/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Resposta:
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 13
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.3.1 (Ruby/2.3.0/2015-12-25)
Date: Wed, 20 Apr 2016 20:56:23 GMT
Connection: Keep-Alive
Hello, World!
Após a conclusão do pedido, pode atualizar localhost:8080
e ver a mensagem na lista de mensagens recebidas.
Em execução no App Engine
Para implementar a app de demonstração no App Engine através da ferramenta de linha de comandos gcloud
:
Go
Execute o seguinte comando a partir do diretório onde se encontra o ficheiro app.yaml
:
gcloud app deploy
Java
Execute o comando gcloud
a partir do diretório onde o ficheiro app.yaml
se encontra:
gcloud app deploy
Para implementar a sua app através do Maven, execute o seguinte:
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Substitua PROJECT_ID pelo ID do seu Google Cloud projeto. Se o seu ficheiro pom.xml
já
especificar o seu
ID do projeto
, não precisa de incluir a propriedade -Dapp.deploy.projectId
no
comando que executa.
Node.js
Execute o seguinte comando a partir do diretório onde se encontra o ficheiro app.yaml
:
gcloud app deploy
PHP
Execute o seguinte comando a partir do diretório onde se encontra o ficheiro app.yaml
:
gcloud app deploy
Python
Execute o seguinte comando a partir do diretório onde se encontra o ficheiro app.yaml
:
gcloud app deploy
Ruby
Execute o seguinte comando a partir do diretório onde se encontra o ficheiro app.yaml
:
gcloud app deploy app.standard.yaml
Já pode aceder à aplicação em
https://PROJECT_ID.REGION_ID.r.appspot.com
.
Pode usar o formulário para enviar mensagens, mas não há garantia de que a notificação seja recebida por uma instância específica da sua aplicação. Pode enviar várias mensagens e atualizar a página para ver a mensagem recebida.