AWS::DynamoDB::Table - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS::DynamoDB::Table

AWS::DynamoDB::TableSumber daya menciptakan tabel DynamoDB. Untuk informasi selengkapnya, lihat CreateTabledi Referensi Amazon DynamoDB API.

Anda harus mengetahui perilaku berikut saat bekerja dengan tabel DynamoDB:

  • AWS CloudFormation biasanya membuat tabel DynamoDB secara paralel. Namun, jika template Anda menyertakan beberapa tabel DynamoDB dengan indeks, Anda harus mendeklarasikan dependensi sehingga tabel dibuat secara berurutan. Amazon DynamoDB membatasi jumlah tabel dengan indeks sekunder yang berada dalam status pembuatan. Jika Anda membuat beberapa tabel dengan indeks pada saat yang sama, DynamoDB menghasilkan kesalahan dan operasi tumpukan gagal. Sebagai contoh, lihat DynamoDB Table with a Attribute. DependsOn

penting

Panduan kami adalah menggunakan skema terbaru yang didokumentasikan di sini untuk AWS CloudFormation template Anda. Skema ini mendukung penyediaan semua pengaturan tabel di bawah ini. Saat menggunakan skema ini di AWS CloudFormation template Anda, pastikan bahwa kebijakan Identity and Access Management (IAM) Anda diperbarui dengan izin yang sesuai untuk memungkinkan otorisasi perubahan pengaturan ini.

Sintaks

Untuk mendeklarasikan entitas ini di AWS CloudFormation template Anda, gunakan sintaks berikut:

Properti

AttributeDefinitions

Daftar atribut yang mendeskripsikan skema kunci untuk tabel dan indeks.

Properti ini diperlukan untuk membuat tabel DynamoDB.

Pembaruan memerlukan: Beberapa gangguan. Penggantian jika Anda mengedit yang sudah ada AttributeDefinition.

Wajib: Bersyarat

Jenis: Array dari AttributeDefinition

Pembaruan membutuhkan: Tidak ada gangguan

BillingMode

Menentukan bagaimana Anda dikenai biaya untuk throughput baca dan tulis dan bagaimana Anda mengelola kapasitas.

Nilai yang valid meliputi:

  • PROVISIONED - Kami merekomendasikan penggunaan PROVISIONED untuk beban kerja yang dapat diprediksi. PROVISIONED mengatur mode penagihan ke Mode yang Disediakan.

  • PAY_PER_REQUEST - Kami merekomendasikan penggunaan PAY_PER_REQUEST untuk beban kerja yang tidak dapat diprediksi. PAY_PER_REQUEST mengatur mode penagihan ke Mode Sesuai Permintaan.

Jika tidak ditentukan, default-nya adalah PROVISIONED.

Wajib: Tidak

Tipe: String

Nilai yang diizinkan: PROVISIONED | PAY_PER_REQUEST

Pembaruan membutuhkan: Tidak ada gangguan

ContributorInsightsSpecification

Pengaturan yang digunakan untuk mengaktifkan atau menonaktifkan CloudWatch Contributor Insights untuk tabel yang ditentukan.

Wajib: Tidak

Jenis: ContributorInsightsSpesifikasi

Pembaruan membutuhkan: Tidak ada gangguan

DeletionProtectionEnabled

Menentukan apakah tabel dilindungi dari penghapusan. Saat diaktifkan, tabel tidak dapat dihapus oleh pengguna atau proses mana pun. Pengaturan ini dinonaktifkan secara default. Untuk informasi selengkapnya, lihat Menggunakan perlindungan penghapusan di Panduan Amazon DynamoDBDeveloper.

Wajib: Tidak

Jenis: Boolean

Pembaruan membutuhkan: Tidak ada gangguan

GlobalSecondaryIndexes

Indeks sekunder Global yang akan dibuat pada tabel. Anda dapat membuat hingga 20 indeks sekunder global.

penting

Jika Anda memperbarui tabel untuk menyertakan indeks sekunder global baru, AWS CloudFormation memulai pembuatan indeks dan kemudian melanjutkan dengan pembaruan tumpukan. AWS CloudFormation tidak menunggu indeks menyelesaikan pembuatan karena fase penimbunan dapat memakan waktu lama, tergantung pada ukuran tabel. Anda tidak dapat menggunakan indeks atau memperbarui tabel sampai status indeks adalah ACTIVE. Anda dapat melacak statusnya dengan menggunakan perintah DynamoDB DescribeTable.

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 indeks baru, Anda harus menghapus indeks secara manual.

Pembaruan tidak didukung. Berikut adalah pengecualian:

  • Jika Anda memperbarui spesifikasi wawasan kontributor atau nilai throughput yang disediakan dari indeks sekunder global, Anda dapat memperbarui tabel tanpa gangguan.

  • Anda dapat menghapus atau menambahkan satu indeks sekunder global tanpa gangguan. Jika Anda melakukan keduanya dalam pembaruan yang sama (misalnya, dengan mengubah ID logis indeks), pembaruan gagal.

Wajib: Tidak

Jenis: Array GlobalSecondaryIndeks

Pembaruan membutuhkan: Tidak ada gangguan

ImportSourceSpecification

Menentukan properti data yang diimpor dari sumber bucket S3 ke tabel.

penting

Jika Anda menentukan ImportSourceSpecification properti, dan juga menentukan, propertiStreamSpecification, atau TableClass properti, entitas IAM membuat/memperbarui tumpukan harus memiliki izin. DeletionProtectionEnabled UpdateTable

Wajib: Tidak

Jenis: ImportSourceSpesifikasi

Pembaruan membutuhkan: Penggantian

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

Pembaruan membutuhkan: Tidak ada gangguan

KinesisStreamSpecification

Konfigurasi Kinesis Data Streams untuk tabel yang ditentukan.

Wajib: Tidak

Jenis: KinesisStreamSpesifikasi

Pembaruan membutuhkan: Tidak ada gangguan

LocalSecondaryIndexes

Indeks sekunder lokal yang akan dibuat pada tabel. Anda dapat membuat hingga 5 indeks sekunder lokal. Setiap indeks dicakup ke nilai kunci hash yang diberikan. Ukuran setiap kunci hash bisa mencapai 10 gigabyte.

Wajib: Tidak

Jenis: Array LocalSecondaryIndeks

Pembaruan membutuhkan: Tidak ada gangguan

OnDemandThroughput

Menetapkan jumlah maksimum unit baca dan tulis untuk tabel sesuai permintaan yang ditentukan. Jika Anda menggunakan properti ini, Anda harus menentukanMaxReadRequestUnits,MaxWriteRequestUnits, atau keduanya.

Wajib: Tidak

Jenis: OnDemandThroughput

Pembaruan membutuhkan: Tidak ada gangguan

PointInTimeRecoverySpecification

Pengaturan yang digunakan untuk mengaktifkan pemulihan titik waktu.

Wajib: Tidak

Jenis: PointInTimeRecoverySpesifikasi

Pembaruan membutuhkan: Tidak ada gangguan

ProvisionedThroughput

Throughput untuk tabel tertentu, yang terdiri atas nilai untuk ReadCapacityUnits dan WriteCapacityUnits. Untuk informasi selengkapnya tentang isi struktur throughput yang disediakan, lihat Tabel Amazon DynamoDB. ProvisionedThroughput

Jika Anda mengatur BillingMode sebagai PROVISIONED, Anda harus menetapkan properti ini. Jika Anda mengatur BillingMode sebagai PAY_PER_REQUEST, Anda tidak dapat menetapkan properti ini.

Wajib: Bersyarat

Jenis: ProvisionedThroughput

Pembaruan membutuhkan: Tidak ada gangguan

ResourcePolicy

Dokumen kebijakan berbasis sumber daya yang berisi izin untuk ditambahkan ke tabel yang ditentukan. Dalam CloudFormation template, Anda dapat memberikan kebijakan dalam format JSON atau YAMAL karena CloudFormation mengonversi YAMB ke JSON sebelum mengirimkannya ke. DynamoDBUntuk informasi selengkapnya tentang kebijakan berbasis sumber daya, lihat Menggunakan kebijakan berbasis sumber daya untuk dan contoh kebijakan berbasis sumber daya. DynamoDB

Saat Anda melampirkan kebijakan berbasis sumber daya saat membuat tabel, pembuatan kebijakan akan sangat konsisten. Untuk informasi tentang pertimbangan yang harus Anda ingat saat melampirkan kebijakan berbasis sumber daya, lihat Pertimbangan kebijakan berbasis sumber daya.

Wajib: Tidak

Jenis: ResourcePolicy

Pembaruan membutuhkan: Tidak ada gangguan

SSESpecification

Menentukan pengaturan untuk mengaktifkan enkripsi sisi server.

Wajib: Tidak

Tipe: SSESpecification

Pembaruan membutuhkan: Beberapa gangguan

StreamSpecification

Pengaturan untuk aliran tabel DynamoDB, yang menangkap perubahan pada item yang disimpan dalam tabel.

Wajib: Tidak

Jenis: StreamSpecification

Pembaruan membutuhkan: Tidak ada gangguan

TableClass

Kelas tabel dari tabel baru. Nilai yang valid adalah STANDARD dan STANDARD_INFREQUENT_ACCESS.

Wajib: Tidak

Tipe: String

Nilai yang diizinkan: STANDARD | STANDARD_INFREQUENT_ACCESS

Pembaruan membutuhkan: Tidak ada gangguan

TableName

Nama untuk tabel. Jika Anda tidak menentukan nama, AWS CloudFormation buat ID fisik unik dan gunakan ID tersebut untuk nama tabel. Untuk informasi selengkapnya, 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

Minimal: 1

Maksimum: 1024

Pembaruan membutuhkan: Penggantian

Tags

Susunan pasangan nilai kunci untuk diterapkan ke sumber daya ini.

Untuk informasi selengkapnya, lihat Tanda.

Wajib: Tidak

Jenis: Array Tag

Pembaruan membutuhkan: Tidak ada gangguan

TimeToLiveSpecification

Menentukan pengaturan Time to Live (TTL) untuk tabel.

catatan

Untuk informasi mendetail tentang batas di DynamoDB, lihat Batas di Amazon DynamoDB di Panduan Developer Amazon DynamoDB.

Wajib: Tidak

Jenis: TimeToLiveSpecification

Pembaruan membutuhkan: Tidak ada gangguan

Nilai yang dikembalikan

Ref

Ketika Anda meneruskan ID logis sumber daya ini ke fungsi Ref intrinsik, Ref mengembalikan nama sumber daya. Sebagai contoh:

{ "Ref": "myDynamoDBTable" }

Untuk sumber daya dengan ID logis myDynamoDBTable, Ref akan menghasilkan nama tabel DynamoDB.

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.

StreamArn

ARN aliran DynamoDB, misalnya arn:aws:dynamodb:us-east-1:123456789012:table/testddbstack-myDynamoDBTable-012A1SL7SMP5Q/stream/2015-11-30T20:10:00.000.

catatan

Anda harus menentukan properti StreamSpecification untuk menggunakan atribut ini.

Contoh

Tabel DynamoDB dengan Indeks Sekunder dan Lokal

Sampel berikut membuat tabel DynamoDB dengan Album, Artist, Sales, NumberOfSongs sebagai atribut. Kunci utama mencakup atribut Album sebagai kunci hash dan atribut Artist sebagai kunci rentang. Tabel ini juga mencakup satu indeks sekunder dan dua global. Untuk melakukan kueri jumlah penjualan untuk artis tertentu, indeks sekunder global menggunakan atribut Sales sebagai kunci hash dan atribut Artist sebagai kunci rentang.

Untuk melakukan kueri penjualan berdasarkan jumlah lagu, indeks sekunder global menggunakan atribut NumberOfSongs sebagai kunci hash dan atribut Sales sebagai kunci rentang.

Untuk melakukan kueri penjualan album, indeks sekunder lokal menggunakan kunci hash yang sama seperti tabel tetapi menggunakan atribut Sales sebagai kunci rentang.

JSON

{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myDynamoDBTable" : { "Type" : "AWS::DynamoDB::Table", "Properties" : { "AttributeDefinitions" : [ { "AttributeName" : "Album", "AttributeType" : "S" }, { "AttributeName" : "Artist", "AttributeType" : "S" }, { "AttributeName" : "Sales", "AttributeType" : "N" }, { "AttributeName" : "NumberOfSongs", "AttributeType" : "N" } ], "KeySchema" : [ { "AttributeName" : "Album", "KeyType" : "HASH" }, { "AttributeName" : "Artist", "KeyType" : "RANGE" } ], "ProvisionedThroughput" : { "ReadCapacityUnits" : "5", "WriteCapacityUnits" : "5" }, "TableName" : "myTableName", "GlobalSecondaryIndexes" : [{ "IndexName" : "myGSI", "KeySchema" : [ { "AttributeName" : "Sales", "KeyType" : "HASH" }, { "AttributeName" : "Artist", "KeyType" : "RANGE" } ], "Projection" : { "NonKeyAttributes" : ["Album","NumberOfSongs"], "ProjectionType" : "INCLUDE" }, "ProvisionedThroughput" : { "ReadCapacityUnits" : "5", "WriteCapacityUnits" : "5" } }, { "IndexName" : "myGSI2", "KeySchema" : [ { "AttributeName" : "NumberOfSongs", "KeyType" : "HASH" }, { "AttributeName" : "Sales", "KeyType" : "RANGE" } ], "Projection" : { "NonKeyAttributes" : ["Album","Artist"], "ProjectionType" : "INCLUDE" }, "ProvisionedThroughput" : { "ReadCapacityUnits" : "5", "WriteCapacityUnits" : "5" } }], "LocalSecondaryIndexes" :[{ "IndexName" : "myLSI", "KeySchema" : [ { "AttributeName" : "Album", "KeyType" : "HASH" }, { "AttributeName" : "Sales", "KeyType" : "RANGE" } ], "Projection" : { "NonKeyAttributes" : ["Artist","NumberOfSongs"], "ProjectionType" : "INCLUDE" } }] } } } }

YAML

AWSTemplateFormatVersion: "2010-09-09" Resources: myDynamoDBTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: "Album" AttributeType: "S" - AttributeName: "Artist" AttributeType: "S" - AttributeName: "Sales" AttributeType: "N" - AttributeName: "NumberOfSongs" AttributeType: "N" KeySchema: - AttributeName: "Album" KeyType: "HASH" - AttributeName: "Artist" KeyType: "RANGE" ProvisionedThroughput: ReadCapacityUnits: "5" WriteCapacityUnits: "5" TableName: "myTableName" GlobalSecondaryIndexes: - IndexName: "myGSI" KeySchema: - AttributeName: "Sales" KeyType: "HASH" - AttributeName: "Artist" KeyType: "RANGE" Projection: NonKeyAttributes: - "Album" - "NumberOfSongs" ProjectionType: "INCLUDE" ProvisionedThroughput: ReadCapacityUnits: "5" WriteCapacityUnits: "5" - IndexName: "myGSI2" KeySchema: - AttributeName: "NumberOfSongs" KeyType: "HASH" - AttributeName: "Sales" KeyType: "RANGE" Projection: NonKeyAttributes: - "Album" - "Artist" ProjectionType: "INCLUDE" ProvisionedThroughput: ReadCapacityUnits: "5" WriteCapacityUnits: "5" LocalSecondaryIndexes: - IndexName: "myLSI" KeySchema: - AttributeName: "Album" KeyType: "HASH" - AttributeName: "Sales" KeyType: "RANGE" Projection: NonKeyAttributes: - "Artist" - "NumberOfSongs" ProjectionType: "INCLUDE"

DynamoDB Tabel dengan Atribut DependsOn

Jika Anda menyertakan beberapa tabel DynamoDB dengan indeks dalam satu templat, Anda harus menyertakan dependensi sehingga tabel dibuat secara berurutan. DynamoDB membatasi jumlah tabel dengan indeks sekunder yang berada dalam status pembuatan. Jika Anda membuat beberapa tabel dengan indeks pada saat yang sama, DynamoDB menghasilkan kesalahan dan operasi tumpukan gagal.

Sampel berikut mengasumsikan bahwa tabel myFirstDDBTable dideklarasikan dalam template yang sama seperti tabel mySecondDDBTable, dan kedua tabel termasuk indeks sekunder. mySecondDDBTableTabel mencakup ketergantungan pada myFirstDDBTable tabel sehingga AWS CloudFormation membuat tabel satu per satu.

JSON

"mySecondDDBTable" : { "Type" : "AWS::DynamoDB::Table", "DependsOn" : "myFirstDDBTable" , "Properties" : { "AttributeDefinitions" : [ { "AttributeName" : "ArtistId", "AttributeType" : "S" }, { "AttributeName" : "Concert", "AttributeType" : "S" }, { "AttributeName" : "TicketSales", "AttributeType" : "S" } ], "KeySchema" : [ { "AttributeName" : "ArtistId", "KeyType" : "HASH" }, { "AttributeName" : "Concert", "KeyType" : "RANGE" } ], "ProvisionedThroughput" : { "ReadCapacityUnits" : {"Ref" : "ReadCapacityUnits"}, "WriteCapacityUnits" : {"Ref" : "WriteCapacityUnits"} }, "GlobalSecondaryIndexes" : [{ "IndexName" : "myGSI", "KeySchema" : [ { "AttributeName" : "TicketSales", "KeyType" : "HASH" } ], "Projection" : { "ProjectionType" : "KEYS_ONLY" }, "ProvisionedThroughput" : { "ReadCapacityUnits" : {"Ref" : "ReadCapacityUnits"}, "WriteCapacityUnits" : {"Ref" : "WriteCapacityUnits"} } }], "Tags": [ { "Key": "foo", "Value": "bar" } ] } }

YAML

mySecondDDBTable: Type: AWS::DynamoDB::Table DependsOn: "myFirstDDBTable" Properties: AttributeDefinitions: - AttributeName: "ArtistId" AttributeType: "S" - AttributeName: "Concert" AttributeType: "S" - AttributeName: "TicketSales" AttributeType: "S" KeySchema: - AttributeName: "ArtistId" KeyType: "HASH" - AttributeName: "Concert" KeyType: "RANGE" ProvisionedThroughput: ReadCapacityUnits: Ref: "ReadCapacityUnits" WriteCapacityUnits: Ref: "WriteCapacityUnits" GlobalSecondaryIndexes: - IndexName: "myGSI" KeySchema: - AttributeName: "TicketSales" KeyType: "HASH" Projection: ProjectionType: "KEYS_ONLY" ProvisionedThroughput: ReadCapacityUnits: Ref: "ReadCapacityUnits" WriteCapacityUnits: Ref: "WriteCapacityUnits" Tags: - Key: foo Value: bar

Tabel DynamoDB dengan Application Auto Scaling

Contoh ini menetapkan Application Auto Scaling untuk sumber daya AWS::DynamoDB::Table. Templat tersebut menentukan kebijakan penskalaan TargetTrackingScaling yang menaikkan skala throughput WriteCapacityUnits untuk tabel.

JSON

{ "Resources": { "DDBTable": { "Type": "AWS::DynamoDB::Table", "Properties": { "AttributeDefinitions": [ { "AttributeName": "ArtistId", "AttributeType": "S" }, { "AttributeName": "Concert", "AttributeType": "S" }, { "AttributeName": "TicketSales", "AttributeType": "S" } ], "KeySchema": [ { "AttributeName": "ArtistId", "KeyType": "HASH" }, { "AttributeName": "Concert", "KeyType": "RANGE" } ], "GlobalSecondaryIndexes": [ { "IndexName": "GSI", "KeySchema": [ { "AttributeName": "TicketSales", "KeyType": "HASH" } ], "Projection": { "ProjectionType": "KEYS_ONLY" }, "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 } } ], "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 } } }, "WriteCapacityScalableTarget": { "Type": "AWS::ApplicationAutoScaling::ScalableTarget", "Properties": { "MaxCapacity": 15, "MinCapacity": 5, "ResourceId": { "Fn::Join": [ "/", [ "table", { "Ref": "DDBTable" } ] ] }, "RoleARN": { "Fn::GetAtt": ["ScalingRole", "Arn"] }, "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "ServiceNamespace": "dynamodb" } }, "ScalingRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "application-autoscaling.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "root", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:UpdateTable", "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:SetAlarmState", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] } } ] } }, "WriteScalingPolicy": { "Type": "AWS::ApplicationAutoScaling::ScalingPolicy", "Properties": { "PolicyName": "WriteAutoScalingPolicy", "PolicyType": "TargetTrackingScaling", "ScalingTargetId": { "Ref": "WriteCapacityScalableTarget" }, "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 50.0, "ScaleInCooldown": 60, "ScaleOutCooldown": 60, "PredefinedMetricSpecification": { "PredefinedMetricType": "DynamoDBWriteCapacityUtilization" } } } } } }

YAML

Resources: DDBTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: "ArtistId" AttributeType: "S" - AttributeName: "Concert" AttributeType: "S" - AttributeName: "TicketSales" AttributeType: "S" KeySchema: - AttributeName: "ArtistId" KeyType: "HASH" - AttributeName: "Concert" KeyType: "RANGE" GlobalSecondaryIndexes: - IndexName: "GSI" KeySchema: - AttributeName: "TicketSales" KeyType: "HASH" Projection: ProjectionType: "KEYS_ONLY" ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 5 ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 5 WriteCapacityScalableTarget: Type: AWS::ApplicationAutoScaling::ScalableTarget Properties: MaxCapacity: 15 MinCapacity: 5 ResourceId: !Join - / - - table - !Ref DDBTable RoleARN: !GetAtt ScalingRole.Arn ScalableDimension: dynamodb:table:WriteCapacityUnits ServiceNamespace: dynamodb ScalingRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: - application-autoscaling.amazonaws.com Action: - "sts:AssumeRole" Path: "/" Policies: - PolicyName: "root" PolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Action: - "dynamodb:DescribeTable" - "dynamodb:UpdateTable" - "cloudwatch:PutMetricAlarm" - "cloudwatch:DescribeAlarms" - "cloudwatch:GetMetricStatistics" - "cloudwatch:SetAlarmState" - "cloudwatch:DeleteAlarms" Resource: "*" WriteScalingPolicy: Type: AWS::ApplicationAutoScaling::ScalingPolicy Properties: PolicyName: WriteAutoScalingPolicy PolicyType: TargetTrackingScaling ScalingTargetId: !Ref WriteCapacityScalableTarget TargetTrackingScalingPolicyConfiguration: TargetValue: 50.0 ScaleInCooldown: 60 ScaleOutCooldown: 60 PredefinedMetricSpecification: PredefinedMetricType: DynamoDBWriteCapacityUtilization