Storage Transfer Service dapat memproses notifikasi peristiwa di AWS untuk secara otomatis mentransfer data yang telah ditambahkan atau diperbarui di lokasi sumber 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.
Membuat antrean SQS
Di konsol AWS, buka halaman Simple Queue Service.
Klik Buat antrean.
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
AWS
danResource
tertentu 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 Buat antrean.
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 Properties.
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 bagian 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, catat 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 dan masukkan informasi yang diminta, yang Anda buat dan catat di bagian sebelumnya.
Masukkan ARN antrean Amazon SQS yang Anda buat sebelumnya. Kode ini menggunakan format berikut:
arn:aws:sqs:us-east-1:1234567890:event-queue"
Secara opsional, tentukan filter, 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 Buat transfer.
Klik Create.
Setelah dibuat, tugas transfer akan mulai berjalan dan pemroses peristiwa menunggu notifikasi di antrean SQS. Halaman detail tugas menampilkan satu operasi setiap jam, dan menyertakan detail tentang data yang ditransfer untuk setiap tugas.
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 dihilangkan, transfer akan langsung dimulai; jika waktu
akhir dihilangkan, 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 Storage Transfer Service Go API.
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 Storage Transfer Service Java API.
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 Storage Transfer Service Node.js API.
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 Storage Transfer Service Python API.
Untuk melakukan autentikasi ke Storage Transfer Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.