

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

# Distribuisci carichi di lavoro dalle DevOps pipeline di Azure ai cluster Amazon EKS privati
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters"></a>

*Mahendra Revanasiddappa, Amazon Web Services*

## Riepilogo
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-summary"></a>

Questo modello dimostra come implementare l'integrazione continua e la distribuzione continua (CI/CD) dalle DevOps pipeline di Azure ai cluster privati di Amazon Elastic Kubernetes Service (Amazon EKS). Risolve una sfida critica affrontata dalle organizzazioni che stanno migliorando il proprio livello di sicurezza passando a endpoint server API privati per i propri cluster Amazon EKS.

Un endpoint pubblico espone il server dell'API Kubernetes direttamente a Internet, creando una superficie di attacco più ampia che i malintenzionati potrebbero potenzialmente prendere di mira. Passando a un endpoint privato, l'accesso al piano di controllo del cluster è limitato all'interno del cloud privato virtuale (VPC) del cliente.

Sebbene la transizione di un cluster Amazon EKS a un endpoint API privato migliori in modo significativo la sicurezza, introduce sfide di connettività per piattaforme esterne CI/CD come Azure. DevOps L'endpoint privato è accessibile solo dall'interno del VPC o dalle reti peer del cluster. Pertanto, DevOps gli agenti Azure standard ospitati da Microsoft, che operano all'esterno della rete AWS privata, non possono raggiungere direttamente il server dell'API Kubernetes. Ciò interrompe i flussi di lavoro di distribuzione tipici che si basano su strumenti come kubectl o Helm in esecuzione su questi agenti perché non riescono a stabilire una connessione al cluster.

Per ovviare a questo problema, questo modello mostra un approccio efficiente utilizzando DevOps agenti di Azure ospitati autonomamente all'interno di cluster Amazon EKS privati. Questa soluzione offre un'ottimizzazione dei costi, un'efficienza operativa e una scalabilità superiori, preservando al contempo i requisiti di sicurezza. Questo approccio è particolarmente vantaggioso per le aziende che cercano di semplificare i DevOps processi multi-cloud senza compromettere le prestazioni o la sicurezza.

## Prerequisiti e limitazioni
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-prereqs"></a>

**Prerequisiti**
+ Un attivo. Account AWS
+ AWS Command Line Interface [(AWS CLI) installata la versione 2.13.17 o successiva.](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
+ [kubectl versione 1.25.1 o successiva, installata.](https://kubernetes.io/docs/tasks/tools/)
+ [Creazione](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) [di un cluster Amazon EKS privato versione 1.24 o successiva, con autorizzazioni per creare namespace, segreti e distribuzioni.](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html)
+ Nodi di lavoro in un cluster Amazon EKS con connettività in uscita a Internet in modo che l' DevOps agente di Azure in esecuzione su di essi possa connettersi al pool di agenti di Azure DevOps .
+ GitHub [account creato.](https://github.com/signup)
+ [È stato creato un DevOps progetto Azure con accesso alla configurazione delle connessioni di servizio, che sono connessioni autenticate tra Azure Pipelines e servizi esterni o remoti.](https://learn.microsoft.com/en-us/azure/devops/user-guide/sign-up-invite-teammates?view=azure-devops&tabs=microsoft-account)
+ La AWS Toolkit per Azure DevOps versione 1.15 o successiva installata per il DevOps progetto Azure descritto nel punto precedente. Per istruzioni di installazione, consulta [AWS Toolkit per Azure DevOps](https://marketplace.visualstudio.com/items?itemName=AmazonWebServices.aws-vsts-tools)Visual Studio Marketplace.

**Limitazioni**
+ Alcuni Servizi AWS non sono disponibili in tutti Regioni AWS. Per la disponibilità regionale, vedi [AWS Servizi per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta [Endpoints and quotas del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

## Architecture
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-architecture"></a>

Questo modello crea quanto segue:
+ Repository **Amazon ECR - Il repository** Amazon Elastic Container Registry (Amazon ECR) archivia l'immagine Docker con l'agente DevOps Azure e l'app di esempio distribuita.
+ Pool di ** DevOps agenti di Azure: un pool** di agenti con DevOps hosting autonomo di Azure registra l'agente in esecuzione sul cluster privato Amazon EKS.
+ **Ruolo IAM**: un ruolo AWS Identity and Access Management (IAM) per la connessione al servizio Azure per fornire l'accesso richiesto all'agente in esecuzione su un cluster Amazon EKS privato.
+ **Connessione DevOps al servizio Azure**: una connessione di servizio in un DevOps account Azure per usare il ruolo IAM che fornisce l'accesso richiesto per l'accesso ai job della pipeline. Servizi AWS

Il diagramma seguente mostra l'architettura di distribuzione di un DevOps agente di Azure con hosting autonomo su un cluster Amazon EKS privato e la distribuzione di un'applicazione di esempio sullo stesso cluster.

![\[Distribuzione di un DevOps agente Azure con hosting autonomo e di un'applicazione di esempio su cluster Amazon EKS privato.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/a965834f-a1e2-4679-bd8c-15eed4f57b55/images/ee22bd3e-311c-46e0-8024-9b7e7752080a.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Implementa un DevOps agente di Azure ospitato autonomamente come distribuzione all'interno di un cluster Amazon EKS.

1. Un DevOps agente di Azure si connette al pool di agenti su un DevOps account Azure usando un token di accesso personale (PAT) per l'autenticazione.

1. Azure Pipelines configura una pipeline da distribuire usando il codice di un repository. GitHub 

1. La pipeline viene eseguita sull'agente dal pool di agenti configurato nella configurazione della pipeline. L' DevOps agente di Azure ottiene le informazioni sul lavoro della pipeline effettuando costantemente il polling sull'account Azure. DevOps 

1. L' DevOps agente di Azure crea un'immagine Docker come parte del processo della pipeline e la invia al repository Amazon ECR.

1. L' DevOps agente di Azure distribuisce l'applicazione di esempio su un cluster Amazon EKS privato in uno spazio dei nomi chiamato. `webapp` 

## Tools (Strumenti)
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-tools"></a>

**Strumenti**
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) è un servizio di registro di immagini di container gestito sicuro, scalabile e affidabile.
+ [Amazon Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) EKS) ti aiuta a eseguire AWS Kubernetes senza dover installare o gestire il tuo piano di controllo o i tuoi nodi Kubernetes.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.

**Altri strumenti**
+ [Docker](https://www.docker.com/) è un insieme di prodotti Platform as a Service (PaaS) che utilizzano la virtualizzazione a livello di sistema operativo per fornire software in container.
+ [kubectl](https://kubernetes.io/docs/tasks/tools/) è un'interfaccia a riga di comando che consente di eseguire comandi sui cluster Kubernetes.

**Archivio di codice**
+ Il codice per questo pattern è disponibile nel repository GitHub [deploy-kubernetes-resources-to- amazon-eks-using-azure -devops](https://github.com/aws-samples/deploy-kubernetes-resources-to-amazon-eks-using-azure-devops).

## Best practice
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-best-practices"></a>
+ Per Amazon EKS, consulta la [Amazon EKS Best Practice Guide](https://docs.aws.amazon.com/eks/latest/best-practices/introduction.html).
+ Segui il principio del privilegio minimo e concedi le autorizzazioni minime necessarie per eseguire un'attività. Per ulteriori informazioni, consulta le [best practice relative alla [concessione dei privilegi minimi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e alla sicurezza nella documentazione](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) IAM.

## Epiche
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-epics"></a>

### Crea una connessione di servizio
<a name="create-a-service-connection"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trova il GUID dell' DevOps organizzazione di Azure. | Accedi al tuo DevOps account Azure, quindi usa il seguente URL per trovare il GUID dell'organizzazione: `https://dev.azure.com/{DevOps_Org_ID}/_apis/projectCollections?api-version=6.0` Nell'URL, sostituiscilo `{DevOps_org_ID}` con il tuo ID dell'organizzazione Azure. DevOps  | AWS DevOps | 
| Configura un IdP in. Account AWS | Per configurare un provider di identità (IdP) Account AWS per una connessione al servizio Azure, usa i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Per altri dettagli, vedi [Come eseguire la federazione AWS da Azure usando DevOps OpenID Connect](https://aws.amazon.com/blogs/modernizing-with-aws/how-to-federate-into-aws-from-azure-devops-using-openid-connect/). | AWS DevOps | 
| Crea una policy IAM in Account AWS. | Per creare una policy IAM che fornisca le autorizzazioni richieste al ruolo IAM usato dalla DevOps pipeline di Azure, usa i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | AWS DevOps | 
| Crea un ruolo IAM in Account AWS. | Per configurare un ruolo IAM nella Account AWS connessione al servizio Azure, usa i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Effect": "Allow",<br />      "Principal": {<br />        "Federated": "arn:aws:iam::{account_id}:oidc-provider/vstoken.dev.azure.com/{OrganizationGUID}"<br />      },<br />      "Action": "sts:AssumeRoleWithWebIdentity",<br />      "Condition": {<br />        "StringEquals": {<br />          "vstoken.dev.azure.com/{OrganizationGUID}:aud": "api://AzureADTokenExchange",<br />          "vstoken.dev.azure.com/{OrganizationGUID}:sub": "sc://{OrganizationName}/{ProjectName}/{ServiceConnectionName}"<br />        }<br />      }<br />    }<br />  ]<br />}</pre>Nella politica, fornisci le tue informazioni per i seguenti segnaposto:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | AWS DevOps | 
| Crea una connessione di servizio nell' DevOps account Azure. | Per configurare una connessione al servizio Azure, usa i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Per ulteriori dettagli, consulta [Creare una connessione di servizio](https://learn.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops#create-a-service-connection) nella documentazione Microsoft. | AWS DevOps | 
| Aggiungi il ruolo IAM al file di configurazione di Amazon EKS. | Il ruolo IAM deve disporre delle autorizzazioni necessarie per eseguire le operazioni richieste sul cluster Amazon EKS. Poiché si tratta di un ruolo di pipeline, il ruolo IAM deve essere in grado di gestire quasi tutti i tipi di risorse sul cluster. Pertanto, l'autorizzazione `system:masters` di gruppo è appropriata per questo ruolo.Per aggiungere la configurazione richiesta all'`aws-auth ConfigMap`interno di Kubernetes, usa il codice seguente:<pre>- groups:<br />  - system:masters<br />  rolearn: arn:aws:iam::{account_id}:role/ADO-role<br />  username: ADO-role</pre>Sostituiscilo `{account_id}` con il tuo ID. Account AWS Per ulteriori informazioni, consulta [Come funziona Amazon EKS con IAM](https://docs.aws.amazon.com/eks/latest/userguide/security-iam-service-with-iam.html#security-iam-service-with-iam-roles) nella documentazione di Amazon EKS. | AWS DevOps | 

### Crea un pool di agenti
<a name="create-an-agent-pool"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un pool di agenti ospitati autonomamente. | Per configurare un pool di agenti ospitati autonomamente nell' DevOps account Azure, usa i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Per ulteriori dettagli, consulta [Creare e gestire pool di agenti](https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/pools-queues?view=azure-devops&tabs=yaml%2Cbrowser) nella documentazione Microsoft. |  | 

### Crea l'immagine DevOps dell'agente di Azure e inviala ad Amazon ECR
<a name="build-azure-devops-agent-image-and-push-to-ecr"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un repository Amazon ECR. | Le immagini Docker utilizzate per distribuire l' DevOps agente Azure e l'applicazione di esempio (`webapp`) sul cluster Amazon EKS privato devono essere archiviate in un repository Amazon ECR. Per creare un repository Amazon ECR, utilizza i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Per ulteriori dettagli, consulta [Creazione di un repository privato Amazon ECR per archiviare immagini nella documentazione](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html) di Amazon ECR. | AWS DevOps | 
| Crea un Dockerfile per creare l'agente Azure DevOps . | Crea un Dockerfile per creare l'immagine Docker su cui è installato l'agente Azure. DevOps Archivia il seguente contenuto in un file denominato: `Dockerfile`<pre><br />FROM ubuntu:22.04 <br />ENV TARGETARCH="linux-x64"<br />RUN apt update && apt upgrade -y && apt install -y curl git jq libicu70 unzip wget<br /><br />RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />RUN unzip awscliv2.zip<br />RUN ./aws/install<br />RUN rm -rf aws awscliv2.zip<br /><br />RUN curl -sSL https://get.docker.com/ | sh<br /><br />RUN curl -sL https://aka.ms/InstallAzureCLIDeb | bash<br />RUN mkdir -p azp <br />WORKDIR /azp/<br /><br />COPY ./start.sh ./ <br />RUN chmod +x ./start.sh<br /><br />RUN useradd -m -d /home/agent agent <br />RUN chown -R agent:agent /azp /home/agent<br />RUN groupadd -f docker <br />RUN usermod -aG docker agent<br />USER agent<br /><br />ENTRYPOINT [ "./start.sh" ]</pre> | AWS DevOps | 
| Crea script per l' DevOps agente di Azure. | Per creare lo `start.sh` script, usa i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | AWS DevOps | 
| Crea un'immagine Docker con l'agente Azure. DevOps  | Per creare un'immagine Docker per installare l' DevOps agente di Azure, usa il Dockerfile che hai creato in precedenza per creare l'immagine. Nella stessa directory in cui è archiviato il Dockerfile, esegui i seguenti comandi:<pre>aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com<br /><br />docker build --platform linux/amd64 -t ado-agent:latest .<br /><br />docker tag ado-agent:latest aws_account_id.dkr.ecr.region.amazonaws.com/webapp:latest<br /><br />docker push aws_account_id.dkr.ecr.region.amazonaws.com/webapp:latest</pre>Sostituisci `aws_account_id` e `region` con il tuo Account AWS ID e. Regione AWS | AWS DevOps | 

### Distribuisci l' DevOps agente di Azure in un cluster Amazon EKS privato
<a name="deploy-the-azure-devops-agent-to-a-private-eks-cluster"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera un token di accesso personale di Azure. | L'agente in esecuzione sul cluster privato Amazon EKS richiede un token di accesso personale (PAT) per potersi autenticare con l'account Azure DevOps . Per generare un PAT, usa i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)<pre>apiVersion: v1<br />kind: Secret<br />metadata:<br />  name: azdevops-pat<br />  namespace: default<br />type: Opaque<br />stringData:<br />  AZP_TOKEN: <PAT Token></pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)<pre>kubectl create -f ado-secret.yaml</pre>Per ulteriori dettagli, consulta [Registrare un agente utilizzando un token di accesso personale (PAT)](https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/personal-access-token-agent-registration?view=azure-devops) nella documentazione Microsoft. | AWS DevOps | 
| Utilizza il file manifest di Kubernetes per la distribuzione degli agenti. | Per distribuire l' DevOps agente di Azure sul cluster privato Amazon EKS, copia il seguente file manifest e archivia il file come: `agent-deployment.yaml` <pre>apiVersion: apps/v1<br />kind: Deployment<br />metadata:<br />  name: azure-pipelines-agent-eks<br />  labels:<br />    app: azure-pipelines-agent<br />spec:<br />  replicas: 1<br />  selector:<br />    matchLabels:<br />      app: azure-pipelines-agent<br />  template:<br />    metadata:<br />      labels:<br />        app: azure-pipelines-agent<br />    spec:<br />      containers:<br />      - name: docker<br />        image: docker:dind<br />        securityContext: <br />          privileged: true<br />        volumeMounts:<br />        - name: shared-workspace<br />          mountPath: /workspace<br />        - name: dind-storage<br />          mountPath: /var/lib/docker<br />        env:<br />        - name: DOCKER_TLS_CERTDIR<br />          value: ""<br />      - name: azure-pipelines-agent<br />        image: aws_account_id.dkr.ecr.region.amazonaws.com/webapp:latest<br />        env:<br />        - name: AZP_URL<br />          value: "<Azure account URL>"<br />        - name: AZP_POOL<br />          value: "eks-agent"<br />        - name: AZP_TOKEN<br />          valueFrom:<br />            secretKeyRef:<br />              name: azdevops-pat<br />              key: AZP_TOKEN<br />        - name: AZP_AGENT_NAME<br />          valueFrom:<br />            fieldRef:<br />              fieldPath: metadata.name<br />        - name: DOCKER_HOST<br />          value: tcp://localhost:2375<br />        volumeMounts:<br />        - mountPath: /workspace<br />          name: shared-workspace<br />      volumes:<br />      - name: dind-storage<br />        emptyDir: {}<br />      - name: shared-workspace<br />        emptyDir: {}</pre>Sostituisci `aws_account_id` e `<Azure account URL>` con il tuo Account AWS ID e l'URL dell'account Azure. DevOps  | AWS DevOps | 
| Implementa l'agente sul cluster privato Amazon EKS. | Per distribuire l'agente Azure Devops sul cluster privato Amazon EKS, usa il seguente comando:<pre>kubectl create -f agent-deployment.tf</pre> | AWS DevOps | 
| Verifica che l'agente sia in esecuzione. | Per verificare che l' DevOps agente di Azure sia in esecuzione, usa il seguente comando:<pre>kubectl get deploy azure-pipelines-agent-eks<br /></pre>L'output previsto dovrebbe essere simile al seguente:<pre><br />NAME                        READY   UP-TO-DATE   AVAILABLE   AGE<br />azure-pipelines-agent-eks   1/1     1            1           58s</pre>Assicurati che la `READY ` colonna sia visualizzata`1/1`. | AWS DevOps | 
| Verifica che l'agente sia registrato nel pool di DevOps agenti di Azure. | Per verificare che l'agente sia distribuito nel cluster privato Amazon EKS e sia registrato nel pool di agenti`eks-agent`, utilizza i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)**Dovresti vedere un agente elencato con **lo stato** **Online** e il nome dell'agente dovrebbe iniziare con azure-pipelines-agent-eks -\$1.** | AWS DevOps | 

### Distribuisci un'applicazione di esempio
<a name="deploy-sample-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Inserisci il repository di applicazioni di esempio nel tuo GitHub account.  | Effettua il fork del seguente repository AWS di esempi sul tuo account: GitHub [https://github.com/aws-samples/deploy-kubernetes-resources-to- -devops amazon-eks-using-azure](https://github.com/aws-samples/deploy-kubernetes-resources-to-amazon-eks-using-azure-devops) | AWS DevOps | 
| Creare una pipeline. | Per creare una pipeline nel tuo DevOps account Azure, usa i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)<pre>pool:<br />  name: eks-agent<br />#pool: self-hosted # If you are running self-hosted Azure DevOps Agents<br /><br />stages:<br /># Refering the pipeline template, input parameter that are not specified will be added with defaults<br />- template: ./pipeline_templates/main_template.yaml<br />  parameters:<br />    serviceConnectionName: aws-sc<br />    awsRegion: <your region><br />    awsEKSClusterName: <name of your EKS cluster><br />    projectName: webapp<br /></pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | AWS DevOps | 
| Verifica che l'applicazione di esempio sia stata distribuita. | Una volta completata la pipeline, verifica la corretta implementazione dell'applicazione di esempio controllando sia il repository Amazon ECR che il cluster Amazon EKS.Per verificare gli artefatti nel repository Amazon ECR, utilizza i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Ad esempio `20250501.1-image` e `20250501.1-helm`.Per verificare la distribuzione sul cluster Amazon EKS privato nello spazio dei nomi`webapp`, usa il seguente comando:<pre>kubectl get deploy -n webapp </pre>L'output previsto è il seguente:<pre><br />NAME     READY   UP-TO-DATE   AVAILABLE<br />webapp   1/1     1            1           </pre>Nota: se questa è la prima esecuzione della pipeline, potrebbe essere necessario autorizzare la connessione al servizio e il pool di agenti. Cerca le richieste di autorizzazione nell'interfaccia della DevOps pipeline di Azure e approvale per procedere. | AWS DevOps | 

## Risoluzione dei problemi
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| La pipeline fallisce quando il nome del repository Amazon ECR non corrisponde `webapp` | L'applicazione di esempio si aspetta che il nome del repository Amazon ECR corrisponda al `projectName: webapp` parametro in. `azure_pipeline.yml`Per risolvere questo problema, rinomina il tuo repository Amazon ECR o aggiorna `webapp` quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | 
| Errore: cluster Kubernetes irraggiungibile: il server ha richiesto al client di fornire le credenziali | Se riscontri questo errore nella fase «Pull and Deploy Helm Chart» nella pipeline di Azure, la causa principale in genere deriva da una configurazione errata del ruolo IAM nel tuo cluster Amazon EKS. `aws-auth ConfigMap`Per risolvere questo problema, controlla quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | 

## Risorse correlate
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-resources"></a>

**AWS Blog**
+ [Come eseguire la federazione AWS da Azure usando DevOps OpenID Connect](https://aws.amazon.com/blogs/modernizing-with-aws/how-to-federate-into-aws-from-azure-devops-using-openid-connect/)

**Servizi AWS documentazione**
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
+ [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Documentazione Microsoft**
+ [Che cos'è Azure DevOps?](https://learn.microsoft.com/en-us/azure/devops/user-guide/what-is-azure-devops?view=azure-devops)
+ [Che cos'è Azure Pipelines?](https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops)