

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.

# Tutoriales de ActiveMQ
<a name="activemq-on-amazon-mq"></a>

En los siguientes tutoriales, se muestra cómo puede crear los agentes de ActiveMQ y conectar con ellos. Si quiere usar el código de ejemplo de Java de ActiveMQ, debe instalar [Java Standard Edition Development Kit](https://www.oracle.com/technetwork/java/javase/downloads/index.html) y efectuar algunos cambios de configuración en el código de ejemplo.

**Topics**
+ [Creating and Configuring a Network of Brokers](amazon-mq-creating-configuring-network-of-brokers.md)
+ [Connecting a Java application to your broker](amazon-mq-connecting-application.md)
+ [Integración de agentes de ActiveMQ con LDAP](security-authentication-authorization.md)
+ [Connect your Amazon MQ for ActiveMQ broker to Lambda](#activemq-connect-to-lambda)
+ [Creación de un usuario del agente de ActiveMQ](amazon-mq-listing-managing-users.md)
+ [Edición de un usuario de agente de ActiveMQ](edit-existing-user-console.md)
+ [Eliminación de un usuario de agente de ActiveMQ](delete-existing-user-console.md)
+ [Working Java Example](amazon-mq-working-java-example.md)

## Paso 3: (Opcional) Conectarse a una AWS Lambda función
<a name="activemq-connect-to-lambda"></a>

 AWS Lambda puede conectarse a su agente de Amazon MQ y consumirlos. Cuando conecta un agente a Lambda, crea un [mapeo de origen de eventos](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html) que lee mensajes de una cola e invoca la función [de forma sincrónica](https://docs.aws.amazon.com/lambda/latest/dg/invocation-sync.html). El mapeo de origen de eventos que crea lee los mensajes de su agente en lotes y los convierte en una carga de Lambda en forma de objeto JSON. 

**Conectar a su agente con una función Lambda**

1. Agregue los siguientes permisos de roles de IAM al [rol de ejecución](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) de su función Lambda.
   + [mq: DescribeBroker](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-http-methods)
   + [ec2: CreateNetworkInterface](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
   + [ec2: DeleteNetworkInterface](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html)
   + [ec2: DescribeNetworkInterfaces](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html)
   + [ec2: DescribeSecurityGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
   + [ec2: DescribeSubnets](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html)
   + [ec2: DescribeVpcs](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html)
   + [registros: CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)
   + [registros: CreateLogStream](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html)
   + [registros: PutLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)
   + [administrador de secretos: GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)
**nota**  
Sin los permisos necesarios de IAM, su función no podrá leer correctamente los registros de los recursos de Amazon MQ.

1.  (Opcional) Si ha creado un agente sin accesibilidad pública, debe realizar una de las siguientes acciones para permitir que Lambda se conecte con su agente: 
   +  Puede configurar una gateway NAT para cada subred pública. Para obtener más información, consulte el tema sobre [acceso a Internet y a los servicios para funciones conectadas a la VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-internet) en la *AWS Lambda Guía para desarrolladores*. 
   + Cree una conexión entre Amazon Virtual Private Cloud (Amazon VPC) y Lambda a través de un punto de enlace de la VPC. Su Amazon VPC también debe conectarse a AWS Security Token Service (AWS STS) y a los puntos de conexión de Secrets Manager. Para obtener más información, consulte [Configuración de puntos de conexión de VPC de interfaz para Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc-endpoints.html) en la *AWS Lambda Guía para desarrolladores*. 

1.  [Configure el agente como origen de eventos](https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping) para una función Lambda a través de la Consola de administración de AWS. También puede usar el [https://docs.aws.amazon.com/cli/latest/reference/lambda/create-event-source-mapping.html](https://docs.aws.amazon.com/cli/latest/reference/lambda/create-event-source-mapping.html) AWS Command Line Interface comando. 

1.  Escriba algún código para que su función de Lambda procese los mensajes de lo consumido desde su agente. La carga de Lambda que recupere el mapeo de origen de eventos depende del tipo de motor del agente. A continuación, se muestra un ejemplo de una carga de Lambda para una cola de ActiveMQ en Amazon MQ. 
**nota**  
 En el ejemplo, `testQueue` es el nombre de la cola. 

   ```
   {
     "eventSource": "aws:amq",
     "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8",
     "messages": {
       [
         {
           "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.govskope.ca-37557-1234520418293-4:1:1:1:1",
           "messageType": "jms/text-message",
           "data": "QUJDOkFBQUE=",
           "connectionId": "myJMSCoID",
           "redelivered": false,
           "destination": {
             "physicalname": "testQueue" 
           }, 
           "timestamp": 1598827811958,
           "brokerInTime": 1598827811958,
           "brokerOutTime": 1598827811959
         },
         {
           "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.govskope.ca-37557-1234520418293-4:1:1:1:1",
           "messageType":"jms/bytes-message",
           "data": "3DTOOW7crj51prgVLQaGQ82S48k=",
           "connectionId": "myJMSCoID1",
           "persistent": false,
           "destination": {
             "physicalname": "testQueue" 
           }, 
           "timestamp": 1598827811958,
           "brokerInTime": 1598827811958,
           "brokerOutTime": 1598827811959
         }
       ]
     }
   }
   ```

Para obtener más información acerca de cómo conectar Amazon MQ a Lambda, las opciones que admite Lambda para un origen de eventos de Amazon MQ y los errores de mapeo de origen de eventos, consulte el tema sobre el [uso de Lambda con Amazon MQ](https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html) en la *AWS Lambda Guía para desarrolladores*.