

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

# Riferimento all'azione di distribuzione di Amazon Elastic Kubernetes Service `EKS`
<a name="action-reference-EKS"></a>

Puoi utilizzare l'`EKSDeploy`azione per distribuire un servizio Amazon EKS. La distribuzione richiede un file manifest Kubernetes da CodePipeline utilizzare per distribuire l'immagine.

Prima di creare la pipeline, devi aver già creato le risorse Amazon EKS e aver archiviato l'immagine nel tuo repository di immagini. Facoltativamente, puoi fornire informazioni sul VPC per il tuo cluster.

**Importante**  
Questa azione utilizza l' CodeBuild elaborazione CodePipeline gestita per eseguire comandi in un ambiente di compilazione. L'esecuzione dell'azione dei comandi comporterà costi separati in. AWS CodeBuild

**Nota**  
L'azione di `EKS` distribuzione è disponibile solo per le pipeline di tipo V2.

L'azione EKS supporta cluster EKS pubblici e privati. I cluster privati sono il tipo consigliato da EKS; tuttavia, entrambi i tipi sono supportati.

L'azione EKS è supportata per le azioni tra account. Per aggiungere un'azione EKS su più account, aggiungila `actionRoleArn` dal tuo account di destinazione nella dichiarazione di azione.

**Topics**
+ [Tipo di operazione](#action-reference-EKS-type)
+ [Parametri di configurazione](#action-reference-EKS-config)
+ [Input artifact (Artefatti di input)](#action-reference-EKS-input)
+ [Artefatti di output](#action-reference-EKS-output)
+ [Variabili di ambiente](#action-reference-EKS-env-variables)
+ [Variabili di output](#action-reference-EKS-output-vars)
+ [Autorizzazioni relative alla politica del ruolo di servizio](#action-reference-EKS-service-role)
+ [Dichiarazione dell'operazione](#action-reference-EKS-example)
+ [Consulta anche](#action-reference-EKS-links)

## Tipo di operazione
<a name="action-reference-EKS-type"></a>
+ Categoria: `Deploy`
+ Proprietario: `AWS`
+ Provider: `EKS`
+ Versione: `1`

## Parametri di configurazione
<a name="action-reference-EKS-config"></a>

**ClusterName**  
Obbligatorio: sì  
Il cluster Amazon EKS in Amazon EKS.

**Opzioni in Helm**  
Le seguenti sono le opzioni disponibili quando **Helm** è lo strumento di distribuzione selezionato.    
**HelmReleaseName **  
Obbligatorio: Sì (richiesto solo per il tipo di **Helm)**  
Il nome della versione per la distribuzione.  
**HelmChartLocation **  
Obbligatorio: Sì (richiesto solo per il tipo **Helm)**  
La posizione sulla mappa per la distribuzione.  
**HelmValuesFiles **  
Obbligatorio: No (opzionale solo per il tipo di **timone)**  
Per sostituire i file dei valori di helm, inserisci i file dei valori di helm separati da virgole nella posizione del grafico Helm.

**Opzioni in Kubectl**  
Le seguenti sono opzioni disponibili quando **Kubectl** è lo strumento di distribuzione selezionato.    
**ManifestFiles**  
**Richiesto: Sì (richiesto solo per il tipo Kubectl)**  
Il nome del file manifest, il file di testo che descrive il nome del contenitore del servizio, l'immagine e il tag. Utilizzate questo file per parametrizzare l'URI dell'immagine e altre informazioni. È possibile utilizzare la variabile di ambiente per questo scopo.  
 Questo file viene archiviato nel repository di origine della pipeline.

**Namespace**  
Obbligatorio: no  
Lo spazio dei nomi Kubernetes da utilizzare nei nostri comandi. `kubectl` `helm`

**Sottoreti**  
Obbligatorio: no  
Le sottoreti per il VPC del tuo cluster. Fanno parte dello stesso VPC collegato al cluster. Puoi anche fornire sottoreti che non sono già collegate al cluster e specificarle qui.

**SecurityGroupIds**  
Obbligatorio: no  
I gruppi di sicurezza per il VPC del tuo cluster. Fanno parte dello stesso VPC collegato al cluster. Puoi anche fornire gruppi di sicurezza che non sono già collegati al tuo cluster e specificarli qui.

## Input artifact (Artefatti di input)
<a name="action-reference-EKS-input"></a>
+ **Numero di artefatti:** `1`
+ **Descrizione:** l'azione cerca il file manifest di Kubernetes o il grafico Helm nell'archivio dei file di origine della pipeline. Se desideri utilizzare i grafici helm in formato.tgz archiviati in un bucket S3, puoi farlo configurando S3 come azione di origine. Bucket/Key Ad esempio, la chiave dell'oggetto fornita sarebbe. `my-chart-0.1.0.tgz`

## Artefatti di output
<a name="action-reference-EKS-output"></a>
+ **Numero di artefatti:** `0` 
+ **Descrizione:** gli artefatti di output non si applicano a questo tipo di azione.

## Variabili di ambiente
<a name="action-reference-EKS-env-variables"></a>

Utilizzato per sostituire variabili come archivi di immagini o tag di immagine nei file manifest o nei file di valori dei grafici Helm.

**Chiave**  
La chiave in una coppia di variabili di ambiente chiave-valore, ad esempio. `$IMAGE_TAG`

**Valore**  
Il valore per la coppia chiave-valore, ad esempio. `v1.0` Il valore può essere parametrizzato con variabili di output provenienti da azioni di pipeline o variabili di pipeline. Ad esempio, la pipeline può avere un' ECRBuildAndPublish azione con `${codepipeline.PipelineExecutionId}` cui crea un'immagine ECR e l'azione EKS può utilizzare questa immagine `${codepipeline.PipelineExecutionId}` come valore della variabile di ambiente. 

## Variabili di output
<a name="action-reference-EKS-output-vars"></a>

**EKSClusterNome**  
Il cluster Amazon EKS in Amazon EKS.

## Autorizzazioni relative alla politica del ruolo di servizio
<a name="action-reference-EKS-service-role"></a>

Per eseguire questa azione, le seguenti autorizzazioni devono essere disponibili nella politica dei ruoli di servizio della pipeline.
+ **Azioni EC2:** quando CodePipeline viene eseguita l'azione, sono necessarie le autorizzazioni dell'istanza EC2. Tieni presente che questo non è lo stesso ruolo dell'istanza EC2 richiesto per la creazione del cluster EKS.

  Se utilizzi un ruolo di servizio esistente, per utilizzare questa azione, dovrai aggiungere le seguenti autorizzazioni per il ruolo di servizio.
  + ec2: CreateNetworkInterface
  + ec2: DescribeDhcpOptions
  + ec2: DescribeNetworkInterfaces
  + ec2: DeleteNetworkInterface
  + ec2: DescribeSubnets
  + ec2: DescribeSecurityGroups
  + ec2: DescribeVpcs
+ **Azioni EKS:** quando si CodePipeline esegue l'azione, sono necessarie le autorizzazioni del cluster EKS. Tieni presente che questo non è lo stesso ruolo del cluster IAM EKS richiesto per la creazione del cluster EKS.

  Se utilizzi un ruolo di servizio esistente, per utilizzare questa azione, dovrai aggiungere la seguente autorizzazione per il ruolo di servizio.
  + es: DescribeCluster
+ **Registra le azioni del flusso:** quando CodePipeline esegue l'azione, CodePipeline crea un gruppo di log utilizzando il nome della pipeline come segue. Ciò consente di limitare le autorizzazioni per registrare le risorse utilizzando il nome della pipeline.

  ```
  /aws/codepipeline/MyPipelineName
  ```

  Se si utilizza un ruolo di servizio esistente, per utilizzare questa azione, è necessario aggiungere le seguenti autorizzazioni per il ruolo di servizio.
  + registri: CreateLogGroup
  + registri: CreateLogStream
  + registri: PutLogEvents

Nella dichiarazione sulla politica del ruolo del servizio, riduci le autorizzazioni al livello della risorsa, come illustrato nell'esempio seguente.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:*:111122223333:cluster/YOUR_CLUSTER_NAME"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs",
                "ec2:DescribeRouteTables"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:111122223333:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME",
                "arn:aws:logs:*:111122223333:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*"
            ]
        }
    ]
}
```

------

Per visualizzare i log nella console utilizzando la pagina di dialogo dei dettagli delle azioni, è necessario aggiungere l'autorizzazione alla visualizzazione dei log al ruolo della console. Per ulteriori informazioni, consulta l'esempio di policy sulle autorizzazioni della console in. [Autorizzazioni necessarie per visualizzare i log di calcolo nella console](security-iam-permissions-console-logs.md)

### Aggiungere il ruolo di servizio come voce di accesso per il cluster
<a name="action-reference-EKS-service-role-access"></a>

Dopo che le autorizzazioni sono disponibili nella politica del ruolo di servizio della pipeline, configuri le autorizzazioni del cluster aggiungendo il ruolo di CodePipeline servizio come voce di accesso per il cluster.

Puoi anche utilizzare un ruolo d'azione con le autorizzazioni aggiornate. Per ulteriori informazioni, consulta l'esempio del tutorial in[Fase 4: Creare una voce di accesso per il ruolo di servizio CodePipeline](tutorials-eks-deploy.md#tutorials-eks-deploy-access-entry).

## Dichiarazione dell'operazione
<a name="action-reference-EKS-example"></a>

------
#### [ YAML ]

```
Name: DeployEKS
ActionTypeId:
  Category: Deploy
  Owner: AWS
  Provider: EKS
  Version: '1'
RunOrder: 2
Configuration:
  ClusterName: my-eks-cluster
  ManifestFiles: ManifestFile.json
OutputArtifacts: []
InputArtifacts:
  - Name: SourceArtifact
```

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

```
{
    "Name": "DeployECS",
    "ActionTypeId": {
        "Category": "Deploy",
        "Owner": "AWS",
        "Provider": "EKS",
        "Version": "1"
    },
    "RunOrder": 2,
    "Configuration": {
        "ClusterName": "my-eks-cluster",
        "ManifestFiles": "ManifestFile.json"
    },
    "OutputArtifacts": [],
    "InputArtifacts": [
        {
            "Name": "SourceArtifact"
        }
    ]
},
```

------

## Consulta anche
<a name="action-reference-EKS-links"></a>

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.
+ Vedi [Tutorial: Esegui la distribuzione su Amazon EKS con CodePipeline](tutorials-eks-deploy.md) un tutorial che dimostra come creare un cluster EKS e un file manifest Kubernetes per aggiungere l'azione alla tua pipeline.