Menambahkan tugas App Engine ke antrean Cloud Tasks

Panduan memulai ini menunjukkan cara menambahkan tugas App Engine ke antrean Cloud Tasks menggunakan Cloud Tasks API.

Sebelum memulai

  1. Login keakun Anda. Google Cloud 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.
  2. Instal Google Cloud CLI.

  3. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus terlebih dahulu login ke gcloud CLI dengan identitas gabungan Anda.

  4. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  5. 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 mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih Google Cloud project yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama Google Cloud project Anda.

  6. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  7. Aktifkan Cloud Resource Manager dan Cloud Tasks API:

    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 Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
  8. Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:

    gcloud auth application-default login

    Anda tidak perlu melakukan hal ini jika menggunakan Cloud Shell.

    Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, pastikan Anda telah login ke gcloud CLI dengan identitas gabungan Anda.

  9. Instal Google Cloud CLI.

  10. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus terlebih dahulu login ke gcloud CLI dengan identitas gabungan Anda.

  11. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  12. 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 mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih Google Cloud project yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama Google Cloud project Anda.

  13. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  14. Aktifkan Cloud Resource Manager dan Cloud Tasks API:

    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 Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
  15. Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:

    gcloud auth application-default login

    Anda tidak perlu melakukan hal ini jika menggunakan Cloud Shell.

    Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, pastikan Anda telah login ke gcloud CLI dengan identitas gabungan Anda.

  16. Akun layanan default App Engine otomatis dibuat saat Anda menggunakan App Engine. Anda dapat menggunakan akun layanan ini saat mencoba panduan memulai ini. Namun, bergantung pada konfigurasi kebijakan organisasi Anda, akun layanan default mungkin tidak otomatis diberi peran Editor di project Anda. Jika demikian, Anda harus memberikan peran berikut ke akun layanan :
    1. Administrator Artifact Registry (roles/artifactregistry.admin)
    2. Penulis Buat-saat-Push Artifact Registry (roles/artifactregistry.createOnPushWriter)
    3. Compute Admin (roles/compute.admin)
    4. Logs Writer (roles/logging.logWriter)
    5. Storage Object Viewer (roles/storage.objectViewer)

Menambahkan aplikasi App Engine

Saat Anda menargetkan tugas App Engine, dan sebelum dapat men-deploy aplikasi ke lingkungan standar App Engine, Anda harus menambahkan aplikasi App Engine ke project.

  1. Di Google Cloud konsol, buka halaman App Engine.

    Buka App Engine

  2. Dalam dialog Welcome to App Engine, lakukan salah satu tindakan 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 yang tersisa di bagian ini.

  3. Pilih region untuk aplikasi Anda dan catat.

    Perhatikan bahwa europe-west dan us-central masing-masing disebut europe-west1 dan us-central1 dalam perintah Cloud Tasks.

  4. Jangan pilih akun layanan; akun layanan App Engine default akan digunakan.

  5. Klik Next.

    Aplikasi akan dikonfigurasi dan dibuat. Proses ini dapat memerlukan waktu beberapa menit.

  6. Jangan download Cloud SDK; 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.

  1. Di terminal, clone repositori aplikasi contoh ke komputer lokal Anda.

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
    
  2. Buka direktori yang berisi kode contoh.

    cd nodejs-docs-samples/cloud-tasks/snippets
    
  3. Instal semua dependensi menggunakan pengelola paket Node.js.

    Anda dapat menggunakan NPM:

    npm install
    

    Atau, Anda dapat menggunakan Yarn:

    yarn install
    
  4. Deploy layanan pekerja (server.js) ke lingkungan standar App Engine.

    gcloud app deploy app.yaml
    
  5. Pastikan aplikasi yang berisi layanan sedang berjalan.

    gcloud app browse
    
  6. Di browser, buka link yang disediakan. Contoh:

    https://PROJECT_ID.uc.r.appspot.com/
    

    Anda akan melihat Hello, World! ditampilkan.

Membuat antrean Cloud Tasks

Gunakan gcloud tasks queues create perintah untuk membuat antrean di lingkungan yang telah Anda siapkan.

  1. Di terminal, buat antrean yang mencatat semua operasi.

    gcloud tasks queues create QUEUE_NAME \
        --log-sampling-ratio=1.0 \
        --location=REGION
    

    Ganti kode berikut:

    • QUEUE_NAME: nama untuk antrean Cloud Tasks Anda
    • REGION: region tempat Anda men-deploy aplikasi
  2. Tunggu hingga antrean diinisialisasi, lalu pastikan antrean berhasil dibuat.

    gcloud tasks queues describe QUEUE_NAME \
        --location=REGION
    

    Outputnya 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 kirim tugas tersebut ke layanan pekerja.

  1. Tetapkan variabel lingkungan berikut. Klien menggunakan informasi ini untuk membuat permintaan.

    export PROJECT_ID=PROJECT_ID
    export LOCATION_ID=REGION
    export QUEUE_ID=QUEUE_NAME
    
  2. Buat tugas dengan payload hello dan 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 hello
    
  3. Pastikan tugas dijalankan dengan menampilkan log layanan pekerja.

    gcloud app logs read
    

    Log akan terlihat mirip dengan berikut ini:

    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 Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, hapus project yang berisi resource tersebut. Google Cloud Google Cloud

Hapus a Google Cloud project:

gcloud projects delete PROJECT_ID

Atau, Anda dapat menghapus resource yang Anda buat:

  1. Hapus antrean Cloud Tasks:

    gcloud tasks queues delete QUEUE_NAME \
        --location=REGION
    
  2. Nonaktifkan aplikasi App Engine.

Langkah berikutnya