Notifikasi Pub/Sub

Setelah menyelesaikan transfer Storage Transfer Service, Anda mungkin ingin memulai tugas lain, menangani error yang terjadi selama transfer, atau mencatat bahwa transfer telah terjadi. Pub/Sub menyediakan antrean yang dilanggani 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, lihat 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 Layanan Transfer Penyimpanan Anda.

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

Mengonfigurasi setelan notifikasi

Untuk mengonfigurasi setelan notifikasi Pub/Sub Storage Transfer Service, Anda menggunakan 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 akan dikirimi notifikasi
  • Format pesan, "JSON" atau "NONE"
  • Jenis peristiwa yang diinginkan, yang 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 dari 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 untuk transfer yang gagal

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

// 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 dari transfer
  • topic-id: Nama topik Pub/Sub

Memberi tahu tentang semua transfer yang telah selesai

Untuk memberi tahu semua transfer yang telah selesai, terlepas dari 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 dari transfer
  • topic-id: Nama topik Pub/Sub

Melakukan tindakan arbitrer pada transfer

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

Contoh tindakan sewenang-wenang meliputi:

Jaminan pengiriman

Storage Transfer Service mengirimkan notifikasi untuk 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 tidak dapat dikirim ke topik Pub/Sub secara konsisten, Storage Transfer Service dapat menghapus notifikasi tersebut setelah 7 hari. Kegagalan pengiriman dapat terjadi saat topik Pub/Sub tidak ada lagi, Storage Transfer Service tidak lagi memiliki izin untuk memublikasikan ke topik, atau saat project yang memiliki topik melebihi kuota publikasinya.