

# Ejemplos de Amazon MSK que utilizan la AWS CLI
<a name="cli_kafka_code_examples"></a>

En los siguientes ejemplos de código se muestra cómo realizar acciones e implementar escenarios comunes usando AWS Command Line Interface con Amazon MSK.

Las *acciones* son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

**Topics**
+ [Acciones](#actions)

## Acciones
<a name="actions"></a>

### `create-cluster`
<a name="kafka_CreateCluster_cli_topic"></a>

En el siguiente ejemplo de código, se muestra cómo utilizar `create-cluster`.

**AWS CLI**  
**Para crear un clúster de Amazon MSK**  
En el siguiente ejemplo de `create-cluster`, se crea un clúster de MSK denominado `MessagingCluster` con tres nodos de agente. Un archivo JSON denominado `brokernodegroupinfo.json` especifica las tres subredes en las que desea que Amazon MSK distribuya los nodos de agente. En este ejemplo no se especifica el nivel de supervisión, por lo que el clúster obtiene el nivel `DEFAULT`.  

```
aws kafka create-cluster \
    --cluster-name "MessagingCluster" \
    --broker-node-group-info file://brokernodegroupinfo.json \
    --kafka-version "2.2.1" \
    --number-of-broker-nodes 3
```
Contenido de `brokernodegroupinfo.json`:  

```
{
    "InstanceType": "kafka.m5.xlarge",
    "BrokerAZDistribution": "DEFAULT",
    "ClientSubnets": [
        "subnet-0123456789111abcd",
        "subnet-0123456789222abcd",
        "subnet-0123456789333abcd"
    ]
}
```
Salida:  

```
{
    "ClusterArn": "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2",
    "ClusterName": "MessagingCluster",
    "State": "CREATING"
}
```
Para obtener más información, consulte [Creación de un clúster de Amazon MSK aprovisionado](https://docs.aws.amazon.com/msk/latest/developerguide/msk-create-cluster.html) en la *Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka*.  
+  Para obtener información sobre la API, consulte [CreateCluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/create-cluster.html) en la *Referencia de comandos de la AWS CLI*. 

### `create-configuration`
<a name="kafka_CreateConfiguration_cli_topic"></a>

En el siguiente ejemplo de código, se muestra cómo utilizar `create-configuration`.

**AWS CLI**  
**Para crear una configuración personalizada de Amazon MSK**  
En el siguiente ejemplo de `create-configuration`, se crea una configuración de MSK personalizada con las propiedades del servidor que se especifican en el archivo de entrada.  

```
aws kafka create-configuration \
    --name "CustomConfiguration" \
    --description "Topic autocreation enabled; Apache ZooKeeper timeout 2000 ms; Log rolling 604800000 ms." \
    --kafka-versions "2.2.1" \
    --server-properties file://configuration.txt
```
Contenido de `configuration.txt`:  

```
auto.create.topics.enable = true
zookeeper.connection.timeout.ms = 2000
log.roll.ms = 604800000
```
Este comando no genera ninguna salida. Salida:  

```
{
    "Arn": "arn:aws:kafka:us-west-2:123456789012:configuration/CustomConfiguration/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2",
    "CreationTime": "2019-10-09T15:26:05.548Z",
    "LatestRevision":
        {
            "CreationTime": "2019-10-09T15:26:05.548Z",
            "Description": "Topic autocreation enabled; Apache ZooKeeper timeout 2000 ms; Log rolling 604800000 ms.",
            "Revision": 1
        },
    "Name": "CustomConfiguration"
}
```
Para obtener más información, consulte [Operaciones de configuración de Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-configuration-operations.html) en la *Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka*.  
+  Para obtener información sobre la API, consulte [CreateConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/create-configuration.html) en la *Referencia de comandos de la AWS CLI*. 

### `describe-cluster`
<a name="kafka_DescribeCluster_cli_topic"></a>

En el siguiente ejemplo de código, se muestra cómo utilizar `describe-cluster`.

**AWS CLI**  
**Para describir un clúster**  
En el siguiente ejemplo de `describe-cluster`, se describe un clúster de Amazon MSK.  

```
aws kafka describe-cluster \
    --cluster-arn arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5
```
Salida:  

```
{
    "ClusterInfo": {
        "BrokerNodeGroupInfo": {
            "BrokerAZDistribution": "DEFAULT",
            "ClientSubnets": [
                "subnet-cbfff283",
                "subnet-6746046b"
            ],
            "InstanceType": "kafka.m5.large",
            "SecurityGroups": [
                "sg-f839b688"
            ],
            "StorageInfo": {
                "EbsStorageInfo": {
                    "VolumeSize": 100
                }
            }
        },
        "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5",
        "ClusterName": "demo-cluster-1",
        "CreationTime": "2020-07-09T02:31:36.223000+00:00",
        "CurrentBrokerSoftwareInfo": {
            "KafkaVersion": "2.2.1"
        },
        "CurrentVersion": "K3AEGXETSR30VB",
        "EncryptionInfo": {
            "EncryptionAtRest": {
                "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a7ca56d5-0768-4b64-a670-339a9fbef81c"
            },
            "EncryptionInTransit": {
                "ClientBroker": "TLS_PLAINTEXT",
                "InCluster": true
            }
        },
        "EnhancedMonitoring": "DEFAULT",
        "OpenMonitoring": {
            "Prometheus": {
                "JmxExporter": {
                    "EnabledInBroker": false
                },
                "NodeExporter": {
                    "EnabledInBroker": false
                }
            }
        },
        "NumberOfBrokerNodes": 2,
        "State": "ACTIVE",
        "Tags": {},
        "ZookeeperConnectString": "z-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-3.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181"
    }
}
```
Para obtener más información, consulte [Enumeración de clústeres de Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-list-clusters.html) en la *Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka*.  
+  Para obtener información sobre la API, consulte [DescribeCluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html) en la *Referencia de comandos de la AWS CLI*. 

### `get-bootstrap-brokers`
<a name="kafka_GetBootstrapBrokers_cli_topic"></a>

En el siguiente ejemplo de código, se muestra cómo utilizar `get-bootstrap-brokers`.

**AWS CLI**  
**Para obtener los agentes de arranque**  
En el siguiente ejemplo de `get-bootstrap-brokers`, se recupera la información del agente de arranque para un clúster de Amazon MSK.  

```
aws kafka get-bootstrap-brokers \
    --cluster-arn arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5
```
Salida:  

```
{
    "BootstrapBrokerString": "b-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9092,b-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9092",
    "BootstrapBrokerStringTls": "b-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9094,b-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9094"
}
```
Para obtener más información, consulte [Obtención de agentes de arranque para un clúster de Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-get-bootstrap-brokers.html) en la *Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka*.  
+  Para obtener información sobre la API, consulte [GetBootstrapBrokers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/get-bootstrap-brokers.html) en la *Referencia de comandos de la AWS CLI*. 

### `list-clusters`
<a name="kafka_ListClusters_cli_topic"></a>

En el siguiente ejemplo de código, se muestra cómo utilizar `list-clusters`.

**AWS CLI**  
**Para enumerar los clústeres disponibles**  
En el siguiente ejemplo de `list-clusters`, se enumeran todos los clústeres de Amazon MSK de su cuenta de AWS.  

```
aws kafka list-clusters
```
Salida:  

```
{
    "ClusterInfoList": [
        {
            "BrokerNodeGroupInfo": {
                "BrokerAZDistribution": "DEFAULT",
                "ClientSubnets": [
                    "subnet-cbfff283",
                    "subnet-6746046b"
                ],
                "InstanceType": "kafka.m5.large",
                "SecurityGroups": [
                    "sg-f839b688"
                ],
                "StorageInfo": {
                    "EbsStorageInfo": {
                        "VolumeSize": 100
                    }
                }
            },
            "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5",
            "ClusterName": "demo-cluster-1",
            "CreationTime": "2020-07-09T02:31:36.223000+00:00",
            "CurrentBrokerSoftwareInfo": {
                "KafkaVersion": "2.2.1"
            },
            "CurrentVersion": "K3AEGXETSR30VB",
            "EncryptionInfo": {
                "EncryptionAtRest": {
                    "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/a7ca56d5-0768-4b64-a670-339a9fbef81c"
                },
                "EncryptionInTransit": {
                    "ClientBroker": "TLS_PLAINTEXT",
                    "InCluster": true
                }
            },
            "EnhancedMonitoring": "DEFAULT",
            "OpenMonitoring": {
                "Prometheus": {
                    "JmxExporter": {
                        "EnabledInBroker": false
                    },
                    "NodeExporter": {
                        "EnabledInBroker": false
                    }
                }
            },
            "NumberOfBrokerNodes": 2,
            "State": "ACTIVE",
            "Tags": {},
            "ZookeeperConnectString": "z-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181,z-3.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:2181"
        }
    ]
}
```
Para obtener más información, consulte [Enumeración de clústeres de Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-list-clusters.html) en la *Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka*.  
+  Para obtener información sobre la API, consulte [ListClusters](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/list-clusters.html) en la *Referencia de comandos de la AWS CLI*. 

### `update-broker-storage`
<a name="kafka_UpdateBrokerStorage_cli_topic"></a>

En el siguiente ejemplo de código, se muestra cómo utilizar `update-broker-storage`.

**AWS CLI**  
**Para actualizar el almacenamiento de EBS para agentes**  
En el siguiente ejemplo de `update-broker-storage`, se actualiza la cantidad de almacenamiento de EBS para todos los agentes del clúster. Amazon MSK establece la misma cantidad de almacenamiento objetivo para cada agente que la cantidad especificada en el ejemplo. Para obtener la versión actual del clúster, descríbalo o enumere todos los clústeres.  

```
aws kafka update-broker-storage \
    --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2" \
    --current-version "K21V3IB1VIZYYH" \
    --target-broker-ebs-volume-info "KafkaBrokerNodeId=ALL,VolumeSizeGB=1100"
```
La salida devuelve un ARN para esta operación `update-broker-storage`. Para determinar si la operación se ha completado, utilice el comando `describe-cluster-operation` con este ARN como entrada.  

```
{
    "ClusterArn": "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2",
    "ClusterOperationArn": "arn:aws:kafka:us-west-2:123456789012:cluster-operation/V123450123/a1b2c3d4-1234-abcd-cdef-22222EXAMPLE-2/a1b2c3d4-abcd-1234-bcde-33333EXAMPLE"
}
```
Para obtener más información, consulte [Escalado vertical del almacenamiento del agente de Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-update-storage.html) en la *Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka*.  
+  Para obtener información sobre la API, consulte [UpdateBrokerStorage](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/update-broker-storage.html) en la *Referencia de comandos de la AWS CLI*. 

### `update-cluster-configuration`
<a name="kafka_UpdateClusterConfiguration_cli_topic"></a>

En el siguiente ejemplo de código, se muestra cómo utilizar `update-cluster-configuration`.

**AWS CLI**  
**Para actualizar la configuración de un clúster de Amazon MSK**  
En el siguiente ejemplo de `update-cluster-configuration`, se actualiza la configuración del clúster de MSK existente especificado. Utiliza una configuración de MSK personalizada.  

```
aws kafka update-cluster-configuration \
    --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2" \
    --configuration-info file://configuration-info.json \
    --current-version "K21V3IB1VIZYYH"
```
Contenido de `configuration-info.json`:  

```
{
    "Arn": "arn:aws:kafka:us-west-2:123456789012:configuration/CustomConfiguration/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2",
    "Revision": 1
}
```
La salida devuelve un ARN para esta operación `update-cluster-configuration`. Para determinar si la operación se ha completado, utilice el comando `describe-cluster-operation` con este ARN como entrada.  

```
{
    "ClusterArn": "arn:aws:kafka:us-west-2:123456789012:cluster/MessagingCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-2",
    "ClusterOperationArn": "arn:aws:kafka:us-west-2:123456789012:cluster-operation/V123450123/a1b2c3d4-1234-abcd-cdef-22222EXAMPLE-2/a1b2c3d4-abcd-1234-bcde-33333EXAMPLE"
}
```
Para obtener más información, consulte [Update the Configuration of an Amazon MSK Cluster](https://docs.aws.amazon.com/msk/latest/developerguide/msk-update-cluster-cofig.html) en la *Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka*.  
+  Para obtener información acerca de la API, consulte [UpdateClusterConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/update-cluster-configuration.html) en la *Referencia de comandos de la AWS CLI*. 