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:
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 Layanan Transfer Penyimpanan Anda.
- Berikan peran IAM
roles.pubsub.publisher
kepada 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, 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 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, 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 transfertopic-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 transfertopic-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.