Broker di messaggi Amazon MQ come fonte in EventBridge Pipes - Amazon EventBridge

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à.

Broker di messaggi Amazon MQ come fonte in EventBridge Pipes

Puoi utilizzare EventBridge Pipes per ricevere record da un broker di messaggi Amazon MQ. Puoi eventualmente filtrare o migliorare questi record prima di inviarli a una delle destinazioni disponibili per l'elaborazione. Esistono impostazioni specifiche di Amazon MQ che puoi scegliere quando configuri una pipe. EventBridge Pipes mantiene l'ordine dei record dal broker di messaggi quando invia i dati alla destinazione.

Amazon MQ è un servizio gestito di broker dei messaggi per Apache ActiveMQ e RabbitMQ. Un broker di messaggi consente alle applicazioni e ai componenti software di comunicare utilizzando vari linguaggi di programmazione, sistemi operativi e protocolli di messaggistica formali con argomenti o code come destinazioni di eventi.

Amazon MQ può anche gestire le istanze Amazon Elastic Compute Cloud (AmazonEC2) per tuo conto installando broker ActiveMQ o RabbitMQ. Dopo l'installazione, un broker fornisce diverse topologie di rete e altre esigenze di infrastruttura alle istanze.

L'origine Amazon MQ presenta le seguenti restrizioni di configurazione:

  • Cross account: non supporta l'elaborazione su più account. EventBridge Non puoi utilizzarlo EventBridge per elaborare i record da un broker di messaggi Amazon MQ che si trova in un altro AWS account.

  • Autenticazione: per ActiveMQ, è supportato solo SimpleAuthenticationPluginActiveMQ. Per RabbitMQ, è supportato solo il meccanismo di autenticazione. PLAIN Per gestire le credenziali, usa AWS Secrets Manager. Per ulteriori informazioni sull'autenticazione ActiveMQ, consulta Integrating ActiveMQ brokers with nella Amazon MQ Developer LDAP Guide.

  • Quota di connessione: i broker hanno un numero massimo di connessioni consentite per ogni protocollo a livello di connessione. Questa quota si basa sul tipo di istanza del broker. Per ulteriori informazioni, consulta la sezione Broker di *Quote in Amazon MQ* nella Guida per gli sviluppatori di Amazon MQ.

  • Connettività: puoi creare broker in un cloud privato virtuale pubblico o privato (). VPC Per quanto riguarda la modalità privataVPCs, la tua pipe deve accedere VPC a per ricevere messaggi.

  • Destinazioni eventi: sono supportate solo le destinazioni di code. Tuttavia, puoi utilizzare un argomento virtuale, che si comporta come argomento internamente e come coda esternamente quando interagisce con le pipe. Per ulteriori informazioni, consulta Destinazioni virtuali sul sito Web di Apache ActiveMQ e Host virtuali sul sito Web di RabbitMQ.

  • Topologia di rete: per ActiveMQ è supportato un solo broker a istanza singola o in standby per ogni pipe. Per RabbitMQ è supportata una sola implementazione di cluster o broker a istanza singola per ogni pipe. I broker a istanza singola richiedono un endpoint di failover. Per ulteriori informazioni su queste modalità di implementazione di broker, consulta Architettura del broker ActiveMQ e Architettura del broker RabbitMQ nella Guida per gli sviluppatori di Amazon MQ.

  • Protocolli: i protocolli supportati dipendono dall'integrazione di Amazon MQ utilizzata.

EventBridge supporta automaticamente le versioni più recenti di ActiveMQ e RabbitMQ supportate da Amazon MQ. Per le ultime versioni supportate, consulta le Note di rilascio di Amazon MQ nella Guida per gli sviluppatori di Amazon MQ.

Nota

Per impostazione predefinita, Amazon MQ prevede un periodo di manutenzione settimanale per i broker. Durante tale periodo, i broker non sono disponibili. Per i broker senza standby, EventBridge non elaborerà i messaggi fino alla fine della finestra.

Eventi di esempio

L'evento di esempio seguente mostra le informazioni ricevute dalla pipe. È possibile utilizzare questo evento per creare e filtrare i modelli di eventi o per definire la trasformazione degli input. Non tutti i campi possono essere filtrati. Per ulteriori informazioni su quali campi è possibile filtrare, consulta Filtraggio degli eventi in Amazon EventBridge Pipes.

ActiveMQ

[ { "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.goskope.com-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 }, { "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.goskope.com-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 } ]

RabbitMQ

[ { "eventSource": "aws:rmq", "eventSourceArn": "arn:aws:mq:us-west-2:111122223333:broker:pizzaBroker:b-9bcfa592-423a-4942-879d-eb284b418fc8", "eventSourceKey": "pizzaQueue::/", "basicProperties": { "contentType": "text/plain", "contentEncoding": null, "headers": { "header1": { "bytes": [ 118, 97, 108, 117, 101, 49 ] }, "header2": { "bytes": [ 118, 97, 108, 117, 101, 50 ] }, "numberInHeader": 10 }, "deliveryMode": 1, "priority": 34, "correlationId": null, "replyTo": null, "expiration": "60000", "messageId": null, "timestamp": "Jan 1, 1970, 12:33:41 AM", "type": null, "userId": "AIDACKCEVSQ6C2EXAMPLE", "appId": null, "clusterId": null, "bodySize": 80 }, "redelivered": false, "data": "eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ==" } ]

Gruppo di consumer

Per interagire con Amazon MQ, EventBridge crea un gruppo di consumatori in grado di leggere i dati dei tuoi broker Amazon MQ. Il gruppo di consumatori viene creato con lo stesso ID della pipeUUID.

Per i sorgenti Amazon MQ, raggruppa EventBridge i record in batch e li invia alla tua funzione in un unico payload. Per controllare il comportamento, puoi configurare il periodo di batching e le dimensioni del batch. EventBridge estrae i messaggi finché non si verifica una delle seguenti condizioni:

  • I record elaborati raggiungono la dimensione di payload massima di 6 MB.

  • Il periodo di batching scade.

  • Il numero di record raggiunge la dimensione di batch massima.

EventBridge converte il batch in un unico payload e quindi richiama la funzione. I messaggi non sono persistenti né deserializzati. Invece, il gruppo di consumatori li recupera sotto forma di byte. BLOB Quindi li codifica in base64 in un payload. JSON Se la pipe restituisce un errore per uno qualsiasi dei messaggi di un batch, EventBridge riprova l'intero batch di messaggi fino a quando l'elaborazione non riesce o i messaggi scadono.

Configurazione della rete

Per impostazione predefinita, i broker Amazon MQ vengono creati con il flag PubliclyAccessible impostato su "false". Il broker riceve un indirizzo IP pubblico solo quando PubliclyAccessible è impostato su "true". Per un accesso completo con la pipe, il broker deve utilizzare un endpoint pubblico o fornire l'accesso a. VPC

Se il tuo broker Amazon MQ non è accessibile al pubblico, EventBridge deve avere accesso alle risorse Amazon Virtual Private Cloud (AmazonVPC) associate al tuo broker.

  • Per accedere ai VPC tuoi broker Amazon MQ, EventBridge puoi utilizzare l'accesso a Internet in uscita per le sottoreti della tua fonte. Per le sottoreti pubbliche questo deve essere un gateway gestito. NAT Per le sottoreti private può essere un NAT gateway o il proprio. NAT Assicurati che NAT abbia un indirizzo IP pubblico e che possa connettersi a Internet.

  • EventBridge Pipes supporta anche l'invio di eventi tramite AWS PrivateLink, che consente di inviare eventi da un'origine di eventi situata in un Amazon Virtual Private Cloud (Amazon VPC) a una destinazione Pipes senza attraversare la rete Internet pubblica. È possibile utilizzare Pipes per eseguire il polling da Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka autogestito e Amazon MQ fonti che risiedono in una sottorete privata senza la necessità di implementare un gateway Internet, configurare regole firewall o configurare server proxy.

    Per configurare un endpoint, consulta Creare un VPC endpoint nella Guida per l'utente. VPC AWS PrivateLink Per il nome del servizio, seleziona. com.amazonaws.region.pipes-data

Configura i tuoi gruppi VPC di sicurezza Amazon con le seguenti regole (come minimo):

  • Regole in entrata: consenti tutto il traffico sulla porta del broker Amazon MQ per i gruppi di sicurezza specificati per la tua origine.

  • Regole in uscita: consenti tutto il traffico sulla porta 443 per tutte le destinazioni. Consenti tutto il traffico sulla porta del broker Amazon MQ per i gruppi di sicurezza specificati per la tua origine.

    Le porte del broker includono:

    • 9092 per testo in chiaro

    • 9094 per TLS

    • 9096 per SASL

    • 9098 per IAM

Nota

La tua VPC configurazione Amazon è rilevabile tramite Amazon MQ API. Non è necessario configurarlo durante l'installazione.