Tutorial di ActiveMQ - Amazon MQ

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial di ActiveMQ

I seguenti tutorial illustrano come creare e connettersi ai broker ActiveMQ. Per utilizzare il codice di esempio ActiveMQ Java, devi installare Java Standard Edition Development Kit e apportare alcune modifiche di configurazione al codice di esempio

Fase 3: (Opzionale) Connect a una AWS Lambda funzione

AWS Lambda può connettersi e utilizzare i messaggi del tuo broker Amazon MQ. Quando si connette un broker a Lambda, si crea una mappatura delle origini degli eventi che legge i messaggi da una coda e richiama la funzione in modo sincrono. La mappatura dell'origine degli eventi creata legge i messaggi dal broker in batch e li converte in un payload Lambda sotto forma di oggetto JSON.

Connessione del broker a una funzione Lambda
  1. Aggiungere le seguenti autorizzazioni del ruolo IAM al ruolo di esecuzione della funzione Lambda.

    Nota

    Senza le necessarie autorizzazioni IAM, la tua funzione non sarà in grado di leggere correttamente i record dalle risorse di Amazon MQ.

  2. (Opzionale) Se hai creato un broker senza accessibilità pubblica, devi effettuare una delle seguenti operazioni per consentire a Lambda di connettersi al broker:

    • Configurare un gateway NAT per sottorete pubblica. Per ulteriori informazioni, consultare Accesso a Internet e ai servizi per funzioni connesse a un VPC nella AWS Lambda Guida per gli sviluppatori.

    • Creare una connessione tra Amazon Virtual Private Cloud (Amazon VPC) e Lambda mediante un endpoint VPC. Il tuo Amazon VPC deve inoltre connettersi agli endpoint AWS Security Token Service (AWS STS) e Secrets Manager. Per ulteriori informazioni, consulta Configuring interface VPC endpoints for Lambda nella AWS Lambda Guida per gli sviluppatori.

  3. Configurare il broker come origine dell'evento per una funzione Lambda che utilizza la AWS Management Console. Puoi anche usare il comando. create-event-source-mapping AWS Command Line Interface

  4. Scrivere un codice per la funzione Lambda per elaborare i messaggi utilizzati dal broker. Il payload Lambda recuperato dalla mappatura dell'origine dell'evento dipende dal tipo di motore del broker. Di seguito è riportato un esempio di payload Lambda per una coda Amazon MQ per ActiveMQ.

    Nota

    Nell'esempio, testQueue corrisponde al nome della coda.

    { "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 } ] } }

Per maggiori informazioni sulla connessione di Amazon MQ a Lambda, le opzioni supportate da Lambda per un'origine dell'evento Amazon MQ e gli errori di mappatura delle origini degli eventi, vedere Uso di Lambda con Amazon MQ nella AWS Lambda Guida per gli sviluppatori.