Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS::DynamoDB::GlobalTable
Sumber daya AWS::DynamoDB::GlobalTable
memungkinkan Anda membuat dan mengelola Tabel global versi 2019.11.21. Sumber daya ini tidak dapat digunakan untuk membuat atau mengelola Tabel global versi 2017.11.29. Untuk informasi selengkapnya, lihat Tabel global.
penting
Anda tidak dapat mengubah sumber daya jenis AWS::DynamoDB::Table
menjadi sumber daya jenis AWS::DynamoDB::GlobalTable
dengan mengubah jenisnya dalam templat anda. Melakukannya dapat mengakibatkan penghapusan tabel DynamoDB Anda.
Sebagai gantinya, Anda dapat menggunakan GlobalTable sumber daya untuk membuat tabel baru di satu Wilayah. Ini akan ditagih sama dengan tabel Wilayah tunggal. Jika nanti Anda memperbarui tumpukan untuk menambahkan Wilayah lain maka harga Tabel Global akan berlaku.
Anda harus mengetahui perilaku berikut saat bekerja dengan tabel global DynamoDB.
-
IAM Principal yang menjalankan operasi tumpukan harus memiliki izin yang tercantum di bawah ini di semua wilayah di mana Anda berencana untuk memiliki global tabel replika. Izin IAM Principal tidak boleh memiliki batasan berdasarkan alamat sumber IP. Beberapa tabel global operasi (misalnya, menambahkan replika) bersifat tidak sinkron, dan mengharuskan agar IAM Principal valid hingga operasi tersebut selesai. Anda tidak boleh menghapus Principal (peran pengguna atau IAM) sampai CloudFormation selesai memperbarui tumpukan Anda.
-
dynamodb:CreateTable
-
dynamodb:UpdateTable
-
dynamodb:DeleteTable
-
dynamodb:DescribeContinuousBackups
-
dynamodb:DescribeContributorInsights
-
dynamodb:DescribeTable
-
dynamodb:DescribeTableReplicaAutoScaling
-
dynamodb:DescribeTimeToLive
-
dynamodb:ListTables
-
dynamodb:UpdateTimeToLive
-
dynamodb:UpdateContributorInsights
-
dynamodb:UpdateContinuousBackups
-
dynamodb:ListTagsOfResource
-
dynamodb:TagResource
-
dynamodb:UntagResource
-
dynamodb:BatchWriteItem
-
dynamodb:CreateTableReplica
-
dynamodb:DeleteItem
-
dynamodb:DeleteTableReplica
-
dynamodb:DisableKinesisStreamingDestination
-
dynamodb:EnableKinesisStreamingDestination
-
dynamodb:GetItem
-
dynamodb:PutItem
-
dynamodb:Query
-
dynamodb:Scan
-
dynamodb:UpdateItem
-
dynamodb:DescribeTableReplicaAutoScaling
-
dynamodb:UpdateTableReplicaAutoScaling
-
iam:CreateServiceLinkedRole
-
kms:CreateGrant
-
kms:DescribeKey
-
application-autoscaling:DeleteScalingPolicy
-
application-autoscaling:DeleteScheduledAction
-
application-autoscaling:DeregisterScalableTarget
-
application-autoscaling:DescribeScalingPolicies
-
application-autoscaling:DescribeScalableTargets
-
application-autoscaling:PutScalingPolicy
-
application-autoscaling:PutScheduledAction
-
application-autoscaling:RegisterScalableTarget
-
-
Saat menggunakan mode penagihan yang disediakan, CloudFormation akan membuat kebijakan penskalaan otomatis pada setiap replika Anda untuk mengontrol kapasitas penulisannya. Anda harus mengonfigurasi kebijakan ini menggunakan
WriteProvisionedThroughputSettings
properti. CloudFormation akan memastikan bahwa semua replika memiliki properti penskalaan otomatis kapasitas tulis yang sama. Anda tidak dapat langsung menentukan nilai untuk kapasitas tulis untuk tabel global. -
Jika tabel Anda menggunakan kapasitas yang disediakan, Anda harus mengonfigurasi penskalaan otomatis secara langsung di sumber daya
AWS::DynamoDB::GlobalTable
. Anda tidak boleh mengonfigurasi kebijakan penskalaan otomatis tambahan pada salah satu replika tabel atau indeks sekunder global, baik melalui API atau melaluiAWS::ApplicationAutoScaling::ScalableTarget
atauAWS::ApplicationAutoScaling::ScalingPolicy
. Melakukan hal tersebut dapat mengakibatkan perilaku yang tidak terduga dan tidak didukung. -
Dalam AWS CloudFormation, setiap tabel global dikendalikan oleh satu tumpukan, dalam satu wilayah, terlepas dari jumlah replika. Ketika Anda menerapkan template Anda, CloudFormation akan membuat/memperbarui semua replika sebagai bagian dari operasi tumpukan tunggal. Anda tidak boleh men-deploy sumber daya
AWS::DynamoDB::GlobalTable
yang sama di beberapa wilayah. Melakukan hal tersebut akan mengakibatkan kesalahan, dan tidak didukung. Jika Anda men-deploy templat aplikasi Anda di beberapa wilayah, Anda dapat menggunakan syarat hanya untuk membuat sumber daya dalam satu wilayah. Atau, Anda dapat memilih untuk menetapkan sumber dayaAWS::DynamoDB::GlobalTable
dalam tumpukan terpisah dari tumpukan aplikasi Anda, dan pastikan itu hanya di-deploy untuk satu wilayah.
Sintaks
Untuk mendeklarasikan entitas ini di AWS CloudFormation template Anda, gunakan sintaks berikut:
JSON
{ "Type" : "AWS::DynamoDB::GlobalTable", "Properties" : { "AttributeDefinitions" :
[ AttributeDefinition, ... ]
, "BillingMode" :String
, "GlobalSecondaryIndexes" :[ GlobalSecondaryIndex, ... ]
, "KeySchema" :[ KeySchema, ... ]
, "LocalSecondaryIndexes" :[ LocalSecondaryIndex, ... ]
, "PointInTimeRecoverySpecification" :PointInTimeRecoverySpecification
, "Replicas" :[ ReplicaSpecification, ... ]
, "SSESpecification" :SSESpecification
, "StreamSpecification" :StreamSpecification
, "TableName" :String
, "TimeToLiveSpecification" :TimeToLiveSpecification
, "WarmThroughput" :WarmThroughput
, "WriteOnDemandThroughputSettings" :WriteOnDemandThroughputSettings
, "WriteProvisionedThroughputSettings" :WriteProvisionedThroughputSettings
} }
YAML
Type: AWS::DynamoDB::GlobalTable Properties: AttributeDefinitions:
- AttributeDefinition
BillingMode:String
GlobalSecondaryIndexes:- GlobalSecondaryIndex
KeySchema:- KeySchema
LocalSecondaryIndexes:- LocalSecondaryIndex
PointInTimeRecoverySpecification:PointInTimeRecoverySpecification
Replicas:- ReplicaSpecification
SSESpecification:SSESpecification
StreamSpecification:StreamSpecification
TableName:String
TimeToLiveSpecification:TimeToLiveSpecification
WarmThroughput:WarmThroughput
WriteOnDemandThroughputSettings:WriteOnDemandThroughputSettings
WriteProvisionedThroughputSettings:WriteProvisionedThroughputSettings
Properti
AttributeDefinitions
-
Daftar atribut yang menggambarkan skema kunci untuk tabel global dan indeks.
Wajib: Ya
Jenis: Array dari AttributeDefinition
Minimal:
1
Pembaruan membutuhkan: Tidak ada gangguan
BillingMode
-
Menentukan cara Anda dikenakan biaya untuk throughput baca dan tulis dan mengelola kapasitas. Nilai yang valid adalah:
-
PAY_PER_REQUEST
-
PROVISIONED
Semua replika dalam tabel global Anda akan memiliki mode penagihan yang sama. Jika Anda menggunakan mode penagihan
PROVISIONED
, Anda harus menyediakan konfigurasi penskalaan otomatis melalui propertiWriteProvisionedThroughputSettings
. Nilai default properti ini adalahPROVISIONED
.Wajib: Tidak
Tipe: String
Nilai yang diizinkan:
PROVISIONED | PAY_PER_REQUEST
Pembaruan membutuhkan: Tidak ada gangguan
-
GlobalSecondaryIndexes
-
Indeks sekunder global yang akan dibuat pada tabel global. Anda dapat membuat hingga 20 indeks sekunder global. Setiap replika dalam tabel global Anda akan memiliki pengaturan indeks sekunder global yang sama. Anda hanya dapat membuat atau menghapus satu indeks sekunder global per operasi .
Karena penimbunan ulang indeks bisa memakan waktu lama, CloudFormation tidak menunggu indeks menjadi aktif. Jika operasi tumpukan kembali, CloudFormation mungkin tidak menghapus indeks yang telah ditambahkan. Dalam hal ini, Anda perlu menghapus indeks secara manual.
Wajib: Tidak
Jenis: Array dari GlobalSecondaryIndex
Pembaruan membutuhkan: Tidak ada gangguan
KeySchema
-
Menentukan atribut yang membentuk kunci utama untuk tabel. Atribut dalam properti
KeySchema
juga harus didefinisikan dalam propertiAttributeDefinitions
.Wajib: Ya
Minimal:
1
Maksimum:
2
Pembaruan membutuhkan: Penggantian
LocalSecondaryIndexes
-
Indeks sekunder lokal yang akan dibuat pada tabel. Anda dapat membuat hingga lima indeks sekunder lokal. Setiap indeks dicakup ke nilai kunci hash yang diberikan. Ukuran setiap kunci hash dapat mencapai 10 gigabyte. Setiap replika dalam tabel global Anda akan memiliki pengaturan indeks sekunder lokal yang sama.
Wajib: Tidak
Jenis: Array dari LocalSecondaryIndex
Pembaruan membutuhkan: Penggantian
PointInTimeRecoverySpecification
-
Mewakili pengaturan yang digunakan untuk mengaktifkan pemulihan titik waktu.
Wajib: Tidak
Jenis: PointInTimeRecoverySpecification
Pembaruan membutuhkan: Tidak ada gangguan
Replicas
-
Menentukan daftar replika untuk tabel global Anda. Daftar harus berisi setidaknya satu elemen, wilayah di mana tumpukan yang menetapkan tabel global akan di-deploy. Misalnya, jika Anda menetapkan tabel Anda dalam tumpukan di-deploy ke us-east-1, Anda harus memiliki entri di
Replicas
dengan wilayah us-east-1. Anda tidak dapat menghapus replika di wilayah tumpukan.penting
Penambahan replika mungkin memakan waktu beberapa menit untuk tabel kosong, atau hingga beberapa jam untuk tabel besar. Jika Anda ingin menambah atau menghapus replika, kami merekomendasikan mengirimkan operasi
UpdateStack
yang hanya berisi perubahan tersebut.Jika Anda menambahkan atau menghapus indeks selama pembaruan, kami rekomendasikan Anda tidak memperbarui sumber daya lainnya. Jika tumpukan Anda gagal untuk memperbarui dan dikembalikan saat menambahkan replika baru, Anda mungkin perlu menghapus replika secara manual.
Anda dapat membuat tabel global baru dengan replika sebanyak yang diperlukan. Anda dapat menambah atau menghapus replika setelah pembuatan tabel, tetapi Anda hanya dapat menambahkan atau menghapus replika tunggal di setiap pembaruan.
Wajib: Ya
Jenis: Array dari ReplicaSpecification
Minimal:
1
Pembaruan membutuhkan: Tidak ada gangguan
SSESpecification
-
Menentukan pengaturan untuk mengaktifkan enkripsi sisi server. Pengaturan ini akan diterapkan ke semua replika. Jika Anda berencana untuk menggunakan kunci KMS yang dikelola pelanggan, Anda harus memberikan kunci untuk setiap replika menggunakan properti
ReplicaSpecification.ReplicaSSESpecification
.Wajib: Tidak
Jenis: SSESpecification
Pembaruan membutuhkan: Tidak ada gangguan
StreamSpecification
-
Menentukan pengaturan aliran pada tabel global Anda. Anda harus menentukan nilai untuk properti ini jika tabel global Anda berisi lebih dari satu replika. Anda hanya dapat mengubah pengaturan aliran jika tabel global Anda hanya memiliki satu replika.
Wajib: Tidak
Jenis: StreamSpecification
Pembaruan membutuhkan: Tidak ada gangguan
TableName
-
Nama untuk tabel global. Jika Anda tidak menentukan nama, AWS CloudFormation membuat ID unik dan menggunakan ID tersebut sebagai nama tabel. Untuk informasi lebih lanjut, lihat Jenis nama.
penting
Jika menentukan nama, Anda tidak dapat melakukan pembaruan yang memerlukan penggantian sumber daya ini. Anda dapat melakukan pembaruan yang tidak memerlukan interupsi atau memerlukan sejumlah interupsi. Jika Anda harus mengganti sumber daya, tentukan nama baru.
Wajib: Tidak
Tipe: String
Pola:
[a-zA-Z0-9_.-]+
Minimal:
3
Maksimum:
255
Pembaruan membutuhkan: Penggantian
TimeToLiveSpecification
-
Menentukan pengaturan waktu untuk tayang (TTL) untuk tabel. Pengaturan ini akan diterapkan ke semua replika.
Wajib: Tidak
Jenis: TimeToLiveSpecification
Pembaruan membutuhkan: Tidak ada gangguan
WarmThroughput
-
Memberikan visibilitas ke dalam jumlah operasi baca dan tulis yang dapat didukung oleh tabel atau indeks sekunder Anda secara instan. Pengaturan dapat dimodifikasi menggunakan
UpdateTable
operasi untuk memenuhi persyaratan throughput dari acara puncak yang akan datang.Wajib: Tidak
Jenis: WarmThroughput
Pembaruan membutuhkan: Tidak ada gangguan
WriteOnDemandThroughputSettings
-
Menetapkan pengaturan permintaan tulis untuk tabel global atau indeks sekunder global. Anda hanya dapat menentukan setelan ini jika sumber daya Anda menggunakan
PAY_PER_REQUEST
BillingMode
.Wajib: Tidak
Jenis: WriteOnDemandThroughputSettings
Pembaruan membutuhkan: Tidak ada gangguan
WriteProvisionedThroughputSettings
-
Menentukan kebijakan penskalaan otomatis untuk kapasitas tulis. Kebijakan ini akan diterapkan untuk semua replika. Pengaturan ini harus ditentukan jika
BillingMode
diatur padaPROVISIONED
.Wajib: Tidak
Jenis: WriteProvisionedThroughputSettings
Pembaruan membutuhkan: Tidak ada gangguan
Nilai yang dikembalikan
Ref
Ketika Anda meneruskan ID logis dari sumber daya ini ke Ref
fungsi intrinsik, Ref
mengembalikan nama tabel.
Untuk informasi selengkapnya tentang penggunaan fungsi Ref
, lihat Ref
.
Fn:: GetAtt
Fungsi intrinsik Fn::GetAtt
mengembalikan nilai untuk atribut tertentu dari jenis ini. Berikut ini adalah atribut dan nilai kembali sampel yang tersedia.
Untuk informasi lebih lanjut tentang penggunaan fungsi intrinsik Fn::GetAtt
, lihat Fn::GetAtt
.
Arn
-
Amazon Resource Name (ARN) tabel DynamoDB, misalnya
arn:aws:dynamodb:us-east-2:123456789012:table/myDynamoDBTable
. ARN yang dikembalikan adalah dari replika di wilayah di mana tumpukan di-deploy. StreamArn
-
ARN aliran DynamoDB, misalnya
arn:aws:dynamodb:us-east-1:123456789012:table/testddbstack-myDynamoDBTable-012A1SL7SMP5Q/stream/2015-11-30T20:10:00.000
.StreamArn
yang dikembalikan adalah dari replika di wilayah di mana tumpukan di-deploy.catatan
Anda harus menentukan properti
StreamSpecification
untuk menggunakan atribut ini. TableId
-
Pengidentifikasi unik untuk tabel, seperti
a123b456-01ab-23cd-123a-111222aaabbb
.TableId
yang dikembalikan adalah dari replika di wilayah di mana tumpukan di-deploy.