Menambahkan tugas App Engine ke antrean Cloud Tasks
Dengan Cloud Tasks, Anda dapat mengirimkan tugas asinkron ke layanan App Engine untuk memproses workload latar belakang. Dalam panduan memulai ini, Anda akan menggunakan Cloud Tasks API untuk membuat dan menambahkan tugas App Engine ke antrean Cloud Tasks.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Memilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project apa pun yang perannya telah diberikan kepada Anda.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Pastikan penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan Cloud Resource Manager dan Cloud Tasks API, jika belum diaktifkan:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukannya jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Memilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project apa pun yang perannya telah diberikan kepada Anda.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Pastikan penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan Cloud Resource Manager dan Cloud Tasks API, jika belum diaktifkan:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukannya jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
- Akun layanan default App Engine dibuat secara otomatis saat Anda menggunakan App Engine. Anda dapat menggunakan akun layanan ini saat mencoba panduan memulai cepat ini. Namun, bergantung pada konfigurasi kebijakan organisasi Anda, akun layanan default mungkin tidak otomatis diberi peran
Editordi project Anda. Jika demikian, Anda harus memberikan peran berikut kepada akun layanan:- Artifact Registry Administrator (
roles/artifactregistry.admin) - Penulis Create-on-Push Artifact Registry (
roles/artifactregistry.createOnPushWriter) - Compute Admin (
roles/compute.admin) - Logs Writer (
roles/logging.logWriter) - Storage Object Viewer (
roles/storage.objectViewer)
- Artifact Registry Administrator (
Menambahkan aplikasi App Engine
Saat menargetkan tugas App Engine, dan sebelum dapat men-deploy aplikasi ke lingkungan standar App Engine, Anda harus menambahkan aplikasi App Engine ke project Anda.
Di konsol Google Cloud , buka halaman App Engine.
Pada dialog Welcome to App Engine, lakukan salah satu hal berikut:
Jika Anda telah membuat aplikasi App Engine dan pesan Your App Engine application has been created ditampilkan, Anda dapat melewati langkah-langkah yang tersisa di bagian ini dan melanjutkan dengan langkah-langkah di bagian Menginstal dan men-deploy contoh.
atau
Jika Anda belum membuat aplikasi App Engine, klik Create application dan lanjutkan dengan langkah-langkah selanjutnya di bagian ini.
Pilih region untuk aplikasi Anda dan catat region tersebut.
Perhatikan bahwa
europe-westdanus-centralmasing-masing dipanggil sebagaieurope-west1danus-central1dalam perintah Cloud Tasks.Jangan pilih akun layanan; akun layanan App Engine default akan digunakan.
Klik Berikutnya.
Aplikasi dikonfigurasi dan dibuat. Proses ini dapat memakan waktu beberapa menit.
Jangan download Cloud SDK; sebagai gantinya, klik I'll do this later.
Anda akan melihat pesan Your App Engine application has been created.
Menginstal dan men-deploy contoh
Contoh Node.js yang digunakan dalam panduan memulai ini terdiri dari dua file:
createTask.js dijalankan secara lokal sebagai alat command line untuk membuat dan menambahkan tugas ke
antrean Tugas; server.js di-deploy di App Engine sebagai
layanan pekerja untuk memproses tugas.
Di terminal, clone repositori aplikasi contoh ke komputer lokal Anda.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.gitBuka direktori yang berisi kode contoh.
cd nodejs-docs-samples/cloud-tasks/snippetsInstal semua dependensi menggunakan pengelola paket Node.js.
Anda dapat menggunakan NPM:
npm installAtau, Anda dapat menggunakan Yarn:
yarn installDeploy layanan pekerja (
server.js) ke lingkungan standar App Engine.gcloud app deploy app.yamlPastikan aplikasi yang berisi layanan sedang berjalan.
gcloud app browseDi browser Anda, buka link yang diberikan. Contoh:
https://PROJECT_ID.uc.r.appspot.com/Anda akan melihat
Hello, World!ditampilkan.
Membuat antrean Cloud Tasks
Gunakan perintah gcloud tasks queues create
untuk membuat antrean di lingkungan yang telah Anda siapkan.
Di terminal, buat antrean yang mencatat semua operasi.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGIONGanti kode berikut:
QUEUE_NAME: nama untuk antrean Cloud Tasks AndaREGION: region tempat Anda men-deploy aplikasi
Tunggu hingga antrean diinisialisasi, lalu pastikan antrean berhasil dibuat.
gcloud tasks queues describe QUEUE_NAME \ --location=REGIONOutputnya akan mirip dengan berikut ini:
name: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_NAME rateLimits: maxBurstSize: 100 maxConcurrentDispatches: 1000 maxDispatchesPerSecond: 500.0 retryConfig: maxAttempts: 100 maxBackoff: 3600s maxDoublings: 16 minBackoff: 0.100s state: RUNNING
Menambahkan tugas ke antrean Cloud Tasks
Buat tugas, tambahkan ke antrean yang Anda buat, dan kirimkan tugas tersebut ke layanan worker.
Tetapkan variabel lingkungan berikut. Klien menggunakan informasi ini untuk membuat permintaan.
export PROJECT_ID=PROJECT_ID export LOCATION_ID=REGION export QUEUE_ID=QUEUE_NAMEBuat tugas dengan payload
hellodan tambahkan tugas tersebut ke antrean Anda. Payload dapat berupa data apa pun dari permintaan yang diperlukan layanan pekerja untuk memproses tugas.node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID helloPastikan tugas telah dijalankan dengan menampilkan log layanan worker.
gcloud app logs readLog akan terlihat seperti berikut:
2024-06-20 15:00:00 default[20240620t143852] "POST /log_payload HTTP/1.1" 200 2024-06-20 15:00:00 default[20240620t143852] App listening on port 8081 2024-06-20 15:00:00 default[20240620t143852] Press Ctrl+C to quit. 2024-06-20 15:00:00 default[20240620t143852] Received task with payload: hello
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, hapus project Google Cloud yang berisi resource tersebut.
Menghapus Google Cloud project:
gcloud projects delete PROJECT_ID
Atau, Anda dapat menghapus resource yang Anda buat:
Hapus antrean Cloud Tasks:
gcloud tasks queues delete QUEUE_NAME \ --location=REGION