

# Uso de operaciones de etiquetas de la AWS CLI y API
<a name="tags-operations"></a>

Utilice las siguientes operaciones de etiquetas para agregar, quitar o enumerar etiquetas en un recurso.


****  

| API | CLI | Descripción de la acción | 
| --- | --- | --- | 
| TagResource | tag-resource | Agregue o sobrescriba una o más etiquetas en el recurso que tiene el ARN especificado. | 
| UntagResource | untag-resource | Elimine una o más etiquetas del recurso que tiene el ARN especificado. | 
| ListTagsForResource | list‑tags‑for‑resource | Enumere una o más etiquetas para el recurso que tiene el ARN especificado. | 

**Adición de etiquetas al crear un recurso**  
Para agregar etiquetas al crear un grupo de trabajo o un catálogo de datos, utilice el parámetro `tags` con las operaciones de API `CreateWorkGroup` o `CreateDataCatalog` o con los comandos AWS CLI o `create-work-group` de la `create-data-catalog`.

## Administración de etiquetas con acciones de la API
<a name="tags-operations-examples-java"></a>

En los ejemplos siguientes se muestra cómo utilizar acciones de API de etiquetas para administrar las etiquetas en los grupos de trabajo y los catálogos de datos. Los ejemplos están en el lenguaje de programación Java.

### Ejemplo: TagResource
<a name="tags-operations-examples-java-tag-resource"></a>

En el ejemplo siguiente se agregan dos etiquetas al grupo de trabajo `workgroupA`:

```
List<Tag> tags = new ArrayList<>();
tags.add(new Tag().withKey({{"tagKey1"}}).withValue({{"tagValue1"}}));
tags.add(new Tag().withKey({{"tagKey2"}}).withValue({{"tagValue2"}}));

TagResourceRequest request = new TagResourceRequest()
    .withResourceARN({{"arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA"}})
    .withTags(tags);

client.tagResource(request);
```

En el ejemplo siguiente se agregan dos etiquetas al catálogo de datos `datacatalogA`:

```
List<Tag> tags = new ArrayList<>();
tags.add(new Tag().withKey("{{tagKey1}}").withValue("{{tagValue1}}"));
tags.add(new Tag().withKey("{{tagKey2}}").withValue("{{tagValue2}}"));

TagResourceRequest request = new TagResourceRequest()
    .withResourceARN("{{arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA}}")
    .withTags(tags);

client.tagResource(request);
```

**nota**  
No agregue claves de etiqueta duplicadas al mismo recurso. Si lo hace, Athena emite un mensaje de error. Si etiqueta un recurso mediante una clave de etiqueta existente en una acción `TagResource` separada, el valor de la etiqueta nueva sobrescribe el valor antiguo.

### Ejemplo: UntagResource
<a name="tags-operations-examples-java-untag-resource"></a>

En el ejemplo siguiente se quita `tagKey2` del grupo de trabajo `workgroupA`:

```
List<String> tagKeys = new ArrayList<>();
tagKeys.add("{{tagKey2}}");

UntagResourceRequest request = new UntagResourceRequest()
    .withResourceARN("{{arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA"}})
    .withTagKeys(tagKeys);

client.untagResource(request);
```

En el ejemplo siguiente se quita `tagKey2` del catálogo de datos `datacatalogA`:

```
List<String> tagKeys = new ArrayList<>();
tagKeys.add("{{tagKey2}}");

UntagResourceRequest request = new UntagResourceRequest()
    .withResourceARN("{{arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA}}")
    .withTagKeys(tagKeys);

client.untagResource(request);
```

### Ejemplo: ListTagsForResource
<a name="tags-operations-examples-java-list-tags-for-resource"></a>

En el ejemplo siguiente se enumeran las etiquetas del grupo de trabajo `workgroupA`:

```
ListTagsForResourceRequest request = new ListTagsForResourceRequest()
    .withResourceARN({{"arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA"}});

ListTagsForResourceResult result = client.listTagsForResource(request);

List<Tag> resultTags = result.getTags();
```

En el ejemplo siguiente se enumeran las etiquetas del catálogo de datos `datacatalogA`:

```
ListTagsForResourceRequest request = new ListTagsForResourceRequest()
    .withResourceARN("{{arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA}}");

ListTagsForResourceResult result = client.listTagsForResource(request);

List<Tag> resultTags = result.getTags();
```

## Administración de las etiquetas mediante la AWS CLI
<a name="tags-operations-examples-cli"></a>

En los ejemplos siguientes se muestra cómo utilizar la AWS CLI para crear y administrar etiquetas en catálogos de datos.

### Adición de etiquetas a un recurso: tag-resource
<a name="tags-operations-examples-cli-tag-resource"></a>

El comando `tag-resource` agrega una o varias etiquetas a un recurso especificado.

**Sintaxis**  
`aws athena tag-resource --resource-arn arn:aws:athena:{{region}}:{{account_id}}:datacatalog/{{catalog_name}} --tags Key={{string}},Value={{string}} Key={{string}},Value={{string}}`

El parámetro `--resource-arn` especifica el recurso al que se agregan las etiquetas. El parámetro `--tags` especifica una lista de pares clave-valor separados por espacios para agregar como etiquetas al recurso. 

**Example**  
En el ejemplo siguiente se agregan etiquetas al catálogo de datos `mydatacatalog`.  

```
aws athena tag-resource --resource-arn arn:aws:athena:us-east-1:111122223333:datacatalog/mydatacatalog --tags Key=Color,Value=Orange Key=Time,Value=Now
```
Para mostrar el resultado, use el comando `list-tags-for-resource`.   
Para obtener información sobre cómo agregar etiquetas al utilizar el comando `create-data-catalog`, consulte [Registro de un catálogo: create-data-catalog](datastores-hive-cli.md#datastores-hive-cli-registering-a-catalog).

### Descripción de las etiquetas de un recurso: list-tags-for-resource
<a name="tags-operations-examples-cli-list-tags-for-resource"></a>

El comando `list-tags-for-resource` enumera las etiquetas del recurso especificado.

**Sintaxis**  
`aws athena list-tags-for-resource --resource-arn arn:aws:athena:{{region}}:{{account_id}}:datacatalog/{{catalog_name}}`

El parámetro `--resource-arn` especifica el recurso para el que se enumeran las etiquetas. 

En el ejemplo siguiente se enumeran las etiquetas del catálogo de datos `mydatacatalog`.

```
aws athena list-tags-for-resource --resource-arn arn:aws:athena:us-east-1:111122223333:datacatalog/mydatacatalog
```

El siguiente resultado de ejemplo está en formato JSON.

```
{
    "Tags": [
        {
            "Key": "Time",
            "Value": "Now"
        },
        {
            "Key": "Color",
            "Value": "Orange"
        }
    ]
}
```

### Eliminación de las etiquetas de un recurso: untag-resource: untag-resource
<a name="tags-operations-examples-cli-untag-resource"></a>

El comando `untag-resource` quita las claves de etiqueta especificadas y sus valores asociados del recurso especificado.

**Sintaxis**  
`aws athena untag-resource --resource-arn arn:aws:athena:{{region}}:{{account_id}}:datacatalog/{{catalog_name}} --tag-keys {{key_name}} [{{key_name}} ...]` 

El parámetro `--resource-arn` especifica el recurso del que se quitan las etiquetas. El parámetro `--tag-keys` toma una lista separada por espacios de nombres de las clave. Para cada nombre de clave especificado, el comando `untag-resource` elimina tanto la clave como su valor.

En el ejemplo siguiente se quitan las claves `Color` y `Time` y sus valores del recurso de catálogo `mydatacatalog`.

```
aws athena untag-resource --resource-arn arn:aws:athena:us-east-1:111122223333:datacatalog/mydatacatalog --tag-keys Color Time
```