Dokumen ini menjelaskan cara mengonfigurasi transfer data berbasis peristiwa dari Azure Blob Storage atau Data Lake Storage Gen2 ke Cloud Storage menggunakan Storage Transfer Service. Transfer berbasis peristiwa secara otomatis mentransfer objek baru dan objek yang diperbarui dari container Azure Anda ke Cloud Storage. Penghapusan objek tidak terdeteksi; menghapus objek di sumber tidak akan menghapus objek terkait di bucket tujuan.
Transfer berbasis peristiwa menggunakan Azure Event Grid dan Azure Storage Queues untuk memberi tahu Storage Transfer Service tentang perubahan di container Azure Anda. Saat peristiwa seperti pembuatan blob baru terjadi di container sumber Anda, Azure Event Grid akan mengirimkan notifikasi ke Azure Storage Queue yang dikonfigurasi. Storage Transfer Service terus memantau antrean ini dan memulai transfer berdasarkan peristiwa yang diterima.
Sebelum memulai
Ikuti petunjuk untuk memberikan izin yang diperlukan di bucket Cloud Storage tujuan Anda:
Membuat antrean Azure Storage
Buat antrean Azure Storage yang akan menerima notifikasi dari Azure Event Grid.
- Di portal Azure, buka akun Azure Storage Anda.
- Di menu navigasi kiri, di bagian Data storage, pilih Queues.
- Klik + Queue untuk membuat antrean baru.
- Berikan nama untuk antrean Anda (misalnya,
transfer-notifications) dan klik OK. - Setelah dibuat, ambil alamat untuk Antrean Azure. Alamat biasanya dalam format:
AZURE_STORAGE_ACCOUNT_NAME.queue.core.windows.net/AZURE_QUEUE_NAME.
Mengaktifkan notifikasi peristiwa Azure Blob Storage untuk Antrean Azure
Konfigurasi Azure Event Grid untuk mengirimkan notifikasi peristiwa penyimpanan blob ke antrean Azure yang Anda buat.
- Di portal Azure, buka akun penyimpanan yang berisi container penyimpanan blob yang ingin Anda pantau.
- Di menu navigasi kiri, di bagian Blob service, pilih Events.
- Klik + Event Subscription.
Konfigurasi langganan peristiwa:
- Event Subscription Details:
- Berikan Event Subscription Name (misalnya,
blob-transfer-events). - Berikan System Topic Name (misalnya,
my-blob-events-topic).
- Berikan Event Subscription Name (misalnya,
- Event Types:
- Pilih jenis peristiwa berikut:
- Blob Created
- Directory Created
- Blob Renamed
- Directory Renamed
- Blob Tier Changed
- Pilih jenis peristiwa berikut:
- Endpoint Details:
- Jenis Titik Akhir: Pilih Antrean Penyimpanan.
- Klik Select an endpoint, lalu pilih Antrean Azure yang Anda buat sebelumnya.
Filters:
- Klik Enable subject filtering.
Tambahkan yang berikut sebagai filter Subject begins with untuk membatasi notifikasi ke container tertentu:
/blobServices/default/containers/AZURE_CONTAINER_NAME/Ganti AZURE_CONTAINER_NAME dengan nama container penyimpanan blob Anda.
(Opsional) Untuk memfilter peristiwa untuk blob dengan awalan tertentu dalam container, gunakan:
/blobServices/default/containers/AZURE_CONTAINER_NAME/blobs/BLOB_PREFIX
- Event Subscription Details:
Klik Create.
Menyiapkan akses ke antrean Azure
Storage Transfer Service memerlukan izin untuk mengakses antrean Azure dan membaca pesannya. Anda dapat melakukan autentikasi menggunakan token Shared Access Signature (SAS) atau identitas gabungan.
Token SAS
Ikuti petunjuk untuk melakukan autentikasi dengan token SAS dan sertakan item berikut:
- Allowed services: Blob dan Queue
- Allowed permissions: Read, List, dan Process
Identitas gabungan
Ikuti petunjuk untuk melakukan autentikasi dengan identitas gabungan. Selain memberikan akses aplikasi ke container Azure Storage Anda, Anda juga harus memberikan akses ke antrean Azure. Untuk melakukannya, tambahkan peran Storage Queue Data Message Processor ke aplikasi untuk antrean Azure.
Membuat tugas transfer dengan aliran peristiwa
Setelah antrean Azure dan notifikasi peristiwa dikonfigurasi, buat tugas Storage Transfer Service dengan aliran peristiwa.
Setelah dibuat, tugas transfer akan mulai berjalan dan pemroses peristiwa akan menunggu notifikasi di antrean Azure. Halaman detail tugas menampilkan satu operasi setiap jam, dan menyertakan detail data yang ditransfer untuk setiap tugas.
Google Cloud Konsol
Buka halaman Create transfer job di Google Cloud konsol.
Untuk Source type, pilih Azure Blob Storage or Data Lake Storage Gen2.
Untuk Destination type, pilih Google Cloud Storage.
Untuk Scheduling mode, pilih Event-driven.
Di kolom Event stream name, masukkan alamat antrean Azure Anda.
Selesaikan langkah-langkah yang tersisa seperti biasa untuk membuat tugas transfer, termasuk detail sumber dan tujuan, serta autentikasi.
Secara opsional, masukkan waktu mulai dan berakhir untuk transfer. Jika Anda tidak menentukan waktu, transfer akan segera dimulai dan akan berjalan hingga dihentikan secara manual.
Google Cloud CLI
Untuk membuat tugas transfer berbasis peristiwa menggunakan gcloud CLI, gunakan perintah gcloud transfer jobs create dengan flag --event-stream-name:
gcloud transfer jobs create \
https://AZURE_STORAGE_ACCOUNT_NAME.blob.core.windows.net/AZURE_CONTAINER_NAME \
gs://DESTINATION_BUCKET \
--source-creds-file=SOURCE_CREDS_FILE \
--event-stream-name=AZURE_STORAGE_ACCOUNT_NAME.queue.core.windows.net/AZURE_QUEUE_NAME \
--event-stream-starts=EVENT_STREAM_STARTS \
--event-stream-expires=EVENT_STREAM_EXPIRES
Ganti placeholder dengan nilai sebenarnya:
- AZURE_STORAGE_ACCOUNT_NAME dan AZURE_CONTAINER_NAME: Nama akun dan nama container Azure Blob Storage Anda.
- DESTINATION_BUCKET: Bucket Cloud Storage tujuan Anda.
- SOURCE_CREDS_FILE: Jalur relatif ke file lokal di komputer Anda yang berisi token SAS atau konfigurasi identitas gabungan.
- AZURE_QUEUE_NAME: Nama Antrean Azure Anda (misalnya,
my-queue). - EVENT_STREAM_STARTS: Kapan harus mulai memproses peristiwa
menggunakan format tanggalwaktu %Y-%m-%dT%H:%M:%S%z (misalnya,
2020-04-12T06:42:12+04:00). Jika tidak ditetapkan, tugas akan mulai berjalan dan memproses peristiwa setelah pengiriman perintah pembuatan tugas berhasil. - EVENT_STREAM_EXPIRES: Kapan harus berhenti memproses peristiwa. Jika tidak ditetapkan, tugas akan terus berjalan hingga dihentikan secara manual.
Untuk mengetahui daftar lengkap kolom yang didukung, lihat referensi
gcloud transfer jobs create.
REST API
Tentukan tugas transfer berbasis peristiwa menggunakan TransferJob proto:
{
"description": "Event-driven Azure to Cloud Storage transfer",
"project_id": "PROJECT_ID",
"transfer_spec": {
"azure_blob_storage_data_source": {
"storage_account": "AZURE_STORAGE_ACCOUNT_NAME",
"container": "AZURE_CONTAINER_NAME",
"federated_identity_config": {
"client_id": "CLIENT_ID",
"tenant_id": "TENANT_ID"
}
},
"gcs_data_sink": {
"bucket_name": "DESTINATION_BUCKET"
},
"object_conditions": {
// optional object conditions (include_prefixes, etc)
},
"transfer_options": {}
},
"event_stream": {
"name": "AZURE_STORAGE_ACCOUNT_NAME.queue.core.windows.net/AZURE_QUEUE_NAME",
"event_stream_start_time": EVENT_STREAM_START_TIME,
"event_stream_expiration_time": EVENT_STREAM_EXPIRATION_TIME
},
"status": "ENABLED"
}
Kolom waktu mulai dan waktu habis masa berlaku bersifat opsional:
event_stream_start_time: Waktu untuk mulai memproses peristiwa dalam formatYYYY-MM-DDTHH:MM:SSZ. Jika tidak ditentukan, pemroses akan segera dimulai.event_stream_expiration_time: Waktu saat pemroses aliran peristiwa berakhir dalam formatYYYY-MM-DDTHH:MM:SSZ. Jika tidak ditentukan, pemroses akan terus berjalan hingga tugas transfer dinonaktifkan atau dihapus.