ID region
REGION_ID
adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak sesuai dengan negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r
disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal tersebut, ID region bersifat opsional dalam URL.
Pelajari ID region lebih lanjut.
Pub/Sub menyediakan pesan yang andal, many-to-many, dan asinkron di antara aplikasi. Aplikasi penayang dapat mengirim pesan ke topik, dan aplikasi lain dapat berlangganan topik tersebut untuk menerima pesan.
Dokumen ini mendeskripsikan cara menggunakan Library Klien Cloud untuk mengirim dan menerima pesan Pub/Sub di aplikasi App Engine untuk runtime Java versi 8 dan versi 11/17. Perhatikan bahwa Anda harus mengupdate fileapp.yaml
untuk menggunakan versi baru. Baca
runtime Java untuk mengetahui informasi selengkapnya
tentang penggunaan runtime baru.
Prasyarat
- Ikuti petunjuk guna membuat aplikasi untuk runtime yang Anda pilih guna menyiapkan lingkungan dan project, serta untuk memahami cara struktur aplikasi App Engine.
- Tuliskan dan simpan project ID Anda karena Anda akan membutuhkannya untuk menjalankan contoh aplikasi yang dijelaskan dalam dokumen ini.
- Buat akun layanan dan kunci akun layanan untuk digunakan dengan aplikasi Anda.
-
Aktifkan API Google Cloud Pub/Sub.
Meng-clone aplikasi contoh
Salin aplikasi contoh ke komputer lokal Anda, lalu buka direktori
pubsub
:
Go
v1.18 dan yang lebih baru
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
cd golang-samples/appengine_flexible/pubsub
v1.15 dan yang lebih lama
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
cd golang-samples/appengine_flexible/go115_and_earlier/pubsub
Java
versi 11/17
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/flexible/java-11/pubsub/
versi 8
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/flexible/java-8/pubsub/
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
v3.8 dan yang lebih baru
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/flexible/pubsub
v3.7 dan yang lebih lama
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/flexible_python37_and_earlier/pubsub
Ruby
versi 3.2
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/flexible/pubsub/
versi 3.1 dan yang lebih lama
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/flexible/ruby31-and-earlier/pubsub/
.NET
versi 6
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
cd dotnet-docs-samples/appengine/flexible/Pubsub/Pubsub.Sample
versi 3.1 dan yang lebih lama
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
git checkout flex-dotnet3-and-earlier
cd dotnet-docs-samples/appengine/flexible/Pubsub
Buat topik dan langganan
Buat topik dan langganan, termasuk menentukan endpoint yang harus dikirimi permintaan oleh server Pub/Sub:
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
Ganti YOUR_TOKEN
dengan token acak rahasia. Endpoint push menggunakannya untuk memverifikasi permintaan.
Untuk menggunakan Pub/Sub dengan autentikasi, buat langganan lain:
# 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 Google-managed service account # `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'
Ganti YOUR-SERVICE-ACCOUNT-EMAIL
dengan email akun layanan Anda.
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
Ganti YOUR_TOKEN
dengan token acak rahasia. Endpoint push menggunakannya untuk memverifikasi permintaan.
Untuk menggunakan Pub/Sub dengan autentikasi, buat langganan lain:
# 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 Google-managed service account # `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'
Ganti YOUR-SERVICE-ACCOUNT-EMAIL
dengan email akun layanan Anda.
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
Ganti YOUR_TOKEN
dengan token acak rahasia. Endpoint push menggunakannya untuk memverifikasi permintaan.
Untuk menggunakan Pub/Sub dengan autentikasi, buat langganan lain:
# 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 Google-managed service account # `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'
Ganti YOUR-SERVICE-ACCOUNT-EMAIL
dengan email akun layanan Anda.
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
Ganti YOUR_TOKEN
dengan token acak rahasia. Endpoint push menggunakannya untuk memverifikasi permintaan.
Untuk menggunakan Pub/Sub dengan autentikasi, buat langganan lain:
# 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 Google-managed service account # `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'
Ganti YOUR-SERVICE-ACCOUNT-EMAIL
dengan email akun layanan Anda.
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
Ganti YOUR_TOKEN
dengan token acak rahasia. Endpoint push menggunakannya untuk memverifikasi permintaan.
Untuk menggunakan Pub/Sub dengan autentikasi, buat langganan lain:
# 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 Google-managed service account # `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'
Ganti YOUR-SERVICE-ACCOUNT-EMAIL
dengan email akun layanan Anda.
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
Ganti YOUR_TOKEN
dengan token acak rahasia. Endpoint push menggunakannya untuk memverifikasi permintaan.
Untuk menggunakan Pub/Sub dengan autentikasi, buat langganan lain:
# 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 Google-managed service account # `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'
Ganti YOUR-SERVICE-ACCOUNT-EMAIL
dengan akun layanan email Anda.
.NET
# 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
Ganti YOUR_TOKEN
dengan token acak secret. Endpoint push menggunakannya untuk memverifikasi permintaan.
Untuk menggunakan Pub/Sub dengan autentikasi, buat langganan lain:
# 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 Google-managed service account # `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'
Ganti YOUR-SERVICE-ACCOUNT-EMAIL
dengan email akun layanan Anda.
Menetapkan variabel lingkungan
Go
Edit file app.yaml
guna menetapkan variabel lingkungan untuk topik dan
token verifikasi Anda:
Java
Edit file app.yaml
guna menetapkan variabel lingkungan untuk topik dan token verifikasi Anda:
Node.js
Edit file app.yaml
Anda guna menetapkan variabel lingkungan untuk topik dan
token verifikasi Anda:
PHP
Edit file index.php
untuk menetapkan variabel lingkungan untuk topik dan langganan Anda:
Python
Edit file app.yaml
guna menetapkan variabel lingkungan untuk project ID,
topik, dan token verifikasi Anda:
Ruby
Edit file app.yaml
guna menetapkan variabel lingkungan untuk project ID,
topik, dan token verifikasi Anda:
.NET
versi 6
Edit file app.yaml
guna menetapkan variabel lingkungan untuk topik
dan token verifikasi Anda:
versi 3.1 dan yang lebih lama
Edit file appsettings.json
untuk menetapkan project ID Anda:
Peninjauan kode
Aplikasi contoh menggunakan Library Klien Pub/Sub.
Go
Aplikasi contoh menggunakan variabel lingkungan yang Anda tetapkan dalam file app.yaml
(PUBSUB_TOPIC
dan PUBSUB_VERIFICATION_TOKEN
) untuk konfigurasi.
Pesan yang diterima oleh instance ini disimpan dalam slice:
messages []string
Fungsi pushHandler
menerima pesan yang dikirim, memverifikasi token, dan
menambahkan pesan ke slice messages
:
Fungsi publishHandler
menayangkan pesan baru ke topik.
Java
Aplikasi contoh menggunakan nilai yang Anda tetapkan dalam file app.yaml
untuk
mengonfigurasi variabel lingkungan. Pengendali permintaan push menggunakan nilai ini untuk
mengonfirmasi bahwa permintaan berasal dari Pub/Sub dan berasal dari sumber
tepercaya:
String pubsubVerificationToken = System.getenv("PUBSUB_VERIFICATION_TOKEN");
Aplikasi contoh mempertahankan instance database Cloud Datastore untuk menyimpan pesan.
Servlet PubSubPush
menerima pesan yang dikirim dan menambahkannya ke
instance database messageRepository
:
versi 11/17
versi 8
Servlet PubSubPublish
berinteraksi dengan aplikasi web App Engine untuk
memublikasikan pesan baru dan menampilkan pesan yang diterima:
Node.js
Aplikasi contoh menggunakan nilai yang Anda tetapkan dalam file app.yaml
untuk mengonfigurasi variabel lingkungan. Pengendali permintaan push menggunakan nilai ini untuk mengonfirmasi bahwa permintaan berasal dari Pub/Sub dan berasal dari sumber tepercaya:
// 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);
Aplikasi contoh mempertahankan daftar global untuk menyimpan pesan yang diterima oleh instance ini:
// List of all messages received by this instance
var messages = [];
Metode ini menerima pesan yang dikirim dan menambahkannya ke daftar global messages
:
Metode ini berinteraksi dengan aplikasi web App Engine untuk memublikasikan pesan baru dan menampilkan pesan yang diterima:
PHP
Aplikasi contoh menggunakan nilai yang Anda tetapkan dalam file app.yaml
untuk mengonfigurasi variabel lingkungan. Pengendali permintaan push menggunakan nilai ini untuk mengonfirmasi bahwa permintaan berasal dari Pub/Sub dan berasal dari sumber tepercaya:
Aplikasi contoh mempertahankan daftar global untuk menyimpan pesan yang diterima oleh instance ini:
$messages = [];
Metode pull
akan mengambil pesan dari topik yang Anda buat dan menambahkannya ke daftar pesan:
Metode publish
akan memublikasikan pesan baru ke topik:
Python
Aplikasi contoh menggunakan nilai yang Anda tetapkan dalam file app.yaml
untuk mengonfigurasi variabel lingkungan. Pengendali permintaan push menggunakan nilai ini untuk mengonfirmasi bahwa permintaan berasal dari Pub/Sub dan berasal dari sumber tepercaya:
app.config['PUBSUB_VERIFICATION_TOKEN'] = \
os.environ['PUBSUB_VERIFICATION_TOKEN']
app.config['PUBSUB_TOPIC'] = os.environ['PUBSUB_TOPIC']
Aplikasi contoh mempertahankan daftar global untuk menyimpan pesan yang diterima oleh instance ini:
MESSAGES = []
Metode pubsub_push()
menerima pesan yang dikirim dan menambahkannya ke daftar
global MESSAGES
:
Metode index()
berinteraksi dengan aplikasi web App Engine untuk memublikasikan
pesan baru dan menampilkan pesan yang diterima:
Ruby
Aplikasi contoh menggunakan nilai yang Anda tetapkan dalam file app.yaml
untuk mengonfigurasi variabel lingkungan. Pengendali permintaan push menggunakan nilai ini untuk mengonfirmasi bahwa permintaan berasal dari Pub/Sub dan berasal dari sumber tepercaya:
Aplikasi contoh mempertahankan daftar global untuk menyimpan pesan yang diterima oleh instance ini:
Metode ini menerima pesan yang dikirim dan menambahkannya ke daftar
global messages
:
Metode ini berinteraksi dengan aplikasi web App Engine untuk memublikasikan pesan baru dan menampilkan pesan yang diterima:
.NET
versi 6
versi 3.1 dan yang lebih lama
Menjalankan contoh secara lokal
Saat berjalan secara lokal, Anda dapat menggunakan Google Cloud CLI untuk memberikan autentikasi agar dapat menggunakan Google Cloud API. Dengan asumsi Anda menyiapkan lingkungan seperti yang dijelaskan dalam Prasyarat, Anda telah menjalankan perintah gcloud init
, yang menyediakan autentikasi ini.
Go
Tetapkan variabel lingkungan sebelum memulai aplikasi Anda:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-token]
export PUBSUB_TOPIC=[your-topic]
go run pubsub.go
Java
mvn clean package
Tetapkan variabel lingkungan sebelum memulai aplikasi Anda:
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
mvn jetty:run
Node.js
Tetapkan variabel lingkungan sebelum memulai aplikasi Anda:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
npm install
npm start
PHP
Instal dependensi menggunakan Composer:
composer install
Kemudian, tetapkan variabel lingkungan sebelum memulai aplikasi Anda:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
php -S localhost:8080
Python
Instal dependensi, sebaiknya di lingkungan virtual.
Mac OS/Linux
- Buat lingkungan Python yang terisolasi:
python3 -m venv env
source env/bin/activate
- Jika Anda tidak berada dalam direktori yang berisi kode contoh, buka direktori yang berisi kode contoh
hello_world
. Kemudian instal dependensi:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Windows
Gunakan PowerShell untuk menjalankan paket Python Anda.
- Temukan penginstalan PowerShell Anda.
- Klik kanan pintasan PowerShell dan mulai sebagai administrator.
- Buat
lingkungan Python yang terisolasi.
python -m venv env
.\env\Scripts\activate
- Buka direktori project Anda lalu instal dependensi. Jika Anda tidak berada dalam direktori yang berisi kode contoh, buka direktori yang berisi kode contoh
hello_world
. Kemudian, instal dependensi:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Kemudian, tetapkan variabel lingkungan sebelum memulai aplikasi Anda:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
python main.py
Ruby
Instal dependensi:
bundle install
Kemudian, tetapkan variabel lingkungan sebelum memulai aplikasi Anda:
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
.NET
Jalankan perintah berikut dari direktori root aplikasi Anda:
dotnet restore
dotnet run
Di browser web Anda, masukkan http://localhost:5000/. Untuk keluar dari server web, tekan Ctrl+C di jendela terminal Anda.
Menyimulasikan notifikasi push
Aplikasi dapat mengirim pesan secara lokal, tetapi tidak dapat menerima pesan push secara lokal. Namun, Anda dapat menyimulasikan pesan push dengan membuat permintaan HTTP ke endpoint notifikasi push lokal. Contoh ini menyertakan file
sample_message.json
.
Go
Anda dapat menggunakan klien curl
atau httpie
untuk mengirim permintaan POST
HTTP:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Atau
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Respons:
HTTP/1.1 200 OK
Date: Tue, 13 Nov 2018 16:04:18 GMT
Content-Length: 0
Setelah permintaan selesai, Anda dapat memuat ulang localhost:8080
dan melihat pesan dalam daftar pesan yang diterima.
Java
Anda dapat menggunakan klien curl
atau httpie
untuk mengirim permintaan POST
HTTP:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Atau
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Respons:
HTTP/1.1 200 OK
Date: Wed, 26 Apr 2017 00:03:28 GMT
Content-Length: 0
Server: Jetty(9.3.8.v20160314)
Setelah permintaan selesai, Anda dapat memuat ulang localhost:8080
dan melihat
pesan dalam daftar pesan yang diterima.
Node.js
Anda dapat menggunakan klien curl
atau httpie
untuk mengirim permintaan POST
HTTP:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Atau
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Respons:
HTTP/1.1 200 OK
Connection: keep-alive
Date: Mon, 31 Aug 2015 22:19:50 GMT
Transfer-Encoding: chunked
X-Powered-By: Express
Setelah permintaan selesai, Anda dapat memuat ulang localhost:8080
dan melihat pesan dalam daftar pesan yang diterima.
PHP
Anda dapat menggunakan klien curl
atau httpie
untuk mengirim permintaan POST
HTTP:
curl -i --data @sample_message.json "localhost:4567/push-handlers/receive_messages?token=[your-token]"
Atau
http POST ":4567/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Setelah permintaan selesai, Anda dapat memuat ulang localhost:8080
dan melihat pesan dalam daftar pesan yang diterima.
Python
Anda dapat menggunakan klien curl
atau httpie
untuk mengirim permintaan POST
HTTP:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/pubsub/push?token=[your-token]"
Atau
http POST ":8080/pubsub/push?token=[your-token]" < sample_message.json
Respons:
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
Setelah permintaan selesai, Anda dapat memuat ulang localhost:8080
dan melihat pesan dalam daftar pesan yang diterima.
Ruby
Anda dapat menggunakan klien curl
atau httpie
untuk mengirim permintaan POST
HTTP:
curl -i --data @sample_message.json "localhost:4567/push-handlers/receive_messages?token=[your-token]"
Atau
http POST ":4567/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Respons:
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!
Setelah permintaan selesai, Anda dapat memuat ulang localhost:8080
dan melihat
pesan dalam daftar pesan yang diterima.
.NET
Untuk mengirim permintaan HTTP POST
:
Get-Content -Raw .\sample_message.json | Invoke-WebRequest -Uri
http://localhost:5000/Push?token=your-secret-token -Method POST -ContentType
'text/json' -OutFile out.txt
Setelah permintaan selesai, Anda dapat memuat ulang localhost:5000
dan melihat
pesan dalam daftar pesan yang diterima.
Menjalankan di App Engine
Untuk men-deploy aplikasi demo ke App Engine menggunakan alat command line gcloud
:
Go
Jalankan perintah berikut dari direktori tempat file app.yaml
Anda berada:
gcloud app deploy
Java
Untuk men-deploy aplikasi menggunakan Maven, jalankan perintah berikut:
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Ganti PROJECT_ID dengan ID project Google Cloud Anda. Jika
file pom.xml
sudah
menentukan
project ID, Anda tidak perlu menyertakan properti -Dapp.deploy.projectId
dalam
perintah yang dijalankan singkat ini.
Node.js
Jalankan perintah berikut dari direktori tempat file app.yaml
Anda berada:
gcloud app deploy
PHP
Jalankan perintah berikut dari direktori tempat file app.yaml
Anda berada:
gcloud app deploy
Python
Jalankan perintah berikut dari direktori tempat file app.yaml
Anda berada:
gcloud app deploy
Ruby
Jalankan perintah berikut dari direktori tempat file app.yaml
Anda berada:
gcloud app deploy app.yaml
.NET
Jalankan perintah berikut dari direktori tempat file app.yaml
Anda berada:
gcloud app deploy
Anda kini dapat mengakses aplikasi di
https://PROJECT_ID.REGION_ID.r.appspot.com
.
Anda dapat menggunakan formulir ini untuk mengirim pesan, tetapi tidak ada jaminan terkait instance mana dari aplikasi Anda yang akan menerima notifikasi tersebut. Anda dapat mengirim beberapa pesan dan memuat ulang halaman untuk melihat pesan yang diterima.