AWS::DynamoDB::GlobalTable - AWS CloudFormation

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 API AWS::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 Ihre AWS::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:

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 Eigenschaft WriteProvisionedThroughputSettings eine Konfiguration der automatischen Skalierung bereitstellen. Standardmäßig wird der Wert dieser Eigenschaft auf PROVISIONED 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 der AttributeDefinitions-Eigenschaft definiert werden.

Erforderlich: Ja

Typ: Array von KeySchema

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

Typ: TimeToLiveSpecification

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

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 auf PROVISIONED 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ückgegebene StreamArn 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ückgegebene TableId ist der des Replikats in der Region, in der der Stack bereitgestellt wird.