Notifikasi Pub/Sub

Setelah menyelesaikan transfer Storage Transfer Service, Anda mungkin ingin memulai tugas lain, menangani error yang terjadi selama transfer, atau mencatat log bahwa transfer terjadi. Pub/Sub menyediakan antrean langganan program Anda untuk menerima pesan saat transfer selesai. Hal ini memungkinkan Anda menggunakan kembali kode dan memprogram langkah berikutnya berdasarkan status transfer.

Untuk mengetahui informasi selengkapnya tentang Pub/Sub, baca Apa yang dimaksud dengan Cloud Pub/Sub

Prasyarat

Sebelum Anda dapat menggunakan fitur ini, lakukan hal berikut:

  1. Aktifkan Pub/Sub API untuk project yang menerima notifikasi Pub/Sub.

    Mengaktifkan API

  2. Memiliki topik Pub/Sub yang sudah ada yang ingin Anda kirimi notifikasi.

  3. Dapatkan alamat email akun layanan yang terkait dengan project yang berisi bucket Storage Transfer Service Anda.

    1. Berikan peran IAM kepada akun layanan roles.pubsub.publisher untuk topik Pub/Sub yang diinginkan.

Mengonfigurasi setelan notifikasi

Untuk mengonfigurasi setelan notifikasi Pub/Sub Storage Transfer Service, gunakan Storage Transfer Service transferJobs API, untuk membuat pesan NotificationConfig. Topik akan menerima notifikasi di saluran Pub/Sub yang dikonfigurasi.

Tentukan hal berikut dalam pesan NotificationConfig Anda:

  • Topik Pub/Sub yang notifikasinya akan dikirim
  • Format pesan, "JSON" atau "NONE"
  • Jenis peristiwa yang diinginkan, sesuai dengan TransferOperation.Statuses yang telah selesai:

    • "TRANSFER_OPERATION_SUCCESS"
    • "TRANSFER_OPERATION_FAILED"
    • "TRANSFER_OPERATION_ABORTED"

Berikut adalah contoh pesan NotificationConfig:

{
   ...
   "notificationConfig": {
     "pubsubTopic": "projects/project-id/topics/topic-id",
     "eventTypes": ["TRANSFER_OPERATION_SUCCESS"],
     "payloadFormat": "JSON"
   },
   ...
}

Ganti kode berikut:

  • project-id: Project ID Google Cloud untuk transfer
  • topic-id: Nama topik Pub/Sub

Untuk mengetahui informasi selengkapnya, lihat spesifikasi REST Pub Sub Storage Transfer Service.

Format notifikasi

Notifikasi yang dikirim ke topik Pub/Sub terdiri dari dua bagian:

  • Atribut: Kumpulan key:value pair yang mendeskripsikan peristiwa.
  • Payload: String yang berisi metadata objek yang diubah.

Atribut

Atribut adalah key:value pair yang terdapat dalam semua notifikasi yang dikirim oleh Storage Transfer Service ke topik Pub/Sub Anda. Notifikasi selalu berisi serangkaian key-value pair berikut, terlepas dari payload notifikasi:

Lihat PubsubMessage untuk mengetahui informasi selengkapnya tentang format pesan Pub/Sub.

Nama atribut Contoh Deskripsi
eventType TRANSFER_OPERATION_SUCCESS Status TransferOperation, dari NotificationConfig.EventType
payloadFormat "JSON" Format pesan, "JSON" atau "NONE". Dari NotificationConfig.PayloadFormat.
projectId project-3 ID project host transfer.
transferJobName transferJobs/123 Nama tugas transfer.
transferOperationName transferOperations/456 Nama operasi transfer.

Payload

Payload berisi metadata TransferOperation. Saat membuat konfigurasi notifikasi, Anda menentukan jenis payload yang akan disertakan dalam notifikasi yang dipicu oleh konfigurasi tersebut. Anda dapat menentukan jenis payload berikut:

Jenis payload Deskripsi
TIDAK ADA Tidak ada payload yang disertakan dengan notifikasi.
JSON Payload diformat sebagai respons JSON, dalam application/json.

Contoh konfigurasi notifikasi Pub/Sub

Hanya memberi tahu transfer yang gagal

Untuk menerima pesan hanya untuk transfer yang gagal, kirimkan TransferJob dengan NotificationConfig yang memfilter transfer yang gagal saja:

// REST JSON format:
//   https://cloud.google.com/storage-transfer/docs/create-manage-transfer-program
{
   ...
   "notificationConfig": {
     "pubsubTopic": "projects/project-id/topics/topic-id",
     "eventTypes": ["TRANSFER_OPERATION_FAILED"],
     "payloadFormat: "JSON"
   },
   ...
}

Ganti kode berikut:

  • project-id: Project ID Google Cloud untuk transfer
  • topic-id: Nama topik Pub/Sub

Beri tahu semua transfer yang telah selesai

Untuk memberi tahu semua transfer yang telah selesai, apa pun statusnya, kirimkan TransferJob dengan NotificationConfig tanpa filter EventType:

// REST JSON format:
//   https://cloud.google.com/storage-transfer/docs/create-manage-transfer-program
{
   ...
   "notificationConfig": {
     "pubsubTopic": "projects/project-id/topics/topic-id",
     "payloadFormat: "JSON"
   },
   ...
}

Ganti kode berikut:

  • project-id: Project ID Google Cloud untuk transfer
  • topic-id: Nama topik Pub/Sub

Melakukan tindakan arbitrer pada transfer

Untuk melakukan tindakan arbitrer, buat notifikasi Pub/Sub menggunakan Cloud function dengan pemicu Pub/Sub yang disambungkan dengan cloud function latar belakang. Untuk mengetahui informasi selengkapnya, lihat tutorial Cloud Pub/Sub.

Contoh tindakan arbitrer meliputi:

Jaminan pengiriman

Storage Transfer Service mengirimkan notifikasi untuk setiap TransferOperations yang dimulai setelah Anda menambahkan konfigurasi notifikasi, dan menjamin pengiriman setidaknya satu kali ke Pub/Sub. Pub/Sub juga menawarkan pengiriman minimal satu kali kepada penerima. Artinya, Anda dapat menerima beberapa pesan, dengan beberapa ID, yang mewakili peristiwa Storage Transfer Service yang sama.

Tidak ada jaminan bahwa notifikasi akan dipublikasikan sesuai pesanan Pub/Sub yang diterima.

Jika notifikasi secara konsisten tidak dapat dikirim ke topik Pub/Sub, Storage Transfer Service mungkin akan menghapus notifikasi tersebut setelah 7 hari. Kegagalan pengiriman dapat terjadi saat topik Pub/Sub tidak ada lagi, saat Storage Transfer Service tidak lagi memiliki izin untuk memublikasikan ke topik, atau saat project yang memiliki topik melebihi kuota publikasinya.