AWS::DynamoDB::GlobalTable - AWS CloudFormation

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 mediante AWS::ApplicationAutoScaling::ScalableTarget o AWS::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 sola operación de pila. 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 recursos AWS::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 su plantilla de AWS CloudFormation, use la siguiente sintaxis:

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 de 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 propiedad WriteProvisionedThroughputSettings. El valor predeterminado de esta propiedad es PROVISIONED.

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 GlobalSecondaryIndex

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

Obligatorio: sí

Tipo: matriz de KeySchema

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 LocalSecondaryIndex

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

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

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. Los valores siguientes son los atributos disponibles y los valores devueltos de ejemplo.

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. El StreamArn 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. El TableId devuelto es el de la réplica en la región en la que se implementa la pila.