Come faccio a risolvere gli errori quando tento di creare un connettore utilizzando Amazon MSK Connect?

9 minuti di lettura
0

Ricevo un errore quando tento di creare un connettore utilizzando Streaming gestito da Amazon per Apache Kafka (Amazon MSK) Connect.

Descrizione breve

Quando si crea un connettore utilizzando MSK Connect, è possibile che venga visualizzato uno dei seguenti messaggi di errore:

  • Si è verificato un problema con il connettore Codice: UnknownError.UnknownMessage: L'ultima operazione non è riuscita. Ritenta l'operazione.
  • Parametro connectorConfiguration non valido: il campo obbligatorio seguente non è presente o ha un valore non valido: tasks.max
  • Parametro serviceExecutionRoleArn non valido: impossibile fornire un ARN del ruolo collegato al servizio come ARN del ruolo di esecuzione del servizio
  • org.apache.kafka.connect.errors.ConnectException: impossibile trovare una classe che implementi Connector e il cui nome corrisponda...
  • org.apache.kafka.common.errors.TimeoutException: timeout in attesa di inviare la chiamata. Chiamata: fetchMetadata
  • org.apache.kafka.common.errors.SaslAuthenticationException: troppe connessioni
  • org.apache.kafka.connect.errors.ConnectException: com.amazonaws.SdkClientException: impossibile eseguire la richiesta HTTP: Connessione a s3.eu-central-1.amazonaws.com:443 [s3.eu-central-1.amazonaws.com/52.219.47.235 ] non riuscita: connessione scaduta
  • org.apache.kafka.connect.errors.ConnectException: com.amazonaws.SdkClientException: impossibile eseguire la richiesta HTTP: Connessione a firehose.us-east-2.amazonaws.com:443 [firehose.us-east-2.amazonaws.com/52.95.23.168 ] non riuscita: connessione scaduta
  • Connessione al nodo - 1 (endpoint del broker) autenticazione non riuscita a causa di: accesso negato
  • ERRORE Connessione al nodo -3 (b-1.<cluster>.<region>.amazonaws.com/INTERNAL_IP) autenticazione non riuscita a causa di: un errore: (java.security .PrivilegedActionException: javax.security .sasl.SaslException: impossibile trovare le credenziali IAM AWS [causato da aws_msk_iam_auth_shadow.com.amazonaws.SdkClientException: Impossibile caricare le credenziali AWS da ...........Impossibile caricare le credenziali AWS dalle variabili di ambiente (AWS_ACCESS_KEY_ID (o AWS_ACCESS_KEY) e AWS_SECRET_KEY (o AWS_SECRET_ACCESS_KEY))

Soluzione

Si è verificato un problema con il connettore Codice: UnknownError.UnknownMessage: L'ultima operazione non è riuscita. Ritenta l'operazione.

Questo errore viene visualizzato quando MSK Connect non riesce a creare il connettore e quest'ultimo passa allo stato Non riuscito.

Per individuare la causa principale dell'errore, esamina gli eventi di log di MSK Connect. MSK Connect scrive gli eventi di log che è possibile utilizzare per eseguire il debug del connettore. Quando crei un connettore, puoi scegliere di non specificare alcuna destinazione di log o indicare una delle seguenti:

  • File di log Amazon CloudWatch
  • Amazon Simple Storage Service (Amazon S3)
  • Amazon Kinesis Data Firehose

Parametro connectorConfiguration non valido: il campo obbligatorio seguente non è presente o ha un valore non valido: tasks.max

Se utilizzi un carattere di ritorno a capo (/r) alla fine di una configurazione, visualizzi il seguente errore:

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

Per risolvere questo errore, segui la procedura di risoluzione dei problemi seguente:

  • Inserisci manualmente le informazioni di configurazione nella finestra di dialogo di configurazione del connettore anziché copiarle e incollarle da un'altra origine, ad esempio la documentazione.
  • Se utilizzi un sistema operativo Windows, usa un editor di testo (come Notepad++). Puoi usare l'editor di testo per controllare e rimuovere qualsiasi carattere di ritorno a capo (CRLF) e di fine riga (EOL). Per rimuovere il ritorno a capo, copia e incolla la configurazione in un editor di testo. Dall'editor di testo, scegli Visualizza e Mostra simbolo. Quindi, scegli Mostra tutti i caratteri per verificare i caratteri CRLF o EOL che potrebbero essere presenti in una configurazione. Sostituisci tutti i caratteri CRLF ("\r\n") con caratteri LF ("\n").

Parametro serviceExecutionRoleArn non valido: impossibile fornire un ARN del ruolo collegato al servizio come ARN del ruolo di esecuzione del servizio.

Questo errore viene visualizzato quando si crea un connettore tramite un ruolo collegato al servizio. MSK Connect non supporta l'utilizzo del ruolo collegato al servizio come ruolo di esecuzione del servizio. È necessario creare un ruolo di esecuzione del servizio separato. Per istruzioni su come creare un ruolo AWS Identity and Access Management (IAM) personalizzato, consulta Creazione di un ruolo per delegare le autorizzazioni a un servizio AWS. Specifica il ruolo con cui vuoi utilizzare il connettore. Questo ruolo deve essere diverso dal ruolo collegato al servizio AWSServiceRoleForKafkaConnect che il servizio utilizza internamente per creare le risorse del connettore.

org.apache.kafka.connect.errors.ConnectException: impossibile trovare una classe che implementi Connector e il cui nome corrisponda...

Per risolvere questo errore, segui la procedura di risoluzione dei problemi seguente:

  • Rimuovi tutti i caratteri di ritorno a capo (/r) che potrebbero essere presenti nella configurazione del connettore.
  • Se sono necessari più file per il plug-in del connettore, includili nel file compresso. Il file compresso viene utilizzato durante la creazione del plug-in del connettore. Anche i file JAR presenti nel file compresso devono avere la struttura del file prevista documentata per quel plug-in. Una best practice consiste nell'abilitare i log per MSK Connect ed esaminarli per confermare che la struttura dei file sia impostata correttamente.

org.apache.kafka.common.errors.TimeoutException: timeout in attesa di inviare la chiamata. Chiamata: fetchMetadata

Se il connettore non è in grado di raggiungere il cluster MSK, viene visualizzato un errore TimeOutException. Per risolvere questo errore, segui la procedura di risoluzione dei problemi seguente:

org.apache.kafka.common.errors.SaslAuthenticationException: troppe connessioni

Se il tuo cluster MSK è in esecuzione su un tipo di broker kafka.t3.small con controllo degli accessi IAM, fai attenzione al limite di connessioni. Il tipo di istanza kafka.t3.small accetta solo una connessione TCP per broker al secondo. Quando questo limite di connessione viene superato, il test di creazione ha esito negativo. Di conseguenza, viene visualizzato un errore SaslAuthenticationException che indica un errore relativo alle credenziali non valide. Per ulteriori informazioni sui cluster MSK e sul controllo degli accessi IAM, consulta Come funziona Amazon MSK con IAM.

Per risolvere l'errore SaslAuthenticationException, esegui una delle operazioni seguenti:

  • Nella configurazione del dipendente di MSK Connect, aggiorna i valori per reconnect.backoff.ms e reconnect.backoff.max.ms a "1000" o un valore superiore.
  • Esegui l'upgrade a un tipo di istanza broker più grande (ad esempio kafka.m5.large o superiore). Per ulteriori informazioni sui tipi di broker Amazon MSK e sulla scelta del broker corretto, consulta Tipi di broker e Dimensionamento corretto del cluster.

org.apache.kafka.connect.errors.ConnectException: com.amazonaws.SdkClientException: impossibile eseguire la richiesta HTTP: Connessione a s3.us-east-1.amazonaws.com:443 non riuscita: connessione scaduta

Questo errore viene visualizzato quando il connettore non riesce a connettersi ad Amazon S3. Per risolvere questo errore, assicurati di aver creato l'endpoint Amazon Virtual Private Cloud (Amazon VPC) dal VPC del cluster ad Amazon S3. Per creare un endpoint VPC Amazon dal VPC del cluster ad Amazon S3, completa i passaggi seguenti:

  1. Apri la console Amazon VPC.
  2. Nel riquadro di navigazione, scegli Endpoint.
  3. Scegli Crea endpoint.
  4. In Categoria servizio, scegli Servizi AWS.
  5. In Servizi, scegli il filtro Nome servizio, quindi seleziona com.amazonaws.<region>.s3. Sostituisci <region> con la tua regione AWS.
    Scegli il filtro Tipo, quindi seleziona Gateway.
  6. In VPC, seleziona il VPC del cluster.
  7. In Tabelle di routing, seleziona la tabella di routing associata alle sottoreti del cluster.
  8. Scegli Crea endpoint.

org.apache.kafka.connect.errors.ConnectException: com.amazonaws.SdkClientException: impossibile eseguire la richiesta HTTP: Connessione a firehose.us-east-2.amazonaws.com:443 non riuscita: connessione scaduta

Questo errore viene visualizzato quando il connettore non riesce a connettersi ad Amazon Kinesis Data Firehose. Per risolvere questo errore, assicurati di aver creato l'endpoint VPC Amazon dal VPC del cluster a Kinesis Data Firehose.

Per creare un endpoint VPC Amazon dal VPC del cluster a Kinesis Data Firehose, segui i passaggi descritti nella sezione precedente. Usa il filtro Nome servizio com.amazonaws.<region>.kinesis-firehose.

Connessione al nodo - 1 (b1.<cluster>.<region>.amazonaws.com) autenticazione non riuscita a causa di: accesso negato

Questo errore viene visualizzato quando l'utente IAM per MSK Connect non dispone delle autorizzazioni necessarie per creare un connettore.

Quando si crea un connettore con MSK Connect, è necessario specificare un ruolo IAM da utilizzare con esso. Affinché MSK Connect possa assumere questo ruolo, è necessario che il ruolo di esecuzione del servizio presenti la policy di affidabilità seguente:

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

Se il cluster MSK da utilizzare con il connettore impiega l'autenticazione IAM, aggiungi la policy di autorizzazione seguente al ruolo di esecuzione del servizio del connettore:

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

Per informazioni su come individuare l'UUID del cluster e creare ARN tematici, consulta la sezione Risorse.

ERRORE Connessione al nodo -3 (b-1.<cluster>.<region>.amazonaws.com/INTERNAL_IP) autenticazione non riuscita a causa di: un errore: (java.security .PrivilegedActionException: javax.security .sasl.SaslException: impossibile trovare le credenziali IAM AWS [causato da aws_msk_iam_auth_shadow.com.amazonaws.SdkClientException: Impossibile caricare le credenziali AWS da ...........Impossibile caricare le credenziali AWS dalle variabili di ambiente (AWS_ACCESS_KEY_ID (o AWS_ACCESS_KEY) e AWS_SECRET_KEY (o AWS_SECRET_ACCESS_KEY))

Questo errore viene visualizzato quando il ruolo IAM utilizzato per creare il connettore non dispone delle autorizzazioni richieste.

Esamina le policy di accesso e la relazione di affidabilità del ruolo IAM per il connettore utilizzato per accedere ad Amazon MSK. Per ulteriori informazioni, consulta Ruolo di esecuzione del servizio.

Informazioni correlate

Come posso connettermi al mio cluster di Amazon MSK utilizzando Kafka-Kinesis-Connector?

MSK Connect

Risoluzione dei problemi relativi al cluster Amazon MSK

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa