Comment résoudre les erreurs lorsque j'essaie de créer un connecteur à l'aide d'Amazon MSK Connect ?

Lecture de 10 minute(s)
0

Un message d'erreur s'affiche lorsque j'essaie de créer un connecteur à l'aide d'Amazon Managed Streaming pour Apache Kafka (Amazon MSK) Connect.

Brève description

Lorsque vous créez un connecteur à l'aide de MSK Connect, vous pouvez recevoir l'un des messages d'erreur suivants :

  • Il y a un problème avec le code du connecteur : UnknownError.UnknownMessage: La dernière opération a échoué. Recommencez l'opération.
  • Connecteur de paramètre non valide Configuration : Le champ obligatoire suivant est manquant ou sa valeur n'est pas valide : tasks.max
  • Paramètre invalide du service Rôle d'exécution Arn : Un ARN de rôle lié à un service ne peut pas être fourni en tant qu'ARN de rôle d'exécution de service
  • org.apache.kafka.connect.errors.ConnectException: Impossible de trouver une classe qui implémente le connecteur et dont le nom correspond...
  • org.apache.kafka.common.errors.TimeoutException: Le délai d'attente pour l'envoi de l'appel a expiré. Appel : fetchMetadata
  • org.apache.kafka.common.errors.SaslAuthenticationException: Trop grand nombre de connexions
  • org.apache.kafka.connect.errors.ConnectException : com.amazonaws.SdkClientException: Impossible d'exécuter la requête HTTP : La connexion à s3.eu-central-1.amazonaws.com:443 [s3.eu-central-1.amazonaws.com/52.219.47.235 ] a échoué : la connexion a expiré
  • org.apache.kafka.connect.errors.ConnectException : com.amazonaws.SdkClientException: Impossible d'exécuter la requête HTTP : La connexion à firehose.us-east-2.amazonaws.com:443 [firehose.us-east-2.amazonaws.com/52.95.23.168 ] a échoué : la connexion a expiré
  • L'authentification de la connexion au nœud -1 (point de terminaison du courtier) a échoué pour les raisons suivantes : Accès refusé
  • ERREUR Connexion au nœud -3 (b-1.<cluster>.<region>L'authentification .amazonaws.com/INTERNAL_IP) a échoué pour les raisons suivantes : Une erreur : (java.security .PrivilegedActionException: javax.security .sasl.SaslException: Impossible de trouver les informations d'identification AWS IAM [À cause de aws_msk_iam_auth_shadow.com.amazonaws.SdkClientException: Impossible de charger les informations d'identification AWS depuis n'importe quel... Impossible de charger les informations d'identification AWS à partir de variables d'environnement (AWS_ACCESS_KEY_ID (ou AWS_ACCESS_KEY) et AWS_SECRET_KEY (ou AWS_SECRET_ACCESS_KEY))

Résolution

Il y a un problème avec le code du connecteur : UnknownError.UnknownMessage: La dernière opération a échoué. Recommencez l'opération.

Cette erreur s'affiche lorsque MSK Connect ne parvient pas à créer le connecteur et que celui-ci passe à l'état Défaillant.

Pour trouver la cause première de l'échec, consultez les événements du journal de MSK Connect. MSK Connect écrit les événements du journal que vous pouvez utiliser pour déboguer votre connecteur. Lorsque vous créez un connecteur, vous pouvez spécifier aucune destination de journal ou l'une des destinations de journal suivantes :

  • Amazon CloudWatch logs
  • Amazon Simple Storage Service (Amazon S3)
  • Amazon Kinesis Data Firehose

Connecteur de paramètre non valide Configuration : Le champ obligatoire suivant est manquant ou sa valeur n'est pas valide : tasks.max

Si vous utilisez un caractère de retour (/r) à la fin d'une configuration, vous recevez l'erreur suivante :

Invalid parameter connectorConfiguration: The following required field is missing or has invalid value: tasks.max

Pour résoudre cette erreur, essayez les étapes de dépannage suivantes :

  • Entrez manuellement les informations de configuration dans la boîte de dialogue de configuration du connecteur au lieu de les copier-coller à partir d'une autre source, telle que la documentation.
  • Si vous utilisez un système d'exploitation Windows, utilisez un éditeur de texte (tel que Notepad++). Vous pouvez utiliser l'éditeur de texte pour vérifier et supprimer le retour du chariot (CRLF) et tous les caractères de fin de ligne (EOL). Pour supprimer le retour au chariot, copiez et collez la configuration dans un éditeur de texte. Dans votre éditeur de texte, choisissez Afficher et Afficher le symbole. Choisissez ensuite Afficher tous les caractères pour consulter les caractères CRLF ou EOL qui pourraient exister dans une configuration. Remplacez tous les caractères CRLF (« \r\n ») par des caractères LF (« \n »).

Paramètre invalide du service Rôle d'exécution Arn : Un ARN de rôle lié à un service ne peut pas être fourni en tant qu'ARN de rôle d'exécution de service.

Cette erreur s'affiche lorsque vous utilisez un rôle lié à un service pour créer un connecteur. MSK Connect ne prend pas en charge l'utilisation du rôle lié au service comme rôle d'exécution du service. Vous devez créer un rôle d'exécution de service distinct. Pour savoir comment créer un rôle AWS Identity and Access Management (IAM) personnalisé, consultez la section Création d'un rôle pour déléguer des autorisations à un service AWS. Spécifiez le rôle avec lequel vous souhaitez que le connecteur fonctionne. Ce rôle doit être différent du rôle lié au service AWSServiceRoleForKafkaConnect que le service utilise en interne pour créer les ressources du connecteur.

org.apache.kafka.connect.errors.ConnectException: Impossible de trouver une classe qui implémente le connecteur et dont le nom correspond...

Pour résoudre cette erreur, essayez les étapes de dépannage suivantes :

  • Supprimez tous les caractères de retour du chariot (/r) qui peuvent exister dans la configuration du connecteur.
  • Si plusieurs fichiers sont requis pour le plug-in du connecteur, incluez ces fichiers dans votre fichier compressé. Le fichier compressé est utilisé lors de la création du plugin du connecteur. Les fichiers JAR du fichier compressé doivent également avoir la structure de fichier attendue documentée pour ce plugin. Il est recommandé d'activer les journaux pour MSK Connect et de les consulter pour vérifier que la structure des fichiers est correctement définie.

org.apache.kafka.common.errors.TimeoutException: Le délai d'attente pour l'envoi de l'appel a expiré. Appel : fetchMetadata

Si le connecteur ne parvient pas à atteindre votre cluster MSK, vous recevez une erreur TimeOutException. Pour résoudre cette erreur, essayez les étapes de dépannage suivantes :

org.apache.kafka.common.errors.SaslAuthenticationException: Trop grand nombre de connexions

Si votre cluster MSK s'exécute sur un broker de type kafka.t3.small avec un contrôle d'accès IAM, soyez conscient de la limite de connexion. Le type d’instance kafka.t3.small n’accepte qu’une seule connexion TCP par agent et par seconde. Lorsque cette limite de connexion est dépassée, votre test de création échoue. Par conséquent, vous recevez une erreur SaslAuthenticationException, indiquant une erreur d'identification non valide. Pour plus d'informations sur les clusters MSK et le contrôle d'accès IAM, consultez la section Comment Amazon MSK fonctionne avec IAM.

Pour résoudre l'erreur SaslAuthenticationException, effectuez l'une des actions suivantes :

  • Dans votre configuration de serveur de travail Amazon MSK Connect, mettez à jour les valeurs des champs reconnect.backoff.ms et reconnect.backoff.max.ms à 1000 ou plus.
  • Effectuez une mise à niveau vers un type d’instance d’agent plus important (tel que kafka.m5.large ou version ultérieure). Pour plus d'informations sur les types de courtiers Amazon MSK et sur le choix du type de courtier approprié, consultez les sections Types de courtiers et Adaptez la taille de votre cluster.

org.apache.kafka.connect.errors.ConnectException : com.amazonaws.SdkClientException: Impossible d'exécuter la requête HTTP : La connexion à s3.us-east-1.amazonaws.com:443 a échoué : expiration du délai de connexion

Cette erreur s'affiche lorsque le connecteur ne parvient pas à se connecter à Amazon S3. Pour résoudre cette erreur, assurez-vous d'avoir créé le point de terminaison Amazon Virtual Private Cloud (Amazon VPC) à partir du VPC du cluster vers Amazon S3. Pour créer un point de terminaison Amazon VPC à partir du VPC du cluster vers Amazon S3, procédez comme suit :

  1. Ouvrez la console Amazon VPC.
  2. Dans le volet de navigation, choisissez Services de point de terminaison.
  3. Choisissez Créer un point de terminaison.
  4. Pour la catégorie de service, choisissez Services AWS.
  5. Sous Services, choisissez le filtre Nom du service, puis sélectionnez com.amazonaws.<region>.s3. Remplacez <region> par votre région AWS.
    Choisissez le filtre Type, puis choisissez Passerelle.
  6. Pour VPC, sélectionnez le VPC du cluster.
  7. Sous Tables de routage, sélectionnez la table de routage associée aux sous-réseaux du cluster.
  8. Choisissez Créer un point de terminaison.

org.apache.kafka.connect.errors.ConnectException : com.amazonaws.SdkClientException: Impossible d'exécuter la requête HTTP : La connexion à firehose.us-east-2.amazonaws.com:443 a échoué : délai de connexion expiré

Cette erreur s'affiche lorsque le connecteur ne parvient pas à se connecter à Amazon Kinesis Data Firehose. Pour résoudre cette erreur, assurez-vous d'avoir créé le point de terminaison Amazon VPC à partir du VPC du cluster vers Kinesis Data Firehose.

Pour créer un point de terminaison Amazon VPC à partir du VPC du cluster vers Kinesis Data Firehose, suivez les étapes décrites dans la section précédente. Utilisez le filtre de nom de service com.amazonaws.<region>.kinesis-firehose.

Connexion au nœud - 1 (b1.<cluster>.<region>.amazonaws.com) échec de l'authentification pour les raisons suivantes : Accès refusé

Cette erreur s'affiche lorsque l'utilisateur IAM de MSK Connect ne dispose pas des autorisations requises pour créer un connecteur.

Lorsque vous créez un connecteur avec MSK Connect, vous devez spécifier un rôle IAM à utiliser avec ce connecteur. Votre rôle d'exécution du service doit respecter la politique de confiance suivante pour que MSK Connect puisse assumer ce rôle :

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Principal": {
            "Service": "kafkaconnect.amazonaws.com"
        },
        "Action": "sts:AssumeRole",
        "Condition": {
            "StringEquals": {
                "aws:SourceAccount": "Account-ID"
            },
            "ArnLike": {
                "aws:SourceArn": "MSK-Connector-ARN"
            }
        }
    }]
}

Si le cluster MSK que vous souhaitez utiliser avec votre connecteur utilise l'authentification IAM, vous devez ajouter la politique d'autorisations suivante au rôle d'exécution du service du connecteur :

{
    "Version": "2012-10-17",
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:Connect",
                "kafka-cluster:DescribeCluster"
            ],
            "Resource": [
                "cluster-arn"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:ReadData",
                "kafka-cluster:DescribeTopic"
            ],
            "Resource": [
                "ARN of the topic that you want a sink connector to read from"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:WriteData",
                "kafka-cluster:DescribeTopic"
            ],
            "Resource": [
                "ARN of the topic that you want a source connector to write to"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:CreateTopic",
                "kafka-cluster:WriteData",
                "kafka-cluster:ReadData",
                "kafka-cluster:DescribeTopic"
            ],
            "Resource": [
                "arn:aws:kafka:region:account-id:topic/cluster-name/cluster-uuid/__amazon_msk_connect_*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeGroup"
            ],
            "Resource": [
                "arn:aws:kafka:region:account-id:group/cluster-name/cluster-uuid/__amazon_msk_connect_*",
                "arn:aws:kafka:region:account-id:group/cluster-name/cluster-uuid/connect-*"
            ]
        }
    ]
}

Pour plus d'informations sur la recherche de l'UUID de votre cluster et la création d'ARN de rubriques, consultez la section Ressources.

ERREUR Connexion au nœud -3 (b-1.<cluster>.<region>L'authentification .amazonaws.com/INTERNAL_IP) a échoué pour les raisons suivantes : Une erreur : (java.security .PrivilegedActionException: javax.security .sasl.SaslException: Impossible de trouver les informations d'identification AWS IAM [À cause de aws_msk_iam_auth_shadow.com.amazonaws.SdkClientException: Impossible de charger les informations d'identification AWS depuis n'importe quel... Impossible de charger les informations d'identification AWS à partir de variables d'environnement (AWS_ACCESS_KEY_ID (ou AWS_ACCESS_KEY) et AWS_SECRET_KEY (ou AWS_SECRET_ACCESS_KEY))

Cette erreur s'affiche lorsque le rôle IAM que vous avez utilisé pour créer le connecteur ne dispose pas des autorisations requises.

Passez en revue les politiques d'accès et la relation de confiance du rôle IAM pour le connecteur que vous utilisez pour accéder à Amazon MSK. Pour plus d'informations, consultez la section Rôle d'exécution du service.

Informations connexes

Comment me connecter à mon cluster Amazon MSK à l'aide du connecteur Kafka-Kinesis-Connector ?

MSK Connect

Résolution des problèmes liés à votre cluster Amazon MSK

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an