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 akan ditampilkan.
Region AWS standar
{ "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" } ] }
Region AWS GovCloud
{ "Version": "2008-10-17", "Id": "\_\_default\_policy\_ID", "Statement": [ { "Sid": "\_\_owner\_statement", "Effect": "Allow", "Principal": { "AWS": "01234567890" }, "Action": [ "SQS:*" ], "Resource": "arn:aws-us-gov:sqs:us-gov-west-1:01234567890:test" } ] }
Salin nilai
AWSdanResource. ID ini unik untuk setiap project.Tempelkan nilai spesifik
AWSdanResourcedari langkah sebelumnya ke dalam cuplikan JSON berikut:Region AWS standar
{ "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": "arn:aws:s3:::S3_BUCKET_NAME" } } } ] }
Region AWS GovCloud
{ "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": "arn:aws-us-gov:s3:::S3_BUCKET_NAME" } } } ] }
Ganti S3_BUCKET_NAME dengan nama bucket sumber S3.
Salin cuplikan JSON yang telah selesai ini dan gunakan untuk menggantikan JSON yang ditampilkan di bagian Kebijakan akses.
Klik Create queue.
Setelah selesai, catat Amazon Resource Name (ARN) antrean.
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 dan 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.
Saat mengikuti petunjuk, gunakan JSON berikut saat diarahkan untuk menentukan peran khusus atau kebijakan kepercayaan khusus:
Region AWS standar
{ "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 berikut:
arn:aws:iam::AWS_ACCOUNT:role/AWS_ROLE_NAME
Region AWS GovCloud
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:DeleteMessage", "sqs:ChangeMessageVisibility", "sqs:ReceiveMessage", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws-us-gov:s3:::S3_BUCKET_NAME", "arn:aws-us-gov: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 berikut:
arn:aws-us-gov:iam::AWS_ACCOUNT:role/AWS_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 salah satu format berikut:
- Untuk region AWS standar:
arn:aws:sqs:AWS_REGION:AWS_ACCOUNT:AWS_QUEUE_NAME - Untuk region AWS GovCloud:
arn:aws-us-gov:sqs:AWS_REGION:AWS_ACCOUNT:AWS_QUEUE_NAME
- Untuk region AWS standar:
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 Create.
Setelah dibuat, tugas transfer 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:
{ "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "S3_BUCKET_NAME", "roleArn": "AWS_ROLE_ARN" }, "gcsDataSink": { "bucketName": "GCS_BUCKET_NAME" } }, "eventStream": { "name": "AWS_QUEUE_ARN", "eventStreamStartTime": "2022-12-02T01:00:00+00:00", "eventStreamExpirationTime": "2023-01-31T01:00:00+00:00" } }
Placeholder dalam JSON sebelumnya menggunakan nilai berikut:
- DESCRIPTION adalah deskripsi tugas transfer.
- PROJECT_ID adalah ID project Google Cloud tempat tugas transfer dibuat.
- S3_BUCKET_NAME adalah nama bucket sumber Amazon S3.
- AWS_ROLE_ARN adalah ARN peran Federated Identity yang Anda buat. Misalnya,
arn:aws:iam::1234567891011:role/aws-role-nameuntuk region AWS standar atauarn:aws-us-gov:iam::1234567891011:role/aws-role-nameuntuk region AWS GovCloud. - GCS_BUCKET_NAME adalah nama bucket tujuan Cloud Storage.
- AWS_QUEUE_ARN adalah ARN antrean SQS. Misalnya,
arn:aws:sqs:us-east-1:1234567891011:s3-notification-queueuntuk wilayah AWS standar atauarn:aws-us-gov:sqs:us-gov-east-1:1234567890:event-queueuntuk wilayah AWS GovCloud.
eventStreamStartTime dan eventStreamExpirationTime bersifat opsional.
Jika waktu mulai tidak ditentukan, transfer akan dimulai segera; 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.