Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS::DynamoDB::GlobalTable
Die AWS::DynamoDB::GlobalTable
-Ressource ermöglicht es Ihnen, eine globale Tabelle der Version 2019.11.21 zu erstellen und zu verwalten. Diese Ressource kann nicht zum Erstellen oder Verwalten einer globalen Tabelle der Version 2017.11.29 verwendet werden. Weitere Informationen finden Sie unter Globale Tabellen.
Wichtig
Sie können eine Ressource des Typs AWS::DynamoDB::Table
nicht in eine Ressource des Typs AWS::DynamoDB::GlobalTable
konvertieren, indem Sie den Typ in Ihrer Vorlage ändern. Dies kann dazu führen, dass Ihre DynamoDB-Tabelle gelöscht wird.
Sie können die GlobalTable Ressource stattdessen verwenden, um eine neue Tabelle in einer einzelnen Region zu erstellen. Dies wird genauso abgerechnet wie eine einzelne Regionstabelle. Wenn Sie den Stack später aktualisieren, um weitere Regionen hinzuzufügen, gelten die Preise für globale Tabellen.
Sie sollten bei der Arbeit mit globalen DynamoDB-Tabellen die folgenden Verhaltensweisen beachten.
-
Der IAM Principal, der den Stack-Vorgang ausführt, muss in allen Regionen, in denen Sie ein globales Tabellenreplikat einrichten möchten, über die unten aufgeführten Berechtigungen verfügen. Für die Berechtigungen des IAM Principals sollten keine Einschränkungen gelten, die auf der IP-Quelladresse basieren. Einige globale Tabellenoperationen (z. B. das Hinzufügen eines Replikats) sind asynchron und erfordern, dass der IAM Principal gültig ist, bis sie abgeschlossen sind. Sie sollten den Principal (Benutzer oder IAM Rolle) erst löschen, wenn die Aktualisierung Ihres CloudFormation Stacks abgeschlossen ist.
-
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
-
-
Wenn Sie den bereitgestellten Abrechnungsmodus verwenden, CloudFormation wird für jedes Ihrer Replikate eine Auto Scaling-Richtlinie erstellt, um deren Schreibkapazitäten zu kontrollieren. Sie müssen diese Richtlinie mit der
WriteProvisionedThroughputSettings
-Eigenschaft konfigurieren. CloudFormation stellt sicher, dass alle Replikate dieselbe auto Skalierungseigenschaft für die Schreibkapazität haben. Sie können nicht direkt einen Wert für die Schreibkapazität für eine globale Tabelle angeben. -
Wenn Ihre Tabelle bereitgestellte Kapazität verwendet, müssen Sie die automatische Skalierung direkt in der
AWS::DynamoDB::GlobalTable
-Ressource konfigurieren. Sie sollten keine zusätzlichen Auto Scaling-Richtlinien für Tabellenreplikate oder globale Sekundärindizes konfigurieren, weder über noch über APIAWS::ApplicationAutoScaling::ScalableTarget
oder.AWS::ApplicationAutoScaling::ScalingPolicy
Dieser kann daher zu einem unerwarteten Verhalten führen und wird nicht unterstützt. -
AWS CloudFormation In wird jede globale Tabelle unabhängig von der Anzahl der Replikate von einem einzigen Stack in einer einzigen Region gesteuert. Wenn Sie Ihre Vorlage bereitstellen, CloudFormation erstellt/aktualisiert alle Replikate als Teil eines einzelnen Stack-Vorgangs. Sie sollten nicht dieselbe
AWS::DynamoDB::GlobalTable
-Ressource in mehreren Regionen bereitstellen. Dies führt zu Fehlern und wird nicht unterstützt. Wenn Sie Ihre Anwendungsvorlage in mehreren Regionen bereitstellen, können Sie Bedingungen verwenden, um die Ressource nur in einer einzigen Region zu erstellen. Alternativ können Sie IhreAWS::DynamoDB::GlobalTable
-Ressourcen in einem Stack getrennt von Ihrem Anwendungs-Stack auswählen, und sicherstellen, dass er nur in einer einzigen Region bereitgestellt wird.
Syntax
Verwenden Sie die folgende Syntax, um diese Entität in Ihrer AWS CloudFormation Vorlage zu deklarieren:
JSON
{ "Type" : "AWS::DynamoDB::GlobalTable", "Properties" : { "AttributeDefinitions" :
[ AttributeDefinition, ... ]
, "BillingMode" :String
, "GlobalSecondaryIndexes" :[ GlobalSecondaryIndex, ... ]
, "KeySchema" :[ KeySchema, ... ]
, "LocalSecondaryIndexes" :[ LocalSecondaryIndex, ... ]
, "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
Replicas:- ReplicaSpecification
SSESpecification:SSESpecification
StreamSpecification:StreamSpecification
TableName:String
TimeToLiveSpecification:TimeToLiveSpecification
WarmThroughput:WarmThroughput
WriteOnDemandThroughputSettings:WriteOnDemandThroughputSettings
WriteProvisionedThroughputSettings:WriteProvisionedThroughputSettings
Eigenschaften
AttributeDefinitions
-
Eine Liste von Attributen, die das Schlüsselschema für die globalen Tabelle und die Indizes beschreiben.
Erforderlich: Ja
Typ: Array von AttributeDefinition
Minimum:
1
Aktualisierung erfordert: Keine Unterbrechung
BillingMode
-
Gibt an, wie Ihnen der Lese- und Schreibdurchsatz in Rechnung gestellt wird und wie Sie die Kapazität verwalten. Gültige Werte für sind:
-
PAY_PER_REQUEST
-
PROVISIONED
Alle Replikate in Ihrer globalen Tabelle haben denselben Abrechnungsmodus. Wenn Sie den Abrechnungsmodus
PROVISIONED
verwenden, müssen Sie über die EigenschaftWriteProvisionedThroughputSettings
eine Konfiguration der automatischen Skalierung bereitstellen. Standardmäßig wird der Wert dieser Eigenschaft aufPROVISIONED
gesetzt.Required: No
Typ: Zeichenfolge
Allowed values:
PROVISIONED | PAY_PER_REQUEST
Aktualisierung erfordert: Keine Unterbrechung
-
GlobalSecondaryIndexes
-
Globale sekundäre Indizen, die in der globalen Tabelle erstellt werden sollen. Sie können bis zu 20 globale sekundäre Indizen erstellen. Jedes Replikat in Ihrer globalen Tabelle hat dieselben globalen sekundären Index-Einstellungen. Sie können nur einen globalen sekundären Index in einem einzigen Stack-Vorgang erstellen oder löschen.
Da das Auffüllen eines Indexes lange dauern kann, wartet CloudFormation es nicht, bis der Index aktiv wird. Wenn bei einem Stack-Vorgang ein Rollback ausgeführt wird, wird ein hinzugefügter Index CloudFormation möglicherweise nicht gelöscht. In diesem Fall müssen Sie den Index manuell löschen.
Required: No
Typ: Array von GlobalSecondaryIndex
Aktualisierung erfordert: Keine Unterbrechung
KeySchema
-
Gibt die Attribute an, die den Primärschlüssel für die Tabelle darstellen. Die Attribute in der
KeySchema
-Eigenschaft müssen auch in derAttributeDefinitions
-Eigenschaft definiert werden.Erforderlich: Ja
Minimum:
1
Maximum:
2
Aktualisierung erfordert: Austausch
LocalSecondaryIndexes
-
Lokale sekundäre Indizes, die in der Tabelle erstellt werden müssen. Sie können bis zu fünf lokale sekundäre Indizes erstellen. Jeder Index ist auf einen bestimmten Hash-Schlüsselwert beschränkt. Die Größe der einzelnen Hash-Schlüssel kann bis zu 10 GB betragen. Jedes Replikat in Ihrer globalen Tabelle hat dieselben lokalen sekundären Index-Einstellungen.
Required: No
Typ: Array von LocalSecondaryIndex
Aktualisierung erfordert: Austausch
Replicas
-
Gibt die Liste der Replikate für Ihre globale Tabelle an. Die Liste muss mindestens ein Element enthalten, nämlich die Region, in der der Stack, der die globale Tabelle definiert, bereitgestellt wird. Wenn Sie beispielsweise Ihre Tabelle in einem Stack definieren, der für us-east-1 bereitgestellt wird, müssen Sie einen Eintrag in
Replicas
mit der Region us-east-1 haben. Sie können das Replikat nicht in der Stack-Region entfernen.Wichtig
Das Hinzufügen eines Replikats kann bei einer leeren Tabelle einige Minuten oder bei großen Tabellen bis zu mehreren Stunden dauern. Wenn Sie ein Replikat hinzufügen oder entfernen möchten, empfehlen wir Ihnen, einen
UpdateStack
-Vorgang, der nur diese Änderung enthält, abzusenden.Wenn Sie ein Replikat während einer Aktualisierung hinzufügen oder löschen, empfehlen wir, keine anderen Ressourcen zu aktualisieren. Wenn Ihr Stack nicht aktualisiert werden kann und beim Hinzufügen eines neuen Replikats ein Rollback ausgeführt wird, müssen Sie das Replikat möglicherweise manuell löschen.
Sie können eine neue globale Tabelle mit beliebig vielen Replikaten erstellen. Sie können Replikate nach der Tabellen-Erstellung hinzufügen oder entfernen, aber Sie können bei jedem Update nur ein einzelnes Replikat hinzufügen oder entfernen.
Erforderlich: Ja
Typ: Array von ReplicaSpecification
Minimum:
1
Aktualisierung erfordert: Keine Unterbrechung
SSESpecification
-
Gibt die Einstellungen zum Aktivieren der serverseitigen Verschlüsselung an. Diese Einstellungen werden auf alle Replikate angewendet. Wenn Sie vom Kunden verwaltete KMS Schlüssel verwenden möchten, müssen Sie für jedes Replikat, das die
ReplicaSpecification.ReplicaSSESpecification
Eigenschaft verwendet, einen Schlüssel angeben.Required: No
Typ: SSESpecification
Aktualisierung erfordert: Keine Unterbrechung
StreamSpecification
-
Gibt die Streams-Einstellungen in Ihrer globalen Tabelle an. Sie müssen einen Wert für diese Eigenschaft angeben, wenn Ihre globale Tabelle mehr als ein Replikat enthält. Sie können die Streams-Einstellungen nur ändern, wenn Ihre globale Tabelle nur ein Replikat hat.
Required: No
Typ: StreamSpecification
Aktualisierung erfordert: Keine Unterbrechung
TableName
-
Ein Name für die globale Tabelle. Wenn Sie keinen Namen angeben, erstellt AWS CloudFormation eine eindeutige ID und verwendet diese ID für den Tabellennamen. Weitere Informationen finden Sie unter Namenstyp.
Wichtig
Wenn Sie einen Namen angeben, können Sie keine Aktualisierungen durchführen, die einen Austausch dieser Ressource erforderlich machen. Sie können Aktualisierungen durchführen, die keine oder einige Unterbrechungen erforderlich machen. Wenn Sie die Ressource austauschen müssen, geben Sie einen neuen Namen an.
Required: No
Typ: Zeichenfolge
Pattern:
[a-zA-Z0-9_.-]+
Minimum:
3
Maximum:
255
Aktualisierung erfordert: Austausch
TimeToLiveSpecification
-
Gibt die Time to Live (TTL) -Einstellungen für die Tabelle an. Diese Einstellung wird auf alle Replikate angewendet.
Required: No
Aktualisierung erfordert: Keine Unterbrechung
WarmThroughput
-
Bietet Einblick in die Anzahl der Lese- und Schreibvorgänge, die Ihre Tabelle oder Ihr sekundärer Index sofort unterstützen kann. Die Einstellungen können mithilfe des
UpdateTable
Vorgangs geändert werden, um den Durchsatzanforderungen eines bevorstehenden Spitzenereignisses gerecht zu werden.Required: No
Typ: WarmThroughput
Aktualisierung erfordert: Keine Unterbrechung
WriteOnDemandThroughputSettings
-
Legt die Schreibanforderungseinstellungen für eine globale Tabelle oder einen globalen Sekundärindex fest. Sie können diese Einstellung nur angeben, wenn Ihre Ressource die verwendet
PAY_PER_REQUEST
BillingMode
.Required: No
Typ: WriteOnDemandThroughputSettings
Aktualisierung erfordert: Keine Unterbrechung
WriteProvisionedThroughputSettings
-
Gibt eine Richtlinie der automatischen Skalierung für die Schreibkapazität an. Diese Richtlinie wird auf alle Replikate angewendet. Diese Einstellung muss angegeben werden, wenn
BillingMode
aufPROVISIONED
gesetzt wird.Required: No
Typ: WriteProvisionedThroughputSettings
Aktualisierung erfordert: Keine Unterbrechung
Rückgabewerte
Punkt
Wenn Sie die logische ID dieser Ressource an die intrinsische Ref
-Funktion übergeben, gibt Ref
den Tabellennamen zurück.
Weitere Informationen zur Verwendung der Ref
-Funktion finden Sie unter Ref
.
Lüfter:: GetAtt
Die intrinsische Fn::GetAtt
-Funktion gibt einen Wert für ein angegebenes Attribut dieses Typs zurück. Im Folgenden sehen Sie die verfügbaren Attribute und Beispielrückgabewerte.
Weitere Informationen zur Verwendung der intrinsischen Fn::GetAtt
-Funktion finden Sie unter Fn::GetAtt
.
Arn
-
Der Amazon-Ressourcenname (ARN) der DynamoDB-Tabelle, z. B.
arn:aws:dynamodb:us-east-2:123456789012:table/myDynamoDBTable
Der ARN zurückgegebene Wert entspricht dem Replikat in der Region, in der der Stack bereitgestellt wird. StreamArn
-
Der ARN des DynamoDB-Streams, z. B.
arn:aws:dynamodb:us-east-1:123456789012:table/testddbstack-myDynamoDBTable-012A1SL7SMP5Q/stream/2015-11-30T20:10:00.000
Der zurückgegebeneStreamArn
ist der des Replikats in der Region, in der der Stack bereitgestellt wird.Anmerkung
Sie müssen die
StreamSpecification
-Eigenschaft angeben, um dieses Attribut zu verwenden. TableId
-
Eindeutige Kennung für die Tabelle, wie
a123b456-01ab-23cd-123a-111222aaabbb
. Der zurückgegebeneTableId
ist der des Replikats in der Region, in der der Stack bereitgestellt wird.