

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

# Personalizzazione delle immagini Docker per Flink e FluentD
<a name="jobruns-flink-docker-flink-fluentd"></a>

Segui i passaggi seguenti per personalizzare le immagini Docker per Amazon EMR su EKS con immagini Apache Flink o FluentD. Questi includono indicazioni tecniche per ottenere un'immagine di base, personalizzarla, pubblicarla e inviare un carico di lavoro.

**Topics**
+ [Prerequisiti](#jobruns-flink-docker-flink-fluentd-prereqs)
+ [Fase 1: recuperare un'immagine di base da Amazon Elastic Container Registry](#jobruns-flink-docker-flink-fluentd-retrieve-base)
+ [Fase 2: personalizzazione di un'immagine di base](#jobruns-flink-docker-flink-fluentd-customize-image)
+ [Passaggio 3: Pubblica l'immagine personalizzata](#jobruns-flink-docker-flink-fluentd-publish-image)
+ [Fase 4: invia un carico di lavoro Flink in Amazon EMR utilizzando un'immagine personalizzata](#jobruns-flink-docker-flink-fluentd-submit-workload)

## Prerequisiti
<a name="jobruns-flink-docker-flink-fluentd-prereqs"></a>

Prima di personalizzare l'immagine Docker, assicurati di aver soddisfatto i seguenti prerequisiti:
+ Completata la procedura di [configurazione dell'operatore Flink Kubernetes per Amazon EMR](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/jobruns-flink-kubernetes-operator-setup.html) su EKS.
+ Hai installato Docker nel tuo ambiente. Per ulteriori informazioni, consulta [Ottieni Docker](https://docs.docker.com/get-docker/).

## Fase 1: recuperare un'immagine di base da Amazon Elastic Container Registry
<a name="jobruns-flink-docker-flink-fluentd-retrieve-base"></a>

L'immagine di base contiene il runtime di Amazon EMR e i connettori necessari per accedere ad altri. Servizi AWS Se utilizzi Amazon EMR su EKS con Flink versione 6.14.0 o successiva, puoi ottenere le immagini di base dalla Galleria pubblica di Amazon ECR. Sfoglia la galleria per trovare il collegamento all'immagine e trasferiscila nel tuo Workspace locale. Ad esempio, per la versione Amazon EMR 6.14.0, il `docker pull` comando seguente restituisce l'immagine di base standard più recente. `emr-6.14.0:latest`Sostituiscila con la versione di rilascio desiderata.

```
docker pull public.ecr.aws/emr-on-eks/flink/emr-6.14.0-flink:latest
```

Di seguito sono riportati i collegamenti all'immagine della galleria Flink e all'immagine della galleria Fluentd:
+ [emr-on-eks/flink/emr-6.14.0-flink](https://gallery.ecr.aws/emr-on-eks/flink/emr-6.14.0-flink)
+ [emr-on-eks/fluentd/emr-6.14.0 (](https://gallery.ecr.aws/emr-on-eks/fluentd/emr-6.14.0)

## Fase 2: personalizzazione di un'immagine di base
<a name="jobruns-flink-docker-flink-fluentd-customize-image"></a>

I passaggi seguenti descrivono come personalizzare l'immagine di base estratta da Amazon ECR.

1. Crea un nuovo `Dockerfile` nel Workspace locale.

1. Modifica `Dockerfile` e aggiungi il seguente contenuto. Questo `Dockerfile` utilizza l'immagine del contenitore da `public.ecr.aws/emr-on-eks/flink/emr-7.12.0-flink:latest` cui hai estratto.

   ```
   FROM public.ecr.aws/emr-on-eks/flink/emr-7.12.0-flink:latest
   USER root
   ### Add customization commands here ####
   USER hadoop:hadoop
   ```

   Usa la seguente configurazione se stai usando`Fluentd`.

   ```
   FROM public.ecr.aws/emr-on-eks/fluentd/emr-7.12.0:latest
   USER root
   ### Add customization commands here ####
   USER hadoop:hadoop
   ```

1. Aggiungi comandi in `Dockerfile` per personalizzare l'immagine di base. Il comando seguente mostra come installare le librerie Python.

   ```
   FROM public.ecr.aws/emr-on-eks/flink/emr-7.12.0-flink:latest
   USER root
   RUN pip3 install --upgrade boto3 pandas numpy // For python 3
   USER hadoop:hadoop
   ```

1. Nella stessa directory in cui hai creato`DockerFile`, esegui il comando seguente per creare l'immagine Docker. Il campo che fornisci dopo la `-t` bandiera è il tuo nome personalizzato per l'immagine.

   ```
   docker build -t <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG>
   ```

## Passaggio 3: Pubblica l'immagine personalizzata
<a name="jobruns-flink-docker-flink-fluentd-publish-image"></a>

Ora puoi pubblicare la nuova immagine Docker nel tuo registro Amazon ECR.

1. Esegui il seguente comando per creare un repository Amazon ECR per archiviare la tua immagine Docker. Fornisci un nome per il tuo repository, ad esempio `emr_custom_repo.` Per ulteriori informazioni, consulta [Create a repository](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html#cli-create-repository) nella Amazon Elastic Container Registry User Guide.

   ```
   aws ecr create-repository \
          --repository-name emr_custom_repo \
          --image-scanning-configuration scanOnPush=true \
          --region <AWS_REGION>
   ```

1. Esegui il comando seguente per autenticarti nel registro di default. Per ulteriori informazioni, consulta [Authenticate to your default registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html#cli-authenticate-registry) nella Amazon Elastic Container Registry User Guide.

   ```
   aws ecr get-login-password --region <AWS_REGION> | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com
   ```

1. Invia l'immagine. Per ulteriori informazioni, consulta [Push an image to Amazon ECR nella Amazon](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html#cli-push-image) Elastic Container Registry User Guide.

   ```
   docker push <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG>
   ```

## Fase 4: invia un carico di lavoro Flink in Amazon EMR utilizzando un'immagine personalizzata
<a name="jobruns-flink-docker-flink-fluentd-submit-workload"></a>

Apporta le seguenti modifiche alle tue `FlinkDeployment` specifiche per utilizzare un'immagine personalizzata. A tale scopo, inserisci la tua immagine nella `spec.image` riga delle specifiche di distribuzione.

```
apiVersion: flink.apache.org/v1beta1
   kind: FlinkDeployment
   metadata:
     name: basic-example
   spec:
     flinkVersion: v1_18
     image: <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG>
     imagePullPolicy: Always
     flinkConfiguration:
           taskmanager.numberOfTaskSlots: "1"
```

Per utilizzare un'immagine personalizzata per il tuo job Fluentd, inserisci la tua immagine nella `monitoringConfiguration.image` riga delle specifiche di distribuzione.

```
  monitoringConfiguration:
       image: <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG>
       cloudWatchMonitoringConfiguration:
         logGroupName: flink-log-group
         logStreamNamePrefix: custom-fluentd
```