AWS::DynamoDB::GlobalTable - AWS CloudFormation

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 melalui AWS::ApplicationAutoScaling::ScalableTarget atau AWS::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 daya AWS::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:

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 properti WriteProvisionedThroughputSettings. Nilai default properti ini adalah PROVISIONED.

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 properti AttributeDefinitions.

Wajib: Ya

Jenis: Array dari KeySchema

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_REQUESTBillingMode.

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 pada PROVISIONED.

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.