

# Uso de tablas y datos en DynamoDB
<a name="WorkingWithTables"></a>

En esta sección se describe cómo usar la AWS Command Line Interface (AWS CLI) y los SDK de AWS para crear, actualizar y eliminar tablas de Amazon DynamoDB.

**nota**  
También puede llevar a cabo las mismas tareas utilizando la Consola de administración de AWS. Para obtener más información, consulte [Uso de la consola](AccessingDynamoDB.md#ConsoleDynamoDB).

En esta sección también se ofrece más información sobre la capacidad de rendimiento, el uso del escalado automático de DynamoDB o la configuración manual del rendimiento aprovisionado.

**Topics**
+ [Operaciones básicas en tablas de DynamoDB](WorkingWithTables.Basics.md)
+ [Aspectos que tener en cuenta a la hora de elegir una clase de tabla en DynamoDB](WorkingWithTables.tableclasses.md)
+ [Cómo agregar etiquetas a los recursos en DynamoDB](Tagging.md)

# Operaciones básicas en tablas de DynamoDB
<a name="WorkingWithTables.Basics"></a>

Al igual que otros sistemas de base de datos, Amazon DynamoDB almacena datos en tablas. Puede administrar las tablas con una pocas operaciones básicas.

**Topics**
+ [Creación de una tabla](#WorkingWithTables.Basics.CreateTable)
+ [Descripción de una tabla](#WorkingWithTables.Basics.DescribeTable)
+ [Actualización de una tabla](#WorkingWithTables.Basics.UpdateTable)
+ [Eliminación de una tabla](#WorkingWithTables.Basics.DeleteTable)
+ [Uso de la protección contra eliminación](#WorkingWithTables.Basics.DeletionProtection)
+ [Enumeración de nombres de tablas](#WorkingWithTables.Basics.ListTables)
+ [Descripción de las cuotas de rendimiento aprovisionado](#WorkingWithTables.Basics.DescribeLimits)

## Creación de una tabla
<a name="WorkingWithTables.Basics.CreateTable"></a>

Use la operación `CreateTable` para crear una tabla en Amazon DynamoDB. Para crear la tabla, debe proporcionar la siguiente información:
+ **Nombre de la tabla.** El nombre debe cumplir las reglas de nomenclatura de DynamoDB y debe ser único para la región y cuenta de AWS actuales. Por ejemplo, puede crear una tabla `People` en EE. UU. Este (Norte de Virginia) y otra tabla `People` en Europa (Irlanda). Sin embargo, estas dos tablas serían totalmente distintas entre sí. Para obtener más información, consulte [Tipos de datos y reglas de nomenclatura admitidos en Amazon DynamoDB](HowItWorks.NamingRulesDataTypes.md).
+ **Primary key (Clave principal.** La clave principal puede constar de un atributo (clave de partición) o dos (clave de partición y clave de ordenación). Debe proporcionar el nombre, el tipo de datos y el rol de cada atributo: `HASH` (para una clave de partición) y `RANGE` (para una clave de ordenación). Para obtener más información, consulte [Clave principal](HowItWorks.CoreComponents.md#HowItWorks.CoreComponents.PrimaryKey).
+ **Ajustes de rendimiento (de las tablas aprovisionadas).** Si utiliza el modo aprovisionado, debe especificar los ajustes iniciales de rendimiento de lectura y escritura de la tabla. Puede modificar esta configuración en otro momento o habilitar la función Auto Scaling de DynamoDB para administrarlos automáticamente. Para obtener más información, consulte [Modo de capacidad aprovisionada de DynamoDB](provisioned-capacity-mode.md) y [Administración automática de la capacidad de rendimiento con la función Auto Scaling de DynamoDB](AutoScaling.md).

### Ejemplo 1: creación de una tabla bajo demanda
<a name="create-payperrequest-example"></a>

Para crear la misma tabla `Music` utilizando el modo bajo demanda:

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --billing-mode=PAY_PER_REQUEST
```

La operación `CreateTable` devuelve metadatos de la tabla, como se muestra a continuación:

```
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music",
        "AttributeDefinitions": [
            {
                "AttributeName": "Artist",
                "AttributeType": "S"
            },
            {
                "AttributeName": "SongTitle",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 0,
            "ReadCapacityUnits": 0
        },
        "TableSizeBytes": 0,
        "TableName": "Music",
        "BillingModeSummary": {
            "BillingMode": "PAY_PER_REQUEST"
        },
        "TableStatus": "CREATING",
        "TableId": "12345678-0123-4567-a123-abcdefghijkl",
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "Artist"
            },
            {
                "KeyType": "RANGE",
                "AttributeName": "SongTitle"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1542397468.348
    }
}
```

**importante**  
 Al llamar a `DescribeTable` en una tabla bajo demanda, las unidades de capacidad de lectura y de escritura se establecen en 0. 

### Ejemplo 2: creación de una tabla aprovisionada
<a name="create-provisioned-example"></a>

En el ejemplo siguiente de la AWS CLI se muestra cómo crear una tabla (`Music`). La clave principal consta de `Artist` (clave de partición) y `SongTitle` (clave de ordenación), ambas de tipo `String`. El desempeño máximo de esta tabla es de 10 unidades de capacidad de lectura y 5 unidades de capacidad de escritura.

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5
```

La operación `CreateTable` devuelve metadatos de la tabla, como se muestra a continuación:

```
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music",
        "AttributeDefinitions": [
            {
                "AttributeName": "Artist",
                "AttributeType": "S"
            },
            {
                "AttributeName": "SongTitle",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 5,
            "ReadCapacityUnits": 10
        },
        "TableSizeBytes": 0,
        "TableName": "Music",
        "TableStatus": "CREATING",
        "TableId": "12345678-0123-4567-a123-abcdefghijkl",
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "Artist"
            },
            {
                "KeyType": "RANGE",
                "AttributeName": "SongTitle"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1542397215.37
    }
}
```

El componente `TableStatus` indica el estado actual de la tabla (`CREATING`). Puede que la tabla tarde un tiempo en crearse, según los valores especificados para `ReadCapacityUnits` y `WriteCapacityUnits`. Cuanto mayores sean estos valores, más recursos tendrá que asignar DynamoDB a la tabla.

### Ejemplo 3: creación de una tabla mediante la clase de tabla de acceso poco frecuente estándar de DynamoDB
<a name="create-infrequent-access-example"></a>

Para crear lo misma tabla `Music` utilizando la clase de tabla de acceso DynamoDB Estándar - Acceso poco frecuente.

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --table-class STANDARD_INFREQUENT_ACCESS
```

La operación `CreateTable` devuelve metadatos de la tabla, como se muestra a continuación:

```
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music",
        "AttributeDefinitions": [
            {
                "AttributeName": "Artist",
                "AttributeType": "S"
            },
            {
                "AttributeName": "SongTitle",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 5,
            "ReadCapacityUnits": 10
        },
        "TableClassSummary": {
            "LastUpdateDateTime": 1542397215.37,
            "TableClass": "STANDARD_INFREQUENT_ACCESS"
        },
        "TableSizeBytes": 0,
        "TableName": "Music",
        "TableStatus": "CREATING",
        "TableId": "12345678-0123-4567-a123-abcdefghijkl",
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "Artist"
            },
            {
                "KeyType": "RANGE",
                "AttributeName": "SongTitle"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1542397215.37
    }
}
```

## Descripción de una tabla
<a name="WorkingWithTables.Basics.DescribeTable"></a>

Para ver información detallada sobre una tabla, utilice la operación `DescribeTable`. Debe proporcionar el nombre de la tabla. El resultado de `DescribeTable` tiene el mismo formato que el de `CreateTable`; Incluye la marca temporal del momento de creación de la tabla, su esquema de claves, su configuración de rendimiento aprovisionado, su tamaño aproximado y los índices secundarios (si los hay).

**importante**  
 Al llamar a `DescribeTable` en una tabla bajo demanda, las unidades de capacidad de lectura y de escritura se establecen en 0. 

**Example**  

```
aws dynamodb describe-table --table-name Music
```

La tabla está lista para usarla cuando el valor de `TableStatus` cambia de `CREATING` a `ACTIVE`.

**nota**  
Si emite una solicitud `DescribeTable` inmediatamente después de una solicitud `CreateTable`, DynamoDB podría devolver un error (`ResourceNotFoundException`). El motivo es que `DescribeTable` usa una consulta con consistencia final, aunque los metadatos de la tabla podrían no estar disponibles todavía. Espere unos segundos y repita la solicitud `DescribeTable`.  
A efectos de facturación, los costes de almacenamiento de DynamoDB incluyen un importe por elemento de 100 bytes en concepto de gastos generales. (Para obtener más información, consulte los [precios de DynamoDB](https://aws.amazon.com/dynamodb/pricing/)). Este importe adicional de 100 bytes por elemento no se utiliza al calcular las unidades de capacidad ni en la operación `DescribeTable`. 

## Actualización de una tabla
<a name="WorkingWithTables.Basics.UpdateTable"></a>

La operación `UpdateTable` permite realizar una de las acciones siguientes:
+ Modificar los ajustes de rendimiento aprovisionado de una tabla (para las tablas en modo aprovisionado).
+ Cambiar el modo de capacidad de lectura/escritura de la tabla.
+ Manipular los índices secundarios globales de la tabla (consulte [Uso de índices secundarios globales en DynamoDB](GSI.md)).
+ Habilite o desactive los DynamoDB Streams en la tabla (consulte [Captura de datos de cambios para DynamoDB Streams](Streams.md)).

**Example**  
En el siguiente ejemplo de la AWS CLI se muestra cómo modificar los ajustes de desempeño provisionado de una tabla:  

```
aws dynamodb update-table --table-name Music \
    --provisioned-throughput ReadCapacityUnits=20,WriteCapacityUnits=10
```

**nota**  
Cuando se emite una solicitud `UpdateTable`, el estado de la tabla cambia de `AVAILABLE` a `UPDATING`. La tabla permanece plenamente disponible para su uso mientras se encuentra en el estado `UPDATING`. Cuando este proceso finaliza, el estado de la tabla cambia de `UPDATING` a `AVAILABLE`.

**Example**  
En el siguiente ejemplo de la AWS CLI se muestra cómo modificar el modo de capacidad de lectura/escritura de una tabla al modo bajo demanda:  

```
aws dynamodb update-table --table-name Music \
    --billing-mode PAY_PER_REQUEST
```

## Eliminación de una tabla
<a name="WorkingWithTables.Basics.DeleteTable"></a>

Puede eliminar las tablas que no utilice con la operación `DeleteTable`. La eliminación de una tabla es una operación irrecuperable. Para eliminar una tabla con la Consola de administración de AWS, consulte [Paso 6: (opcional) Eliminar la tabla de DynamoDB para limpiar los recursos](getting-started-step-6.md).

**Example**  
En el ejemplo siguiente de AWS CLI, se muestra cómo se elimina una tabla.  

```
aws dynamodb delete-table --table-name Music
```

Cuando se emite una solicitud `DeleteTable`, el estado de la tabla cambia de `ACTIVE` a `DELETING`. Puede que la tabla tarde un tiempo en eliminarse, según los recursos que utilice; por ejemplo, los datos almacenados en la tabla y las secuencias o índices que contenga.

Cuando la operación `DeleteTable` concluya, la tabla ya no existirá en DynamoDB.

## Uso de la protección contra eliminación
<a name="WorkingWithTables.Basics.DeletionProtection"></a>

Puede proteger una tabla contra la eliminación accidental con la propiedad de protección contra la eliminación. Activar esta propiedad para las tablas contribuye a garantizar que las tablas no se eliminen accidentalmente durante las operaciones habituales de administración de tablas por parte de sus administradores. De este modo evitará que se interrumpan las operaciones de negocio normales.

 El propietario de la tabla o un administrador autorizado controla la propiedad de protección contra la eliminación de cada tabla. La propiedad de protección contra eliminación para cada tabla está desactivada de forma predeterminada. Se incluyen las réplicas globales y las tablas restauradas a partir de copias de seguridad. Cuando la protección contra el borrado está desactivada para una tabla, ésta puede ser eliminada por cualquier usuario autorizado por una política de Identity and Access Management (IAM). Cuando la protección contra la eliminación está activada para una tabla, nadie puede eliminarla. 

Para cambiar esta configuración, vaya a la **configuración adicional** de la tabla, navegue al panel **Protección contra eliminación** y seleccione **Habilitar protección contra eliminaciones**. 

La propiedad de protección contra eliminación se admite en la consola de DynamoDB, API, CLI/SDK y CloudFormation. La API `CreateTable` admite la propiedad de protección contra eliminación en el momento de creación de la tabla y la API `UpdateTable` admite el cambio de la propiedad de protección contra eliminación para las tablas existentes.

**nota**  
Si se elimina una cuenta de AWS, todos los datos de esa cuenta, incluidas las tablas, se eliminan igualmente en un plazo de 90 días.
Si DynamoDB pierde el acceso a una clave administrada por el cliente que se utilizó para cifrar una tabla, seguirá archivando la tabla. Archivar implica hacer una copia de seguridad de la tabla y eliminar el original.

## Enumeración de nombres de tablas
<a name="WorkingWithTables.Basics.ListTables"></a>

La operación `ListTables` devuelve los nombres de las tablas de DynamoDB de la región y cuenta de AWS actuales.

**Example**  
En el siguiente ejemplo de la AWS CLI se muestra cómo enumerar los nombres de las tablas de DynamoDB.  

```
aws dynamodb list-tables
```

## Descripción de las cuotas de rendimiento aprovisionado
<a name="WorkingWithTables.Basics.DescribeLimits"></a>

La operación `DescribeLimits` devuelve las cuotas vigentes de capacidad de lectura y escritura de la región y cuenta de AWS actuales.

**Example**  
En el siguiente ejemplo de la AWS CLI se muestra cómo describir las cuotas de rendimiento aprovisionado actuales.  

```
aws dynamodb describe-limits
```
El resultado muestra las cuotas superiores de unidades de capacidad de lectura y escritura de la región y cuenta de AWS actuales.

Para obtener más información acerca de estas cuotas y cómo solicitar un aumento de cuotas, consulte [Cuotas de rendimiento predeterminadas](ServiceQuotas.md#default-limits-throughput).

# Aspectos que tener en cuenta a la hora de elegir una clase de tabla en DynamoDB
<a name="WorkingWithTables.tableclasses"></a>

DynamoDB ofrece dos clases de tablas diseñadas para ayudarle a optimizar los costos. La clase de tabla DynamoDB Estándar es la predeterminada y se recomienda para la gran mayoría de las cargas de trabajo. La clase de tabla DynamoDB Estándar - Acceso poco frecuente (DynamoDB Standard-IA) está optimizada para tablas en las que el almacenamiento es el costo dominante. Por ejemplo, las tablas que almacenan datos a los que se accede con poca frecuencia, como registros de aplicaciones, publicaciones antiguas en redes sociales, historial de pedidos de comercio electrónico y antiguos logros en juegos, son buenas candidatas para la clase de tabla Standard - IA.

Cada tabla de DynamoDB está asociada a una clase de tabla. Todos los índices secundarios asociados a la tabla utilizan la misma clase de tabla. Puede configurar la clase de tabla al crear la tabla (DynamoDB Estándar de forma predeterminada) y actualizar la clase de tabla de una tabla existente mediante la Consola de administración de AWS, la CLI de AWS o el SDK de AWS. DynamoDB también es compatible con la administración de la clase de tabla mediante AWS CloudFormation para tablas de una región (tablas que no son globales). Cada clase de tabla ofrece diferentes precios para el almacenamiento de datos, así como para las solicitudes de lectura y escritura. A la hora de elegir una clase de tabla para su tabla, tenga en cuenta lo siguiente:
+ La clase de tabla DynamoDB Estándar ofrece menores costos de rendimiento que DynamoDB Standard - IA y es la opción más rentable para tablas en las que el rendimiento es el costo dominante. 
+ La clase de tabla DynamoDB Standard - IA ofrece menores costos de almacenamiento que DynamoDB Estándar y es la opción más rentable para tablas en las que el almacenamiento es el costo dominante. Cuando el almacenamiento supera el 50 % del coste de rendimiento (lecturas y escrituras) de una tabla que utiliza la clase de tabla DynamoDB Estándar, la clase de tabla DynamoDB Standard - IA puede ayudarlo a reducir el costo total de la tabla. 
+ Las tablas DynamoDB Standard-IA ofrecen el mismo rendimiento, durabilidad y disponibilidad que las tablas DynamoDB Standard. 
+ El cambio entre las clases de tabla DynamoDB Standard y DynamoDB Standard-IA no requiere cambiar el código de la aplicación. Se utilizan las mismas API de DynamoDB y punto de conexión de servicio, independientemente de la clase de tabla que utilicen sus tablas. 
+ Las tablas DynamoDB Standard-IA son compatibles con todas las características existentes de DynamoDB, tales como escalado automático, modo bajo demanda, período de vida (TTL), copias de seguridad bajo demanda, recuperación a un momento dado (PITR) e índices secundarios globales.

La clase de tabla más rentable para su tabla depende de los patrones de uso de almacenamiento y rendimiento previstos para su tabla. Puede consultar el historial de costos de almacenamiento y rendimiento de la tabla y su uso con los Informes de costos y uso de AWS y con AWS Cost Explorer. Utilice estos datos históricos para determinar la clase de tabla más rentable para su tabla. Para obtener más información sobre el uso de los Informes de costos y uso de AWS y AWS Cost Explorer, consulte la [Documentación sobre Billing and Cost Management de AWS](https://docs.aws.amazon.com/account-billing/index.html). Consulte [Precio de Amazon DynamoDB](https://aws.amazon.com/dynamodb/pricing/on-demand/) para obtener más información sobre los precios de las clases de tablas.

**nota**  
Una actualización de clase de tabla es un proceso en segundo plano. Puede seguir accediendo a la tabla con normalidad durante la actualización de una clase de tabla. El tiempo de actualización de la clase de tabla depende del tráfico de la tabla, el tamaño del almacenamiento y otras variables relacionadas. No se permiten más de dos actualizaciones de la clase de tabla en un período de 30 días.

# Cómo agregar etiquetas a los recursos en DynamoDB
<a name="Tagging"></a>

Puede asignar *etiquetas* a los recursos de Amazon DynamoDB. Las etiquetas le permiten categorizar los recursos de distintas maneras; por ejemplo, según su finalidad, propietario, entorno u otro criterio. Las etiquetas pueden ayudar a hacer lo siguiente:
+ Identificar rápidamente un recurso según las etiquetas que le haya asignado.
+ Consultar las facturas de AWS desglosadas por etiquetas.
**nota**  
A los índices secundarios locales (LSI) y los índices secundarios globales (GSI) relacionados con las tablas etiquetadas se les asignan automáticamente las mismas etiquetas. En la actualidad, no se puede etiquetar el uso de DynamoDB Streams.

El etiquetado es compatible con servicios de AWS como Amazon EC2, Amazon S3, DynamoDB, entre otros. Un etiquetado eficiente puede ofrecerle información detallada sobre los costos, ya que le permite crear informes sobre los servicios que llevan una etiqueta determinada.

Para empezar a usar etiquetas, haga lo siguiente:

1. Comprender [Restricciones de etiquetado en DynamoDB](#TaggingRestrictions).

1. Crear etiquetas mediante [Recursos de etiquetado en DynamoDB](Tagging.Operations.md).

1. Usar [Uso de etiquetas de DynamoDB para crear informes de asignación de costos](#CostAllocationReports) para realizar el seguimiento de los costes de AWS según su etiqueta activa.

Por último, es conveniente seguir estrategias de etiquetado óptimas. Para obtener más información, consulte [Estrategias de etiquetado de AWS](https://d0.awsstatic.com/aws-answers/AWS_Tagging_Strategies.pdf).

## Restricciones de etiquetado en DynamoDB
<a name="TaggingRestrictions"></a>

 Cada etiqueta consta de una clave y un valor, ambos definidos por el usuario. Se aplican las siguientes restricciones: 
+  Cada tabla puede de DynamoDB solo puede tener una etiqueta con la misma clave. Si intenta agregar una etiqueta existente (con la misma clave), el valor de la etiqueta existente se actualiza con el valor nuevo. 
+  Las claves y los valores de las etiquetas distinguen entre mayúsculas y minúsculas. 
+  La longitud máxima de la clave es de 128 caracteres Unicode. 
+ La longitud máxima del valor es de 256 caracteres Unicode. 
+  Los caracteres permitidos son letras, espacios en blanco y números, además de los caracteres especiales siguientes: `+ - = . _ : /` 
+  El número máximo de etiquetas por recurso es 50.
+ El tamaño máximo admitido para todas las etiquetas de una tabla es de 10 KB.
+ A los nombres y valores de etiquetas asignados por AWS se les asigna automáticamente el prefijo `aws:`, que no puede asignar. Los nombres de etiquetas asignados por AWS no cuentan para el límite de etiquetas de 50 o el límite de tamaño máximo de 10 KB. Los nombres de etiquetas asignados por el usuario presentan el prefijo `user:` en el informe de asignación de costos. 
+  No es posible antedatar la aplicación de una etiqueta. 

# Recursos de etiquetado en DynamoDB
<a name="Tagging.Operations"></a>

Puede usar la consola de Amazon DynamoDB o la AWS Command Line Interface (AWS CLI) para añadir, enumerar, editar o eliminar etiquetas. A continuación, puede activar estas etiquetas definidas por el usuario de modo que aparezcan en la consola de Administración de facturación y costos de AWS y así poder usarlas para el seguimiento de asignación de costos. Para obtener más información, consulte [Uso de etiquetas de DynamoDB para crear informes de asignación de costos](Tagging.md#CostAllocationReports). 

 Para la edición en bloque, también puede usar Tag Editor en la Consola de administración de AWS. Para obtener más información, consulte [Uso de Tag Editor](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html).

 Para usar la API de DynamoDB en su lugar, consulte las siguientes operaciones en la [Referencia de la API de Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/):
+ [TagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TagResource.html)
+ [UntagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UntagResource.html)
+ [ListTagsOfResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTagsOfResource.html)

**Topics**
+ [Establecer permisos para filtrar por etiquetas](#Tagging.Operations.permissions)
+ [Añadir etiquetas a tablas nuevas o existentes (Consola de administración de AWS)](#Tagging.Operations.using-console)
+ [Añadir etiquetas a tablas nuevas o existentes (AWS CLI)](#Tagging.Operations.using-cli)

## Establecer permisos para filtrar por etiquetas
<a name="Tagging.Operations.permissions"></a>

Para utilizar etiquetas a fin de filtrar la lista de tablas en la consola de DynamoDB, asegúrese de que las políticas del usuario incluyan acceso a las siguientes operaciones:
+ `tag:GetTagKeys`
+ `tag:GetTagValues`

Puede acceder a estas operaciones adjuntando una nueva política de IAM a su usuario siguiendo los pasos que se indican a continuación.

1. Ingrese a la [Consola de IAM](https://console.aws.amazon.com/iam/) con un usuario administrador.

1. Seleccione “Policies” (Políticas) en el menú de navegación izquierdo.

1. Seleccione “Create Policy” (Crear política).

1. Pegue la siguiente política en el editor JSON.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetTagKeys",
                   "tag:GetTagValues"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Complete el asistente y asigne un nombre a la política (por ejemplo, `TagKeysAndValuesReadAccess`).

1. Seleccione “Users” (Usuarios) en el menú de navegación izquierdo.

1. En la lista, seleccione el usuario que utiliza habitualmente para acceder a la consola de DynamoDB.

1. Seleccione “Add permissions” (Añadir permisos).

1. Seleccione “Attach existing policies directly” (Asociar directamente las políticas existentes).

1. En la lista, seleccione la política que ha creado previamente.

1. Complete el asistente.

## Añadir etiquetas a tablas nuevas o existentes (Consola de administración de AWS)
<a name="Tagging.Operations.using-console"></a>

Puede usar la consola de DynamoDB para añadir etiquetas a tablas nuevas cuando las cree, o para añadir, editar o eliminar etiquetas de tablas existentes.

**Para etiquetar recursos al crearlos (consola)**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de DynamoDB en [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/).

1. En el panel de navegación, elija **Tablas** y, a continuación, seleccione **Crear tabla**.

1. En la página **Create DynamoDB table (Crear tabla de DynamoDB)**, proporcione un nombre y una clave principal. En la sección **Tags** (Etiquetas), elija **Add new tag** (Agregar nueva etiqueta) e ingrese las etiquetas que desee utilizar.

   Para obtener más información sobre la estructura de las etiquetas, consulte [Restricciones de etiquetado en DynamoDB](Tagging.md#TaggingRestrictions). 

   Para obtener más información sobre cómo crear tablas, consulte [Operaciones básicas en tablas de DynamoDB](WorkingWithTables.Basics.md).

**Para etiquetar recursos existentes (consola)**

Abra la consola de DynamoDB en [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/).

1. En el panel de navegación, elija **Tablas**.

1. Elija una tabla de la lista y, a continuación, elija la pestaña **Additional settings** (Configuración adicional). Puede agregar, editar o eliminar las etiquetas en la sección **Tags** (Etiquetas) en la parte inferior de la página.

## Añadir etiquetas a tablas nuevas o existentes (AWS CLI)
<a name="Tagging.Operations.using-cli"></a>

En los ejemplos siguientes se muestra cómo usar la AWS CLI para especificar etiquetas al crear tablas e índices, así como para etiquetar recursos existentes.

**Para etiquetar recursos al crearlos (AWS CLI)**
+ En el ejemplo siguiente se crea una nueva tabla de `Movies` y se añade la etiqueta `Owner` con un valor de `blueTeam`: 

  ```
  aws dynamodb create-table \
      --table-name Movies \
      --attribute-definitions AttributeName=Title,AttributeType=S \
      --key-schema AttributeName=Title,KeyType=HASH \
      --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
      --tags Key=Owner,Value=blueTeam
  ```

**Para etiquetar recursos existentes (AWS CLI)**
+ En el ejemplo siguiente se añade la etiqueta `Owner` con un valor de `blueTeam` para la tabla `Movies`: 

  ```
  aws dynamodb tag-resource \
      --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/Movies \
      --tags Key=Owner,Value=blueTeam
  ```

**Para enumerar todas las etiquetas de una tabla (AWS CLI)**
+ En el ejemplo siguiente se muestran todas las etiquetas asociadas con la tabla `Movies`:

  ```
  aws dynamodb list-tags-of-resource \
      --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/Movies
  ```

## Uso de etiquetas de DynamoDB para crear informes de asignación de costos
<a name="CostAllocationReports"></a>

AWS utiliza etiquetas para organizar los costos de los recursos en el informe de asignación de costos. AWS proporciona dos tipos de etiquetas de asignación de costos:
+ Una etiqueta generada por AWS. AWS define, crea y aplica esta etiqueta por usted.
+ Etiquetas definidas por el usuario. Puede definir, crear y aplicar estas etiquetas.

Debe activar ambos tipos de etiquetas por separado para que puedan aparecer en el Explorador de costos o en un informe de asignación de costos. 

 Para activar las etiquetas generadas por AWS: 

1.  Inicie sesión en la Consola de administración de AWS abra la consola de Billing and Cost Management en [https://console.aws.amazon.com/billing/home\$1/](https://console.aws.amazon.com/billing/home#/.). 

1.  En el panel de navegación, seleccione **Etiquetas de asignación de costos**. 

1.  En **Etiquetas de asignación de costos generada por AWS**, elija **Activar**. 

 Para activar las etiquetas definidas por el usuario: 

1.  Inicie sesión en la Consola de administración de AWS abra la consola de Billing and Cost Management en [https://console.aws.amazon.com/billing/home\$1/](https://console.aws.amazon.com/billing/home#/.). 

1.  En el panel de navegación, seleccione **Etiquetas de asignación de costos**. 

1.  En **Etiquetas de asignación de costos definidas por el usuario**, elija **Activar**. 

 Después de crear y activar las etiquetas, AWS genera un informe de asignación de costos con el uso y los costos agrupados según las etiquetas activas. El informe de asignación de costes incluye todos los costes de AWS para cada periodo de facturación. El informe incluye tanto recursos etiquetados como sin etiquetar, para que pueda organizar con claridad los cargos de los recursos. 

**nota**  
 En la actualidad, los datos transferidos desde DynamoDB no se desglosan según las etiquetas en los informes de asignación de costos. 

 Para obtener más información, consulte [Uso de etiquetas de asignación de costos](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). 