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 disubscribe oleh 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 artikel 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
roles.pubsub.publisherkepada akun layanan untuk topik Pub/Sub yang diinginkan.
- Berikan peran IAM
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, sesuai dengan
TransferOperation.Statusesyang 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: ID project Google Cloud 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 untuk transfer yang gagal
Untuk menerima pesan hanya untuk transfer yang gagal, kirimkan TransferJob dengan
NotificationConfig yang memfilter hanya 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: ID project Google Cloud transfertopic-id: Nama topik Pub/Sub
Memberi tahu semua transfer yang selesai
Untuk mengirimkan notifikasi pada semua transfer yang 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: ID project Google Cloud transfertopic-id: Nama topik Pub/Sub
Melakukan tindakan arbitrer pada transfer
Untuk melakukan tindakan arbitrer, Anda membuat notifikasi Pub/Sub menggunakan Cloud Function dengan pemicu Pub/Sub yang dipasangkan dengan Cloud Function latar belakang. Untuk mengetahui informasi selengkapnya, lihat tutorial Cloud Pub/Sub.
Contoh tindakan sewenang-wenang meliputi:
Jaminan pengiriman
Storage Transfer Service mengirimkan notifikasi untuk setiap TransferOperations yang dimulai setelah Anda menambahkan konfigurasi notifikasi, dan menjamin pengiriman setidaknya sekali ke Pub/Sub. Pub/Sub juga menawarkan pengiriman minimal satu kali kepada penerima, yang berarti 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.