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:
Aktifkan Pub/Sub API untuk project yang menerima notifikasi Pub/Sub.
Memiliki topik Pub/Sub yang sudah ada yang ingin Anda kirimi notifikasi.
Dapatkan alamat email akun layanan yang terkait dengan project yang berisi bucket Storage Transfer Service Anda.
- Berikan peran IAM kepada akun layanan
roles.pubsub.publisher
untuk topik Pub/Sub yang diinginkan.
- Berikan peran IAM kepada akun layanan
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 transfertopic-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 transfertopic-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 transfertopic-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.