

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Referência da ação de implantação `EKS` do Amazon Elastic Container Service
<a name="action-reference-EKS"></a>

Você pode usar a ação `EKSDeploy` para implantar um serviço do Amazon EKS. A implantação requer um arquivo de manifesto do Kubernetes CodePipeline usado para implantar a imagem.

Antes de criar o pipeline, você também já deve ter criado os recursos do Amazon EKS e armazenado a imagem no repositório de imagens. Você também pode fornecer as informações do VPC para o cluster.

**Importante**  
Essa ação usa CodeBuild computação CodePipeline gerenciada para executar comandos em um ambiente de compilação. A execução da ação Comandos incorrerá em cobranças separadas no AWS CodeBuild.

**nota**  
A ação de implantação `EKS` está disponível somente para pipelines do tipo V2.

A ação do EKS oferece suporte a clusters do EKS públicos e privados. Os clusters privados são do tipo recomendado pelo EKS. No entanto, ambos os tipos são compatíveis.

A ação do EKS é compatível com ações entre contas. Para adicionar uma ação do EKS entre contas, adicione `actionRoleArn` da conta de destino na declaração de ação.

**Topics**
+ [Tipo de ação](#action-reference-EKS-type)
+ [Parâmetros de configuração](#action-reference-EKS-config)
+ [Input artifacts (Artefatos de entrada)](#action-reference-EKS-input)
+ [Artefatos de saída](#action-reference-EKS-output)
+ [Variáveis de ambiente](#action-reference-EKS-env-variables)
+ [Variáveis de saída](#action-reference-EKS-output-vars)
+ [Permissões de política de perfil de serviço](#action-reference-EKS-service-role)
+ [Declaração de ação](#action-reference-EKS-example)
+ [Consulte também](#action-reference-EKS-links)

## Tipo de ação
<a name="action-reference-EKS-type"></a>
+ Categoria: `Deploy`
+ Proprietário: `AWS`
+ Fornecedor: `EKS`
+ Versão: `1`

## Parâmetros de configuração
<a name="action-reference-EKS-config"></a>

**ClusterName**  
Obrigatório: Sim  
O cluster do Amazon EKS no Amazon EKS.

**Opções no Helm**  
Estas serão as opções disponíveis quando o **Helm** for a ferramenta de implantação selecionada.    
**HelmReleaseName **  
Obrigatório: sim (obrigatório apenas para o tipo **Helm**)  
O nome da versão da implantação.  
**HelmChartLocation **  
Obrigatório: sim (obrigatório apenas para o tipo **Helm**)  
A localização do gráfico da implantação.  
**HelmValuesFiles **  
Obrigatório: não (opcional apenas para o tipo **Helm**)  
Para substituir os arquivos de valores do Helm, insira os arquivos de valores do Helm separados por vírgula no local do chart do Helm.

**Opções em Kubectl**  
Estas serão as opções disponíveis quando o **Kubectl** for a ferramenta de implantação selecionada.    
**ManifestFiles**  
Obrigatório: sim (obrigatório apenas para o tipo **Kubectl**)  
O nome do arquivo de manifesto, o arquivo de texto que descreve o nome de contêiner, a imagem e a tag do serviço. Você usa esse arquivo para parametrizar o URI da imagem e outras informações. Você pode usar uma variável de ambiente com essa finalidade.  
 Você armazena esse arquivo no repositório de origem do pipeline.

**Namespace**  
Obrigatório: não  
O namespace kubernetes a ser usado em comandos `kubectl` ou `helm`.

**Sub-redes**  
Obrigatório: não  
As sub-redes da VPC do cluster. Elas fazem parte da mesma VPC conectada ao cluster. Você também pode fornecer sub-redes ainda não conectadas ao cluster e especificá-las aqui.

**SecurityGroupIds**  
Obrigatório: não  
Os grupos de segurança da VPC do cluster. Elas fazem parte da mesma VPC conectada ao cluster. Você também pode fornecer grupos de segurança ainda não conectados ao cluster e especificá-los aqui.

## Input artifacts (Artefatos de entrada)
<a name="action-reference-EKS-input"></a>
+ **Número de artefatos:** `1`
+ **Descrição:** a ação procura o arquivo de manifesto do Kubernetes ou o chart do Helm no repositório de arquivos de origem do pipeline. Se quiser usar gráficos helm no formato.tgz armazenados em um bucket do S3, você pode fazer isso configurando o Bucket/Key S3 como sua ação de origem. Por exemplo, a chave do objeto fornecida seria `my-chart-0.1.0.tgz`.

## Artefatos de saída
<a name="action-reference-EKS-output"></a>
+ **Número de artefatos:** `0` 
+ **Descrição:** os artefatos de saída não se aplicam a esse tipo de ação.

## Variáveis de ambiente
<a name="action-reference-EKS-env-variables"></a>

Usado para substituir variáveis como repositórios de imagens ou tags de imagem em arquivos de manifesto ou arquivos de valores do chart do Helm.

**Chave**  
A chave em um par de variáveis do ambiente chave-valor, como `$IMAGE_TAG`.

**Valor**  
O valor do par chave-valor, como `v1.0`. O valor pode ser parametrizado com variáveis de saída a partir de ações ou variáveis do pipeline. Por exemplo, o pipeline pode ter uma ECRBuild AndPublish ação que cria uma imagem ECR com`${codepipeline.PipelineExecutionId}`, e a ação EKS pode usar essa imagem usando `${codepipeline.PipelineExecutionId}` como valor da variável de ambiente. 

## Variáveis de saída
<a name="action-reference-EKS-output-vars"></a>

**EKSClusterNome**  
O cluster do Amazon EKS no Amazon EKS.

## Permissões de política de perfil de serviço
<a name="action-reference-EKS-service-role"></a>

Para executar essa ação, as permissões a seguir devem estar disponíveis na política do perfil de serviço do pipeline.
+ **Ações do EC2:** quando a ação CodePipeline é executada, as permissões da instância do EC2 são necessárias. Não se trata da mesma função da instância do EC2 necessária quando você cria o cluster do EKS.

  Se estiver usando um perfil de serviço existente, para usar essa ação, você precisará adicionar as permissões a seguir para o perfil de serviço.
  + ec2: CreateNetworkInterface
  + ec2: DescribeDhcpOptions
  + ec2: DescribeNetworkInterfaces
  + ec2: DeleteNetworkInterface
  + ec2: DescribeSubnets
  + ec2: DescribeSecurityGroups
  + ec2: DescribeVpcs
+ **Ações do EKS:** ao CodePipeline executar a ação, as permissões do cluster EKS são necessárias. Não se trata da mesma função do cluster do EKS do IAM necessária quando você cria o cluster do EKS.

  Se estiver usando um perfil de serviço existente, para usar essa ação, você precisará adicionar a permissão a seguir para o perfil de serviço.
  + ex: DescribeCluster
+ **Ações de fluxo de log:** ao CodePipeline executar a ação, CodePipeline cria um grupo de registros usando o nome do pipeline da seguinte forma. Isso permite reduzir as permissões para os recursos de log usando o nome do pipeline.

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

  Se estiver usando um perfil de serviço existente, para usar essa ação, você precisará adicionar as permissões a seguir para o perfil de serviço.
  + troncos: CreateLogGroup
  + troncos: CreateLogStream
  + troncos: PutLogEvents

Na declaração da política do perfil de serviço, reduza o escopo das permissões até o nível de recurso conforme mostrado no exemplo a seguir.

------
#### [ 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:*"
            ]
        }
    ]
}
```

------

Para visualizar logs no console usando a página de diálogo de detalhes da ação, a permissão para visualizar logs deve ser adicionada ao perfil do console. Para ter mais informações, consulte o exemplo de política de permissões do console em [Permissões necessárias para visualizar registros computacionais no console](security-iam-permissions-console-logs.md).

### Adição do perfil de serviço como uma entrada de acesso para o cluster
<a name="action-reference-EKS-service-role-access"></a>

Depois que as permissões estiverem disponíveis na política de função de serviço do seu pipeline, você configura suas permissões de cluster adicionando a função de CodePipeline serviço como uma entrada de acesso para seu cluster.

Você também pode usar uma função de ação que tenha as permissões atualizadas. Para obter mais informações, consulte o exemplo do tutorial em [Etapa 4: criar uma entrada de acesso para a função CodePipeline de serviço](tutorials-eks-deploy.md#tutorials-eks-deploy-access-entry).

## Declaração de ação
<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"
        }
    ]
},
```

------

## Consulte também
<a name="action-reference-EKS-links"></a>

Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.
+ Consulte [Tutorial: implante no Amazon EKS com CodePipeline](tutorials-eks-deploy.md) acessar para um tutorial que demonstre como criar um cluster do EKS e um arquivo de manifesto do Kubernetes para adicionar a ação ao pipeline.