Storage Transfer Service dapat memproses notifikasi peristiwa di AWS untuk mentransfer data yang telah ditambahkan atau diperbarui di lokasi sumber secara otomatis, ke bucket Cloud Storage. Pelajari lebih lanjut manfaat transfer berbasis peristiwa.
Transfer berbasis peristiwa memproses Notifikasi Peristiwa Amazon S3 yang dikirim ke Amazon SQS untuk mengetahui kapan objek di bucket sumber telah diubah atau ditambahkan. Penghapusan objek tidak terdeteksi; menghapus objek di sumber tidak akan menghapus objek terkait di bucket tujuan.
Transfer berbasis peristiwa selalu menggunakan bucket Cloud Storage sebagai tujuan.
Sebelum memulai
Ikuti petunjuk untuk memberikan izin yang diperlukan di bucket Cloud Storage tujuan Anda:
Membuat antrean SQS
Di konsol AWS, buka halaman Simple Queue Service.
Klik Create queue.
Masukkan Nama untuk antrean ini.
Di bagian Kebijakan akses, pilih Lanjutan. Objek JSON ditampilkan:
{ "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "__owner_statement", "Effect": "Allow", "Principal": { "AWS": "01234567890" }, "Action": [ "SQS:*" ], "Resource": "arn:aws:sqs:us-west-2:01234567890:test" } ] }
Nilai
AWS
danResource
bersifat unik untuk setiap project.Salin nilai spesifik
AWS
danResource
dari JSON yang ditampilkan ke dalam cuplikan JSON berikut:{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "RESOURCE", "Condition": { "StringEquals": { "aws:SourceAccount": "AWS" }, "ArnLike": { "aws:SourceArn": "S3_BUCKET_ARN" } } } ] }
Nilai placeholder dalam JSON sebelumnya menggunakan format berikut:
- AWS adalah nilai numerik yang mewakili project Amazon Web Services Anda. Contoh,
"aws:SourceAccount": "1234567890"
. - RESOURCE adalah Amazon Resource Number (ARN) yang mengidentifikasi antrean ini. Contoh,
"Resource": "arn:aws:sqs:us-west-2:01234567890:test"
. - S3_BUCKET_ARN adalah ARN yang mengidentifikasi bucket sumber. Contoh,
"aws:SourceArn": "arn:aws:s3:::example-aws-bucket"
. Anda dapat menemukan ARN bucket dari tab Properties di halaman detail bucket di konsol AWS.
- AWS adalah nilai numerik yang mewakili project Amazon Web Services Anda. Contoh,
Ganti JSON yang ditampilkan di bagian Kebijakan akses dengan JSON yang diperbarui di atas.
Klik Create queue.
Setelah selesai, catat Amazon Resource Name (ARN) antrean. ARN memiliki format berikut:
arn:aws:sqs:us-east-1:1234567890:event-queue"
Mengaktifkan notifikasi di bucket S3
Di konsol AWS, buka halaman S3.
Di daftar Buckets, pilih bucket sumber Anda.
Pilih tab Properti.
Di bagian Notifikasi acara, klik Buat notifikasi acara.
Tentukan nama untuk peristiwa ini.
Di bagian Jenis peristiwa, pilih Semua peristiwa pembuatan objek.
Sebagai Tujuan, pilih antrean SQS, lalu pilih antrean yang Anda buat untuk transfer ini.
Klik Simpan perubahan.
Konfigurasikan izin
Ikuti petunjuk di Mengonfigurasi akses ke sumber: Amazon S3 untuk membuat ID kunci akses dan kunci rahasia, atau peran Federated Identity.
Ganti JSON izin kustom dengan yang berikut:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:DeleteMessage", "sqs:ChangeMessageVisibility", "sqs:ReceiveMessage", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::S3_BUCKET_NAME", "arn:aws:s3:::S3_BUCKET_NAME/*", "AWS_QUEUE_ARN" ] } ] }
Setelah dibuat, perhatikan informasi berikut:
- Untuk pengguna, catat ID kunci akses dan kunci rahasia.
- Untuk peran Federated Identity, catat Amazon Resource Name (ARN),
yang memiliki format
arn:aws:iam::AWS_ACCOUNT:role/ROLE_NAME
.
Membuat tugas transfer
Anda dapat menggunakan REST API atau konsol Google Cloud untuk membuat tugas transfer berbasis peristiwa.
Cloud Console
Buka halaman Create transfer job di konsol Google Cloud .
Pilih Amazon S3 sebagai jenis sumber, dan Cloud Storage sebagai tujuan.
Sebagai Scheduling mode, pilih Event-driven, lalu klik Next step.
Masukkan nama bucket S3 Anda. Nama bucket adalah nama seperti yang muncul di AWS Management Console. Contoh,
my-aws-bucket
.Pilih metode autentikasi Anda dan masukkan informasi yang diminta, yang Anda buat dan catat di bagian sebelumnya.
Masukkan ARN antrean Amazon SQS yang Anda buat sebelumnya. Menggunakan format berikut:
arn:aws:sqs:us-east-1:1234567890:event-queue"
Secara opsional, tentukan filter apa pun, lalu klik Langkah berikutnya.
Pilih bucket Cloud Storage tujuan dan, secara opsional, jalur.
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.
Tentukan opsi transfer. Informasi selengkapnya tersedia di halaman Membuat transfer.
Klik Buat.
Setelah dibuat, tugas transfer mulai berjalan dan pemroses peristiwa menunggu notifikasi di antrean SQS. Halaman detail pekerjaan menampilkan satu operasi setiap jam, dan menyertakan detail tentang data yang ditransfer untuk setiap pekerjaan.
REST
Untuk membuat transfer berbasis peristiwa menggunakan REST API, kirim objek JSON berikut ke endpoint transferJobs.create:
transfer_job { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec" { "awsS3DataSource" { "bucketName": "AWS_SOURCE_NAME", "roleArn": "arn:aws:iam::1234567891011:role/role_for_federated_auth" }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } "eventStream" { "name": "arn:aws:sqs:us-east-1:1234567891011:s3-notification-queue", "eventStreamStartTime": "2022-12-02T01:00:00+00:00", "eventStreamExpirationTime": "2023-01-31T01:00:00+00:00" } }
eventStreamStartTime
dan eventStreamExpirationTime
bersifat opsional.
Jika waktu mulai tidak ditentukan, transfer akan segera dimulai; jika waktu
berakhir tidak ditentukan, transfer akan berlanjut hingga dihentikan secara manual.
Library klien
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Storage Transfer Service, lihat library klien Storage Transfer Service. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Storage Transfer Service.
Untuk melakukan autentikasi ke Storage Transfer Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Storage Transfer Service, lihat library klien Storage Transfer Service. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Storage Transfer Service.
Untuk melakukan autentikasi ke Storage Transfer Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Storage Transfer Service, lihat library klien Storage Transfer Service. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Storage Transfer Service.
Untuk melakukan autentikasi ke Storage Transfer Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Storage Transfer Service, lihat library klien Storage Transfer Service. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Storage Transfer Service.
Untuk melakukan autentikasi ke Storage Transfer Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.