Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
AWS::DynamoDB::GlobalTable
El recurso AWS::DynamoDB::GlobalTable
permite crear y administrar una tabla global de la versión 2019.11.21. Este recurso no se puede usar para crear ni administrar una tabla global de la versión 2017.11.29. Para obtener más información, consulte las Tablas globales.
importante
No puede convertir un recurso de tipo AWS::DynamoDB::Table
en un recurso de tipo AWS::DynamoDB::GlobalTable
cambiando su tipo en la plantilla. Si lo hace, puede que se elimine la tabla de DynamoDB.
En su lugar, puede utilizar el GlobalTable recurso para crear una nueva tabla en una sola región. Se facturará igual que en una sola tabla de regiones. Si más adelante actualiza la pila para agregar otras regiones, se aplicarán los precios de las tablas globales.
Debe tener en cuenta los siguientes comportamientos a la hora de trabajar con tablas globales de DynamoDB.
-
La entidad principal de IAM que ejecuta la operación de pila debe tener los permisos que se indican a continuación en todas las regiones en las que planea tener una réplica de tabla global. Los permisos de la entidad principal de IAM no deben tener restricciones en función de la dirección IP de origen. Algunas operaciones de tablas globales (por ejemplo, agregar una réplica) son asíncronas y requieren que la entidad principal de IAM sea válida hasta que se completen. No debes eliminar el principal (usuario o rol de IAM) hasta que hayas CloudFormation terminado de actualizar tu pila.
-
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
-
-
Cuando utilice el modo de facturación aprovisionado, CloudFormation creará una política de escalado automático en cada una de sus réplicas para controlar sus capacidades de escritura. Debe configurar esta política mediante la
WriteProvisionedThroughputSettings
propiedad. CloudFormationgarantizará que todas las réplicas tengan la misma propiedad de escalado automático de la capacidad de escritura. No puede especificar directamente un valor para la capacidad de escritura de una tabla global. -
Si la tabla usa capacidad aprovisionada, debe configurar el escalado automático directamente en el recurso
AWS::DynamoDB::GlobalTable
. No debe configurar políticas de escalado automático adicionales en ninguna de las réplicas de tablas o índices secundarios globales, ni mediante API ni medianteAWS::ApplicationAutoScaling::ScalableTarget
oAWS::ApplicationAutoScaling::ScalingPolicy
. Si lo hace, puede dar lugar a un comportamiento inesperado que no es compatible. -
En AWS CloudFormation, cada tabla global está controlada por una sola pila, en una sola región, independientemente del número de réplicas. Al implementar la plantilla, creará o CloudFormation actualizará todas las réplicas como parte de una operación de pila única. No debe desplegar el mismo recurso
AWS::DynamoDB::GlobalTable
en varias regiones. Si lo hace, se producirán errores y no se admite. Si implementa la plantilla de aplicación en varias regiones, puede usar condiciones para crear el recurso solo en una región. O bien, puede optar por definir recursosAWS::DynamoDB::GlobalTable
en una pila independiente de la pila de aplicaciones y asegurarse de que solo se implementa en una región.
Sintaxis
Para declarar esta entidad en la AWS CloudFormation plantilla, utilice la siguiente sintaxis:
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
, "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
WriteOnDemandThroughputSettings:WriteOnDemandThroughputSettings
WriteProvisionedThroughputSettings:WriteProvisionedThroughputSettings
Propiedades
AttributeDefinitions
-
Una lista de atributos que describen el esquema de claves para la tabla global y los índices.
Obligatorio: sí
Tipo: matriz de AttributeDefinition
Mínimo:
1
Requisitos de actualización: sin interrupción
BillingMode
-
Especifica cómo se le cobrará el rendimiento de lectura y escritura y cómo se administra la capacidad. Los valores válidos son:
-
PAY_PER_REQUEST
-
PROVISIONED
Todas las réplicas de la tabla global tendrán el mismo modo de facturación. Si usa el modo de facturación
PROVISIONED
, debe proporcionar una configuración de escalado automático a través de la propiedadWriteProvisionedThroughputSettings
. El valor predeterminado de esta propiedad esPROVISIONED
.Obligatorio: no
Tipo: cadena
Valores permitidos:
PROVISIONED | PAY_PER_REQUEST
Requisitos de actualización: sin interrupción
-
GlobalSecondaryIndexes
-
Índices secundarios globales que se crearán en la tabla global. Puede crear un máximo de 20 índices secundarios globales. Cada réplica de la tabla global tendrá la misma configuración de índice secundario global. Solo puede crear o eliminar un índice secundario global en una operación de pila única.
Dado que rellenar un índice puede llevar mucho tiempo, CloudFormation no espere a que el índice se active. Si una operación de apilamiento se revierte, es CloudFormation posible que no se elimine un índice que se haya agregado. En ese caso, tendrá que eliminar el índice manualmente.
Obligatorio: no
Tipo: matriz de GlobalSecondaryíndices
Requisitos de actualización: sin interrupción
KeySchema
-
Especifica los atributos que componen la clave principal de la tabla. Los atributos en la propiedad
KeySchema
también deben definirse en la propiedadAttributeDefinitions
.Obligatorio: sí
Mínimo:
1
Máximo:
2
Requisitos de actualización: reemplazo
LocalSecondaryIndexes
-
Los índices secundarios locales que se crearán en la tabla. Puede crear un máximo de cinco índices secundarios locales. Cada índice se establece en un determinado valor de clave hash. El tamaño de cada clave hash puede ser de hasta 10 gigabytes. Cada réplica de la tabla global tendrá la misma configuración de índice secundario local.
Obligatorio: no
Tipo: matriz de LocalSecondaryíndices
Requisitos de actualización: reemplazo
Replicas
-
Especifica la lista de réplicas de la tabla global. La lista debe contener al menos un elemento, la región en la que se implementa la pila que define la tabla global. Por ejemplo, si define la tabla en una pila implementada en us-east-1, debe tener una entrada en
Replicas
con la región us-east-1. No puede eliminar la réplica de la región de pila.importante
Agregar una réplica puede tardar unos minutos para una tabla vacía o hasta varias horas para tablas grandes. Si desea agregar o eliminar una réplica, le recomendamos que envíe una operación
UpdateStack
que contiene solo ese cambio.Si agrega o elimina una réplica durante una actualización, le recomendamos que no actualice ningún otro recurso. Si la pila no se actualiza y se restaura al agregar un índice nuevo, es posible que tenga que eliminar manualmente la réplica.
Puede crear una nueva tabla global con tantas réplicas como necesite. Puede agregar o eliminar réplicas después de crear la tabla, pero solo puede agregar o eliminar una única réplica en cada actualización.
Obligatorio: sí
Tipo: matriz de ReplicaSpecification
Mínimo:
1
Requisitos de actualización: sin interrupción
SSESpecification
-
Especifica la configuración para habilitar el cifrado del lado del servidor. Esta configuración se aplicará a todas las réplicas. Si planea usar claves de KMS administradas por el cliente, debe proporcionar una clave para cada réplica mediante la propiedad
ReplicaSpecification.ReplicaSSESpecification
.Obligatorio: no
Type: SSESpecification
Requisitos de actualización: sin interrupción
StreamSpecification
-
Especifica la configuración de las transmisiones en la tabla global. Debe proporcionar un valor de esta propiedad si la tabla global contiene más de una réplica. Solo puede cambiar la configuración de transmisiones si la tabla global tiene una única réplica.
Obligatorio: no
Tipo: StreamSpecification
Requisitos de actualización: sin interrupción
TableName
-
Un nombre para la tabla global. Si no especifica un nombre, AWS CloudFormation genera un ID único y utiliza dicho ID como el nombre de la tabla. Para obtener más información, consulte Tipo de nombre.
importante
Si especifica un nombre, no puede llevar a cabo actualizaciones que requieran la sustitución de este recurso. Puede hacer las actualizaciones que no requieran interrupción o que esta sea mínima. Si debe sustituir el recurso, especifique un nuevo nombre.
Obligatorio: no
Tipo: cadena
Patrón:
[a-zA-Z0-9_.-]+
Mínimo:
3
Máximo:
255
Requisitos de actualización: reemplazo
TimeToLiveSpecification
-
Especifica la configuración del tiempo de vida (TTL) de la tabla. Esta configuración se aplicará a todas las réplicas.
Obligatorio: no
Tipo: TimeToLiveSpecification
Requisitos de actualización: sin interrupción
WriteOnDemandThroughputSettings
-
Establece la configuración de la solicitud de escritura para una tabla global o un índice secundario global. Debe especificar esta configuración si establece
BillingMode
elPAY_PER_REQUEST
.Obligatorio: no
Tipo: WriteOnDemandThroughputConfiguración
Requisitos de actualización: sin interrupción
WriteProvisionedThroughputSettings
-
Especifica una política de escalado automático para la capacidad de escritura. Esta política se aplicará a todas las réplicas. Este valor debe especificarse si
BillingMode
está establecido enPROVISIONED
.Obligatorio: no
Tipo: WriteProvisionedThroughputSettings
Requisitos de actualización: sin interrupción
Valores devueltos
Ref.
Cuando se pasa el ID lógico de este recurso a la función Ref
intrínseca, Ref
devuelve el nombre de la tabla.
Para obtener más información acerca del uso de la función Ref
, consulte Ref
.
Ventilador: GetAtt
La función intrínseca de Fn::GetAtt
devuelve un valor para un atributo especificado de este tipo. A continuación se indican los atributos disponibles y los valores devueltos de muestra.
Para obtener más información acerca del uso de la función intrínseca Fn::GetAtt
, consulte Fn::GetAtt
.
Arn
-
El nombre de recurso de Amazon (ARN) de la tabla de DynamoDB, como
arn:aws:dynamodb:us-east-2:123456789012:table/myDynamoDBTable
. El ARN devuelto es el de la réplica en la región en la que se implementa la pila. StreamArn
-
El ARN del flujo de DynamoDB, como
arn:aws:dynamodb:us-east-1:123456789012:table/testddbstack-myDynamoDBTable-012A1SL7SMP5Q/stream/2015-11-30T20:10:00.000
. ElStreamArn
devuelto es el de la réplica en la región en la que se implementa la pila.nota
Debe especificar la propiedad
StreamSpecification
para utilizar este atributo. TableId
-
Identificador único de la tabla, como
a123b456-01ab-23cd-123a-111222aaabbb
. ElTableId
devuelto es el de la réplica en la región en la que se implementa la pila.