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
AWSdanResourcespesifik dari 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 peristiwa, klik Buat notifikasi peristiwa.
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 Identitas Gabungan.
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 konsol Google Cloud , Google Cloud CLI, atau REST API 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 data yang ditransfer untuk setiap tugas.
gcloud
Untuk membuat tugas transfer yang didorong peristiwa menggunakan Google Cloud CLI, gunakan perintah gcloud transfer jobs create dengan flag --event-stream-name:
gcloud transfer jobs create \
s3://S3_BUCKET_NAME \
gs://GCS_BUCKET_NAME \
--source-creds-file=SOURCE_CREDS_FILE \
--event-stream-name=AWS_QUEUE_ARN \
--event-stream-starts=EVENT_STREAM_STARTS \
--event-stream-expires=EVENT_STREAM_EXPIRES
Ganti placeholder dengan nilai sebenarnya:
- S3_BUCKET_NAME: Nama bucket sumber Amazon S3 Anda.
- GCS_BUCKET_NAME: Bucket Cloud Storage tujuan Anda.
- SOURCE_CREDS_FILE: Jalur relatif ke file lokal di komputer Anda yang berisi kredensial AWS Anda. Bergantung pada metode autentikasi Anda, file ini harus berisi ID kunci akses dan kunci rahasia Anda, atau ARN peran Federated Identity Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi akses ke sumber: Amazon S3.
- AWS_QUEUE_ARN: ARN antrean Amazon SQS Anda. Misalnya,
arn:aws:sqs:us-east-1:123456789012:my-queueuntuk region AWS standar atauarn:aws-us-gov:sqs:us-gov-west-1:123456789012:my-gov-queueuntuk region AWS GovCloud. - EVENT_STREAM_STARTS: Kapan mulai memproses peristiwa
menggunakan format tanggal dan waktu %Y-%m-%dT%H:%M:%S%z (misalnya,
2020-04-12T06:42:12+04:00). Jika tidak disetel, tugas akan mulai berjalan dan memproses peristiwa setelah pengiriman perintah buat tugas berhasil. - EVENT_STREAM_EXPIRES: Kapan berhenti memproses peristiwa. Jika tidak disetel, tugas akan berlanjut hingga dihentikan secara manual.
Untuk mengetahui daftar lengkap kolom yang didukung, lihat referensi
gcloud transfer jobs create.
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 region AWS standar atauarn:aws-us-gov:sqs:us-gov-east-1:1234567890:event-queueuntuk region AWS GovCloud.
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.