

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

# Utilizzo di una pipeline di OpenSearch ingestione con Amazon Streaming gestito per Apache Kafka
<a name="configure-client-msk"></a>

Puoi utilizzare il [plug-in Kafka](https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sources/kafka/) per inserire dati da Amazon [Managed Streaming for Apache Kafka (Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/)) nella tua pipeline di Ingestion. OpenSearch Con Amazon MSK, puoi creare ed eseguire applicazioni che utilizzano Apache Kafka per elaborare dati in streaming. OpenSearch Ingestion utilizza AWS PrivateLink per connettersi ad Amazon MSK. Puoi importare dati da cluster Amazon MSK e Amazon MSK Serverless. L'unica differenza tra i due processi sono i passaggi preliminari da eseguire prima di configurare la pipeline.

**Topics**
+ [Prerequisiti Amazon MSK forniti](#msk-prereqs)
+ [Prerequisiti per Amazon MSK Serverless](#msk-serverless-prereqs)
+ [Fase 1: Configurare un ruolo della pipeline](#msk-pipeline-role)
+ [Fase 2: Creare la pipeline](#msk-pipeline)
+ [Fase 3: (Facoltativo) Usa il registro degli schemi AWS Glue](#msk-glue)
+ [Fase 4: (Facoltativo) Configurazione delle unità di calcolo consigliate (OCUs) per la pipeline Amazon MSK](#msk-ocu)

## Prerequisiti Amazon MSK forniti
<a name="msk-prereqs"></a>

Prima di creare la pipeline di OpenSearch Ingestion, esegui i seguenti passaggi:

1. Crea un cluster con provisioning Amazon MSK seguendo i passaggi descritti nella sezione [Creazione di un cluster](https://docs.aws.amazon.com/msk/latest/developerguide/msk-create-cluster.html#create-cluster-console) nella *Amazon Managed Streaming for Apache Kafka Developer Guide*. Per il **tipo di broker**, scegli qualsiasi opzione tranne i `t3` tipi, poiché questi non sono supportati da Ingestion. OpenSearch 

1. Dopo che il cluster ha uno stato **Attivo**, segui i passaggi in [Attivare la connettività multi-VPC](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html#mvpc-cluster-owner-action-turn-on).

1. Segui i passaggi riportati in [Allegare una politica del cluster al cluster MSK](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html#mvpc-cluster-owner-action-policy) per allegare una delle seguenti politiche, a seconda che il cluster e la pipeline coincidano. Account AWS Questa policy consente a OpenSearch Ingestion di creare una AWS PrivateLink connessione al tuo cluster Amazon MSK e leggere dati da argomenti di Kafka. Assicurati di aggiornarlo `resource` con il tuo ARN. 

   Le seguenti politiche si applicano quando il cluster e la pipeline coincidono: Account AWS

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "osis.amazonaws.com"
         },
         "Action": [
           "kafka:CreateVpcConnection",
           "kafka:DescribeClusterV2"
         ],
         "Resource": "arn:aws:kafka:us-east-1:111122223333:cluster/cluster-name/cluster-id"
       },
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "osis-pipelines.amazonaws.com"
         },
         "Action": [
           "kafka:CreateVpcConnection",
           "kafka:GetBootstrapBrokers",
           "kafka:DescribeClusterV2"
         ],
         "Resource": "arn:aws:kafka:us-east-1:111122223333:cluster/cluster-name/cluster-id"
       }
     ]
   }
   ```

------

   Se il tuo cluster Amazon MSK si trova in una pipeline Account AWS diversa dalla tua, allega invece la seguente policy. Tieni presente che l'accesso tra account è possibile solo con i cluster Amazon MSK forniti e non con i cluster Amazon MSK Serverless. L'ARN per il AWS `principal` dovrebbe essere l'ARN per lo stesso ruolo di pipeline fornito alla configurazione della pipeline:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "osis.amazonaws.com"
         },
         "Action": [
           "kafka:CreateVpcConnection",
           "kafka:DescribeClusterV2"
         ],
         "Resource": "arn:aws:kafka:us-east-1:111122223333:cluster/cluster-name/cluster-id"
       },
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "osis-pipelines.amazonaws.com"
         },
         "Action": [
           "kafka:CreateVpcConnection",
           "kafka:GetBootstrapBrokers",
           "kafka:DescribeClusterV2"
         ],
         "Resource": "arn:aws:kafka:us-east-1:111122223333:cluster/cluster-name/cluster-id"
       },
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::444455556666:role/pipeline-role"
         },
         "Action": [
           "kafka-cluster:*",
           "kafka:*"
         ],
         "Resource": [
           "arn:aws:kafka:us-east-1:111122223333:cluster/cluster-name/cluster-id",
           "arn:aws:kafka:us-east-1:111122223333:topic/cluster-name/cluster-id/*",
           "arn:aws:kafka:us-east-1:111122223333:group/cluster-name/*"
         ]
       }
     ]
   }
   ```

------

1. [Crea un argomento di Kafka seguendo la procedura descritta in Creare un argomento.](https://docs.aws.amazon.com/msk/latest/developerguide/create-topic.html) Assicurati che `BootstrapServerString` sia uno dei bootstrap privati dell'endpoint (Single-VPC). URLs Il valore per `--replication-factor` dovrebbe essere `2` o`3`, in base al numero di zone del tuo cluster Amazon MSK. Il valore di `--partitions` deve essere almeno`10`.

1. Produci e consuma dati seguendo i passaggi descritti in [Produrre e consumare dati](https://docs.aws.amazon.com/msk/latest/developerguide/produce-consume.html). Ancora una volta, assicurati che `BootstrapServerString` sia uno dei tuoi endpoint privati (Single-VPC) bootstrap. URLs

## Prerequisiti per Amazon MSK Serverless
<a name="msk-serverless-prereqs"></a>

Prima di creare la pipeline di OpenSearch Ingestion, esegui i seguenti passaggi:

1. Crea un cluster Serverless Amazon MSK seguendo i passaggi descritti in [Creare un cluster Serverless MSK nella Amazon Managed Streaming for Apache](https://docs.aws.amazon.com/msk/latest/developerguide/create-serverless-cluster.html#) *Kafka* Developer Guide.

1. Dopo che il cluster ha raggiunto lo stato **Attivo**, segui i passaggi in [Allegare una politica del cluster al cluster MSK per allegare la seguente politica](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html#mvpc-cluster-owner-action-policy). Assicurati di aggiornarlo `resource` con il tuo ARN. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "osis.amazonaws.com"
         },
         "Action": [
           "kafka:CreateVpcConnection",
           "kafka:DescribeClusterV2"
         ],
         "Resource": "arn:aws:kafka:us-east-1:111122223333:cluster/cluster-name/cluster-id"
       },
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "osis-pipelines.amazonaws.com"
         },
         "Action": [
           "kafka:CreateVpcConnection",
           "kafka:GetBootstrapBrokers",
           "kafka:DescribeClusterV2"
         ],
         "Resource": "arn:aws:kafka:us-east-1:111122223333:cluster/cluster-name/cluster-id"
       }
     ]
   }
   ```

------

   Questa policy consente a OpenSearch Ingestion di creare una AWS PrivateLink connessione al tuo cluster Amazon MSK Serverless e leggere dati da argomenti di Kafka. Questa politica si applica quando il cluster e la pipeline coincidono Account AWS, il che deve essere vero in quanto Amazon MSK Serverless non supporta l'accesso tra account.

1. [Crea un argomento di Kafka seguendo i passaggi in Creare un argomento.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-serverless-create-topic.html) Assicurati che `BootstrapServerString` sia uno dei tuoi bootstrap IAM Simple Authentication and Security Layer (SASL). URLs Il valore per `--replication-factor` dovrebbe essere `2` o`3`, in base al numero di zone del tuo cluster Amazon MSK Serverless. Il valore di `--partitions` deve essere almeno. `10`

1. Produci e consuma dati seguendo i passaggi descritti in [Produrre e consumare dati](https://docs.aws.amazon.com/msk/latest/developerguide/msk-serverless-produce-consume.html). Ancora una volta, assicurati che `BootstrapServerString` sia uno dei tuoi bootstrap URLs IAM Simple Authentication and Security Layer (SASL).

## Fase 1: Configurare un ruolo della pipeline
<a name="msk-pipeline-role"></a>

Dopo aver configurato il cluster Amazon MSK con provisioning o serverless, aggiungi le seguenti autorizzazioni Kafka nel ruolo pipeline che desideri utilizzare nella configurazione della pipeline:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:Connect",
                "kafka-cluster:AlterCluster",
                "kafka-cluster:DescribeCluster",
                "kafka:DescribeClusterV2",
                "kafka:GetBootstrapBrokers"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:111122223333:cluster/cluster-name/cluster-id"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:*Topic*",
                "kafka-cluster:ReadData"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:111122223333:topic/cluster-name/cluster-id/topic-name"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeGroup"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:111122223333:group/cluster-name/*"
            ]
        }
    ]
}
```

------

## Fase 2: Creare la pipeline
<a name="msk-pipeline"></a>

È quindi possibile configurare una pipeline OpenSearch di ingestione come la seguente, che specifica Kafka come origine:

```
version: "2"
log-pipeline:
  source:
    kafka:
      acknowledgements: true
      topics:
      - name: "topic-name"
        group_id: "grouplambd-id"
      aws:
        msk:
          arn: "arn:aws:kafka:region:account-id:cluster/cluster-name/cluster-id"
        region: "us-west-2"
  processor:
  - grok:
      match:
        message:
        - "%{COMMONAPACHELOG}"
  - date:
      destination: "@timestamp"
      from_time_received: true
  sink:
  - opensearch:
      hosts: ["https://search-domain-endpoint.us-east-1es.amazonaws.com"]
      index: "index_name"
      aws_region: "region"
      aws_sigv4: true
```

Puoi utilizzare un blueprint Amazon MSK preconfigurato per creare questa pipeline. Per ulteriori informazioni, consulta [Lavorare con i progetti](pipeline-blueprint.md).

## Fase 3: (Facoltativo) Usa il registro degli schemi AWS Glue
<a name="msk-glue"></a>

Quando usi OpenSearch Ingestion con Amazon MSK, puoi utilizzare il formato di dati AVRO per gli schemi ospitati nel registro degli schemi. AWS Glue Con lo [AWS Glue Schema Registry](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html), puoi scoprire, controllare ed evolvere centralmente gli schemi dei flussi di dati. 

Per utilizzare questa opzione, abilita lo schema `type` nella configurazione della pipeline:

```
schema:
  type: "aws_glue"
```

Devi inoltre fornire i permessi AWS Glue di accesso in lettura nel tuo ruolo di pipeline. È possibile utilizzare la politica AWS gestita denominata. [AWSGlueSchemaRegistryReadonlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSGlueSchemaRegistryReadonlyAccess.html) Inoltre, il registro deve trovarsi nella stessa Account AWS area geografica della pipeline di OpenSearch Ingestion.

## Fase 4: (Facoltativo) Configurazione delle unità di calcolo consigliate (OCUs) per la pipeline Amazon MSK
<a name="msk-ocu"></a>

Ogni unità di elaborazione ha un utente per argomento. I broker bilanciano le partizioni tra questi consumatori per un determinato argomento. Tuttavia, quando il numero di partizioni è maggiore del numero di consumatori, Amazon MSK ospita più partizioni per ogni consumatore. OpenSearch Ingestion dispone della scalabilità automatica integrata per aumentare o ridurre in base all'utilizzo della CPU o al numero di record in sospeso nella pipeline. 

Per prestazioni ottimali, distribuisci le partizioni su più unità di calcolo per l'elaborazione parallela. Se gli argomenti hanno un numero elevato di partizioni (ad esempio, più di 96, che è il numero massimo OCUs per pipeline), ti consigliamo di configurare una pipeline con 1—96. OCUs Questo perché si ridimensionerà automaticamente in base alle esigenze. Se un argomento ha un numero basso di partizioni (ad esempio, meno di 96), mantieni l'unità di calcolo massima uguale al numero di partizioni. 

Quando una pipeline ha più di un argomento, scegliete l'argomento con il maggior numero di partizioni come riferimento per configurare il numero massimo di unità di calcolo. Aggiungendo un'altra pipeline con un nuovo set allo stesso argomento e OCUs allo stesso gruppo di consumatori, puoi scalare il throughput in modo quasi lineare.