Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Rubrique Amazon Managed Streaming pour Apache Kafka en tant que source dans Pipes EventBridge
Vous pouvez utiliser EventBridge Pipes pour recevoir des enregistrements d'une rubrique Amazon Managed Streaming for Apache Kafka MSK (Amazon). Vous pouvez éventuellement filtrer ou améliorer ces enregistrements avant de les envoyer à l’une des destinations disponibles pour être traités. Il existe des paramètres spécifiques à Amazon MSK que vous pouvez choisir lors de la configuration d'un canal. EventBridge Pipes conserve l'ordre des enregistrements provenant du courtier de messages lors de l'envoi de ces données à la destination.
Amazon MSK est un service entièrement géré que vous pouvez utiliser pour créer et exécuter des applications utilisant Apache Kafka pour traiter les données de streaming. Amazon MSK simplifie la configuration, le dimensionnement et la gestion des clusters exécutant Apache Kafka. Avec AmazonMSK, vous pouvez configurer votre application pour plusieurs zones de disponibilité et pour des raisons de sécurité avec AWS Identity and Access Management (IAM). Amazon MSK prend en charge plusieurs versions open source de Kafka.
Amazon MSK en tant que source fonctionne de la même manière qu'Amazon Simple Queue Service (AmazonSQS) ou Amazon Kinesis. EventBridgeinterroge en interne les nouveaux messages provenant de la source, puis invoque la cible de manière synchrone. EventBridge lit les messages par lots et les fournit à votre fonction sous forme de charge utile d'événements. La taille de lot maximale est configurable. (par défaut, 100 messages).
Pour les sources basées sur Apache Kafka, EventBridge prend en charge les paramètres de contrôle du traitement, tels que les fenêtres de traitement par lots et la taille des lots.
EventBridge lit les messages de manière séquentielle pour chaque partition. Après EventBridge avoir traité chaque lot, il valide les décalages des messages de ce lot. Si la cible du canal renvoie une erreur pour l'un des messages d'un lot, EventBridge réessaie l'ensemble du lot de messages jusqu'à ce que le traitement aboutisse ou que les messages expirent.
EventBridge envoie le lot de messages lorsqu'il invoque la cible. La charge utile d’un événement contient un tableau de messages. Chaque élément du tableau contient les détails du MSK sujet Amazon et l'identifiant de la partition, ainsi qu'un horodatage et un message codé en base64.
Exemples d’événements
L’exemple d’événement suivant montre les informations reçues par le canal. Vous pouvez utiliser cet événement pour créer et filtrer vos modèles d’événements, ou pour définir la transformation d’entrée. Tous les champs ne peuvent pas être filtrés. Pour plus d’informations sur les champs que vous pouvez filtrer, consultez Filtrage des événements dans Amazon EventBridge Pipes.
[ { "eventSource": "aws:kafka", "eventSourceArn": "arn:aws:kafka:sa-east-1:123456789012:cluster/vpc-2priv-2pub/751d2973-a626-431c-9d4e-d7975eb44dd7-2", "eventSourceKey": "mytopic-0", "topic": "mytopic", "partition": "0", "offset": 15, "timestamp": 1545084650987, "timestampType": "CREATE_TIME", "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "headers": [ { "headerKey": [ 104, 101, 97, 100, 101, 114, 86, 97, 108, 117, 101 ] } ] } ]
Position de départ du sondage et du stream
Sachez que l’interrogation des sources de flux lors de la création et des mises à jour du canal est finalement cohérente.
Lors de la création du canal, le démarrage de l’interrogation des événements depuis le flux peut prendre plusieurs minutes.
Lors des mises à jour du canal dans la configuration d’interrogation des sources, l’arrêt et le redémarrage de l’interrogation des événements depuis le flux peuvent prendre plusieurs minutes.
Cela signifie que si vous spécifiez LATEST
comme position de départ du flux, le canal peut manquer des événements envoyés lors de la création ou des mises à jour du canal. Pour vous assurer de ne manquer aucun événement, définissez la position de départ du flux sur TRIM_HORIZON
.
MSKauthentification par cluster
EventBridge a besoin d'une autorisation pour accéder au MSK cluster Amazon, récupérer des enregistrements et effectuer d'autres tâches. Amazon MSK propose plusieurs options pour contrôler l'accès des clients au MSK cluster. Pour plus d’informations sur la méthode d’authentification utilisée, consultez Comment EventBridge choisir un courtier Bootstrap.
Options d’accès au cluster
Accès non authentifié
Nous recommandons d’utiliser uniquement un accès non authentifié pour le développement. L'accès non authentifié ne fonctionnera que si l'authentification IAM basée sur les rôles est désactivée pour le cluster.
SASL/SCRAMauthentification
Amazon MSK prend en charge l'authentification simple et l'authentification par couche de sécurité/mécanisme d'authentification Salted Challenge Response (SASL/SCRAM) avec le chiffrement Transport Layer Security (TLS). EventBridge Pour vous connecter au cluster, vous devez enregistrer les informations d'authentification (informations de connexion) dans un AWS Secrets Manager secret.
Pour plus d’informations sur l’utilisation de Secrets Manager, consultez Authentification par nom d’utilisateur et mot de passe avec AWS Secrets Manager dans le Guide du développeur Amazon Managed Streaming for Apache Kafka.
Amazon MSK ne prend pas en charge PLAIN l'authentificationSASL//.
Authentification basée sur les rôles IAM
Vous pouvez l'utiliser IAM pour authentifier l'identité des clients qui se connectent au MSK cluster. Si IAM l'authentification est active sur votre MSK cluster et que vous ne fournissez pas de secret pour l'authentification, l'authentification est EventBridge automatiquement utilisée par défaut. IAM Pour créer et déployer des politiques basées sur les IAM utilisateurs ou les rôles, utilisez la IAM console ou. API Pour plus d'informations, consultez la section sur le contrôle IAM d'accès dans le guide du développeur Amazon Managed Streaming for Apache Kafka.
EventBridge Pour permettre de se connecter au MSK cluster, de lire des enregistrements et d'effectuer d'autres actions requises, ajoutez les autorisations suivantes au rôle d'exécution de vos canaux.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:DescribeGroup", "kafka-cluster:AlterGroup", "kafka-cluster:DescribeTopic", "kafka-cluster:ReadData", "kafka-cluster:DescribeClusterDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:
region
:account-id
:cluster/cluster-name
/cluster-uuid
", "arn:aws:kafka:region
:account-id
:topic/cluster-name
/cluster-uuid
/topic-name
", "arn:aws:kafka:region
:account-id
:group/cluster-name
/cluster-uuid
/consumer-group-id
" ] } ] }
Vous pouvez étendre ces autorisations à un cluster, une rubrique et un groupe spécifiques. Pour plus d'informations, consultez les actions Amazon MSK Kafka dans le guide du développeur Amazon Managed Streaming for Apache Kafka.
TLSAuthentification mutuelle
Mutual TLS (mTLS) fournit une authentification bidirectionnelle entre le client et le serveur. Le client envoie un certificat au serveur pour que le serveur vérifie le client, et le serveur envoie un certificat au client pour que le client vérifie le serveur.
Pour AmazonMSK, EventBridge agit en tant que client. Vous configurez un certificat client (sous forme de secret dans Secrets Manager) pour vous authentifier EventBridge auprès des courtiers de votre MSK cluster. Le certificat client doit être signé par une autorité de certification (CA) située dans le magasin d’approbations du serveur. Le MSK cluster envoie un certificat de serveur EventBridge pour authentifier les courtiers. EventBridge Le certificat du serveur doit être signé par une autorité de certification figurant dans le AWS trust store.
Amazon MSK ne prend pas en charge les certificats de serveur auto-signés, car tous les courtiers MSK d'Amazon utilisent des certificats publics signés par Amazon Trust Services CAs
Pour plus d'informations sur m TLS for AmazonMSK, consultez Mutual TLS Authentication dans le guide du développeur Amazon Managed Streaming for Apache Kafka.
Configuration du TLS secret m
Le AUTH secret CLIENT CERTIFICATE _ TLS _ _ nécessite un champ de certificat et un champ de clé privée. Pour une clé privée chiffrée, le secret nécessite un mot de passe de clé privée. Le certificat et la clé privée doivent tous deux être au PEM format.
Note
EventBridge prend en charge les algorithmes de chiffrement à clé privée PBES1
Le champ de certificat doit contenir une liste de certificats, commençant par le certificat client, suivi de tous les certificats intermédiaires et se terminant par le certificat racine. Chaque certificat doit commencer sur une nouvelle ligne avec la structure suivante :
-----BEGIN CERTIFICATE----- <certificate contents> -----END CERTIFICATE-----
Secrets Manager prend en charge les secrets jusqu’à 65 536 octets, ce qui offre suffisamment d’espace pour de longues chaînes de certificats.
La clé privée doit être au format PKCS#8
-----BEGIN PRIVATE KEY----- <private key contents> -----END PRIVATE KEY-----
Pour une clé privée chiffrée, utilisez la structure suivante :
-----BEGIN ENCRYPTED PRIVATE KEY----- <private key contents> -----END ENCRYPTED PRIVATE KEY-----
L'exemple suivant montre le contenu d'un secret pour mon TLS authentification à l'aide d'une clé privée cryptée. Pour une clé privée chiffrée, vous devez inclure le mot de passe de clé privée dans le secret.
{ "privateKeyPassword": "testpassword", "certificate": "-----BEGIN CERTIFICATE----- MIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw ... j0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk cmUuiAii9R0= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFgjCCA2qgAwIBAgIQdjNZd6uFf9hbNC5RdfmHrzANBgkqhkiG9w0BAQsFADBb ... rQoiowbbk5wXCheYSANQIfTZ6weQTgiCHCCbuuMKNVS95FkXm0vqVD/YpXKwA/no c8PH3PSoAaRwMMgOSA2ALJvbRz8mpg== -----END CERTIFICATE-----", "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY----- MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp ... QrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ zp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA== -----END ENCRYPTED PRIVATE KEY-----" }
Comment EventBridge choisir un courtier Bootstrap
EventBridge choisit un courtier bootstrap en fonction des méthodes d'authentification disponibles sur votre cluster et du fait que vous fournissez un secret pour l'authentification. Si vous fournissez un secret pour m TLS ouSASL/SCRAM, choisit EventBridge automatiquement cette méthode d'authentification. Si vous ne fournissez pas de secret, EventBridge choisissez la méthode d'authentification la plus puissante active sur votre cluster. Voici l'ordre de priorité dans lequel un courtier est EventBridge sélectionné, de l'authentification la plus forte à la plus faible :
-
m TLS (secret fourni pour mTLS)
-
SASL/SCRAM(secret fourni pourSASL/SCRAM)
-
SASLIAM(aucun secret n'est fourni et IAM l'authentification est active)
-
Non authentifié TLS (aucun secret n'est fourni et l'IAMauthentification n'est pas active)
-
Texte en clair (aucun secret n'est fourni, et IAM l'authentification et le mode non authentifié ne TLS sont actifs)
Note
S'il ne EventBridge parvient pas à se connecter au type de courtier le plus sûr, il ne tente pas de se connecter à un autre type de courtier (plus faible). Si vous souhaitez EventBridge choisir un type de courtier plus faible, désactivez toutes les méthodes d'authentification renforcées sur votre cluster.
Configuration réseau
EventBridge doit avoir accès aux ressources Amazon Virtual Private Cloud (AmazonVPC) associées à votre MSK cluster Amazon.
-
Pour accéder à votre MSK cluster Amazon, vous EventBridge pouvez utiliser un accès Internet sortant pour les sous-réseaux de votre source. VPC Pour les sous-réseaux privés, il peut s'agir d'une NAT passerelle ou de la vôtre. NAT Assurez-vous qu'il NAT possède une adresse IP publique et qu'il peut se connecter à Internet. Pour les sous-réseaux publics, vous devez utiliser des VPC points de terminaison (expliqués ci-dessous).
-
EventBridge Pipes prend également en charge la diffusion d'événements AWS PrivateLink
, ce qui vous permet d'envoyer des événements depuis une source d'événements située dans un Amazon Virtual Private Cloud (Amazon VPC) vers une cible Pipes sans passer par l'Internet public. Vous pouvez utiliser Pipes pour interroger depuis Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka autogéré et des Amazon MQ sources résidant dans un sous-réseau privé sans avoir à déployer une passerelle Internet, à configurer des règles de pare-feu ou à configurer des serveurs proxy. Vous pouvez également utiliser les VPC points de terminaison pour prendre en charge la diffusion à partir de clusters Kafka dans des sous-réseaux publics. Pour configurer un VPC point de terminaison, consultez la section Créer un VPC point de terminaison dans le guide de AWS PrivateLink l'utilisateur. Pour le nom du service, sélectionnez
com.amazonaws.
.region
.pipes-data
Configurez vos groupes VPC de sécurité Amazon avec les règles suivantes (au minimum) :
-
Règles de trafic entrant : autorisez tout le trafic sur le port Amazon MSK Broker pour les groupes de sécurité spécifiés pour votre source.
-
Règles sortantes : autorisent tout le trafic sur le port 443 pour toutes les destinations. Autorisez tout le trafic sur le port Amazon MSK Broker pour les groupes de sécurité spécifiés pour votre source.
Les ports Broker incluent :
9092 pour le texte en clair
9094 pour TLS
9096 pour SASL
9098 pour IAM
Note
Votre VPC configuration Amazon est consultable via Amazon MSK API. Vous n’avez pas besoin de la définir pendant la configuration.
Identifiant de groupe de consommateurs personnalisable
Lorsque vous configurez Apache Kafka en tant que source, vous pouvez spécifier un identifiant de groupe de consommateurs. Cet identifiant de groupe de consommateurs est un identifiant existant pour le groupe de consommateurs Apache Kafka auquel vous souhaitez rattacher votre canal. Vous pouvez utiliser cette fonctionnalité pour migrer toutes les configurations de traitement des enregistrements Apache Kafka en cours depuis d'autres utilisateurs vers. EventBridge
Si vous spécifiez un identifiant de groupe de consommateurs et qu’il existe d’autres sondeurs actifs au sein de ce groupe de consommateurs, Apache Kafka distribue des messages à tous les consommateurs. En d'autres termes, EventBridge ne reçoit pas tous les messages relatifs au sujet Apache Kafka. Si vous EventBridge souhaitez gérer tous les messages du sujet, désactivez tous les autres sondeurs de ce groupe de consommateurs.
En outre, si vous spécifiez un identifiant de groupe de consommateurs et qu'Apache Kafka trouve un groupe de consommateurs valide portant le même identifiant, il EventBridge ignore le StartingPosition
paramètre de votre canal. EventBridge Commence plutôt à traiter les enregistrements en fonction de la compensation engagée par le groupe de consommateurs. Si vous spécifiez un identifiant de groupe de consommateurs et qu'Apache Kafka ne trouve aucun groupe de consommateurs existant, EventBridge configure votre source avec l'identifiant spécifié. StartingPosition
L’identifiant du groupe de consommateurs que vous spécifiez doit être unique parmi toutes vos sources d’événements Apache Kafka. Après avoir créé un canal avec l’identifiant de groupe de consommateurs spécifié, vous ne pouvez plus mettre à jour cette valeur.
Mise à l'échelle automatique de la MSK source Amazon
Lorsque vous créez initialement une MSK source Amazon, EventBridge alloue un consommateur pour traiter toutes les partitions du sujet Apache Kafka. Chaque consommateur dispose de plusieurs processeurs exécutés en parallèle pour gérer des charges de travail accrues. En outre, EventBridge augmente ou diminue automatiquement le nombre de consommateurs en fonction de la charge de travail. Pour préserver l’ordre des messages dans chaque partition, le nombre maximum de consommateurs est de un par partition dans la rubrique.
EventBridge Évalue, à intervalles d'une minute, le décalage entre les utilisateurs et toutes les partitions du sujet. Si le décalage est trop élevé, la partition reçoit les messages plus rapidement qu'elle ne EventBridge peut les traiter. Si nécessaire, EventBridge ajoute ou supprime des consommateurs du sujet. Le processus de mise à l’échelle consistant à ajouter ou à supprimer des consommateurs a lieu dans les trois minutes suivant l’évaluation.
Si votre cible est surchargée, vous EventBridge réduisez le nombre de consommateurs. Cette action réduit la charge de travail du canal en diminuant le nombre de messages que les consommateurs peuvent échanger avec le canal.