

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 Commands
<a name="action-reference-Commands"></a>

A ação Commands permite que você execute comandos de shell em uma instância de computação virtual. Ao executar a ação, os comandos especificados na configuração dela são executados em um contêiner separado. Todos os artefatos especificados como artefatos de entrada para uma CodeBuild ação estão disponíveis dentro do contêiner que executa os comandos. Essa ação permite especificar comandos sem primeiro criar um CodeBuild projeto. Para obter mais informações, consulte [ActionDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ActionDeclaration.html) e [OutputArtifact](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_OutputArtifact.html) na *Referência da API do AWS CodePipeline *.

**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 Comandos só está disponível para pipelines do tipo V2.

**Topics**
+ [Considerações para a ação Commands](#action-reference-Commands-considerations)
+ [Permissões de política de perfil de serviço](#action-reference-Commands-policy)
+ [Tipo de ação](#action-reference-Commands-type)
+ [Parâmetros de configuração](#action-reference-Commands-config)
+ [Input artifacts (Artefatos de entrada)](#action-reference-Commands-input)
+ [Artefatos de saída](#action-reference-Commands-output)
+ [Variáveis de ambiente](#action-reference-Commands-envvars)
+ [Permissões do perfil de serviço: ação Comandos](#edit-role-Commands)
+ [Declaração de ação (exemplo)](#action-reference-Commands-example)
+ [Consulte também](#action-reference-Commands-links)

## Considerações para a ação Commands
<a name="action-reference-Commands-considerations"></a>

As seguintes considerações se aplicam à ação Commands.
+ A ação de comandos usa CodeBuild recursos semelhantes à CodeBuild ação, ao mesmo tempo em que permite comandos do ambiente shell em uma instância de computação virtual sem a necessidade de associar ou criar um projeto de construção.
**nota**  
A execução da ação Comandos incorrerá em cobranças separadas no AWS CodeBuild.
+ Como a ação Comandos CodePipeline usa CodeBuild recursos, as compilações executadas pela ação serão atribuídas aos limites de criação da sua conta em CodeBuild. As compilações executadas pela ação Commands serão contabilizadas nos limites de compilações simultâneas, conforme configurado para essa conta.
+ O tempo limite para compilações com a ação Comandos é de 55 minutos, com base nas CodeBuild compilações.
+ A instância de computação usa um ambiente de compilação isolado em CodeBuild. 
**nota**  
Como o ambiente de compilação isolado é usado no nível da conta, uma instância pode ser reutilizada para outra execução de pipeline.
+ Todos os formatos são compatíveis, exceto os formatos de várias linhas. Você deve usar o formato de linha única ao inserir comandos.
+ A ação de comandos é compatível com ações entre contas. Para adicionar uma ação de comandos entre contas, adicione `actionRoleArn` da conta de destino na declaração de ação.
+ Para essa ação, CodePipeline assumirá a função de serviço de pipeline e usará essa função para permitir o acesso aos recursos em tempo de execução. É recomendável configurar o perfil de serviço para que as permissões sejam reduzidas ao nível da ação.
+ As permissões adicionadas à função CodePipeline de serviço estão detalhadas em[Adicionar permissões à função CodePipeline de serviço](how-to-custom-role.md#how-to-update-role-new-services).
+ A permissão necessária para visualizar logs no console está detalhada em [Permissões necessárias para visualizar registros computacionais no console](security-iam-permissions-console-logs.md).
+ Ao contrário de outras ações em CodePipeline, você não define campos na configuração da ação; você define os campos de configuração da ação fora da configuração da ação.

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

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
```

Caso utilize um perfil de serviço já existente, será preciso incluir as permissões a seguir ao perfil de serviço para habilitar o uso da ação Commands.
+ registros: CreateLogGroup
+ registros: CreateLogStream
+ registros: PutLogEvents

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

```
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
    ],
    "Resource": [
        "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME",
        "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID: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).

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

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

**Comandos**  
Obrigatório: Sim  
Você pode fornecer comandos de shell para a ação `Commands` ser executada. No console, os comandos são inseridos em linhas separadas. Na CLI, os comandos são inseridos como strings separadas.  
Os formatos de várias linhas não são compatíveis e resultarão em uma mensagem de erro. O formato de linha única deve ser usado para inserir comandos no campo **Comandos**.
Os ComputeType valores EnvironmentType e correspondem aos de CodeBuild. Oferecemos suporte a um subconjunto dos tipos disponíveis. Para obter mais informações, consulte [Tipos de computação de ambiente de compilação](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html).

**EnvironmentType**  
Obrigatório: não  
A imagem do sistema operacional para o ambiente de compilação que dá suporte à ação Comandos. Estes são valores válidos para ambientes de compilação:  
+ LINUX\$1CONTAINER
+ WINDOWS\$1SERVER\$12022\$1CONTAINER
A seleção de então **EnvironmentType**permitirá o tipo de computação desse sistema operacional no **ComputeType**campo. Para obter mais informações sobre os tipos de CodeBuild computação disponíveis para essa ação, consulte a referência de [modos e tipos de computação do ambiente de criação](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) no Guia do CodeBuild usuário.  
Se não for especificado, a computação assumirá como padrão o seguinte para o ambiente de compilação:  
+ **Tipo de computação:** GENERAL1 BUILD\$1 \$1SMALL
+ **Tipo de ambiente:** LINUX\$1CONTAINER

**ComputeType**  
Obrigatório: não  
Com base na seleção para EnvironmentType, o tipo de computação pode ser fornecido. A seguir estão os valores disponíveis para computação; no entanto, as opções disponíveis podem variar de acordo com o sistema operacional.  
+ CONSTRUIR\$1 \$1PEQUENO GENERAL1
+ BUILD\$1 GENERAL1 \$1MEDIUM
+ CONSTRUÇÃO\$1 GENERAL1 \$1GRANDE
Alguns tipos de computação não são compatíveis com determinados tipos de ambiente. Por exemplo, WINDOWS\$1SERVER\$12022\$1CONTAINER não é compatível com BUILD\$1 \$1SMALL. GENERAL1 O uso de combinações incompatíveis causa falha na ação e gera um erro de runtime.

**outputVariables**  
Obrigatório: não  
Especifique os nomes das variáveis do ambiente que deseja exportar. Para obter uma referência das variáveis de CodeBuild ambiente, consulte [Variáveis de ambiente em ambientes de construção](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html) no *Guia CodeBuild do usuário*. 

**Arquivos**  
Obrigatório: não  
Você pode fornecer arquivos que deseja exportar como artefatos de saída para a ação.  
O formato suportado para arquivos é o mesmo dos padrões de CodeBuild arquivo. Por exemplo, insira `**/` para todos os arquivos. Para obter mais informações, consulte a [referência da especificação de compilação CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.artifacts.files) no *Guia CodeBuild do usuário*.  

![\[A página Editar ação para um novo pipeline com a ação Commands\]](http://docs.aws.amazon.com/pt_br/codepipeline/latest/userguide/images/commands-edit-screen.png)


**VpcId**  
Obrigatório: não  
O ID da VPC dos recursos.

**Sub-redes**  
Obrigatório: não  
As sub-redes da VPC. Este campo é necessário quando os comandos precisam se conectar a recursos em uma VPC.

**SecurityGroupIds**  
Obrigatório: não  
Os grupos de segurança da VPC. Este campo é necessário quando os comandos precisam se conectar a recursos em uma VPC.

Este é um exemplo JSON da ação com campos de configuração mostrados para ambiente e tipo de computação, além da variável do ambiente de exemplo.

```
 {
            "name": "Commands1",
            "actionTypeId": {
              "category": "Compute",
              "owner": "AWS",
              "provider": "Commands",
              "version": "1"
            },
            "inputArtifacts": [
              {
                "name": "SourceArtifact"
              }
            ],
            "commands": [
              "ls",
              "echo hello",
              "echo $BEDROCK_TOKEN",
            ],
            "configuration": {
              "EnvironmentType": "LINUX_CONTAINER",
              "ComputeType": "BUILD_GENERAL1_MEDIUM"
            },
            "environmentVariables": [
              {
                "name": "BEDROCK_TOKEN",
                "value": "apiTokens:bedrockToken",
                "type": "SECRETS_MANAGER"
              }
            ],
            "runOrder": 1
          }
```

## Input artifacts (Artefatos de entrada)
<a name="action-reference-Commands-input"></a>
+ **Número de artefatos:** `1 to 10`

## Artefatos de saída
<a name="action-reference-Commands-output"></a>
+ **Número de artefatos:** `0 to 1` 

## Variáveis de ambiente
<a name="action-reference-Commands-envvars"></a>

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

**Valor**  
O valor do par chave-valor, como `apiTokens:bedrockToken`. O valor pode ser parametrizado com variáveis de saída a partir de ações ou variáveis do pipeline.  
Ao usar o `SECRETS_MANAGER` tipo, esse valor deve ser o nome de um segredo que você já armazenou no AWS Secrets Manager.

**Tipo**  
Especifica o tipo de uso do valor da variável de ambiente. O valor pode ser `PLAINTEXT` ou `SECRETS_MANAGER`. Se o valor for `SECRETS_MANAGER`, informe a referência do Secrets no valor `EnvironmentVariable`. Se não especificado, assumirá como padrão `PLAINTEXT`.  
Nós desencorajamos fortemente o uso de variáveis *de ambiente de texto simples* para armazenar valores confidenciais, especialmente credenciais. AWS Quando você usa o CodeBuild console ou AWS CLI, as variáveis de ambiente *de texto* simples são exibidas em texto sem formatação. Para valores confidenciais, recomendamos usar o tipo `SECRETS_MANAGER`.

**nota**  
Ao inserir o `name``value`, e `type` para sua configuração de variáveis de ambiente, especialmente se a variável de ambiente contiver a sintaxe da variável de CodePipeline saída, não exceda o limite de 1000 caracteres para o campo de valor da configuração. Um erro de validação será retornado quando esse limite for excedido.

Para ver um exemplo de declaração de ação mostrando uma variável de ambiente, consulte [Parâmetros de configuração](#action-reference-Commands-config).

**nota**  
O tipo `SECRETS_MANAGER` é compatível somente com a ação Comandos.
Os segredos referenciados na ação Comandos serão redigidos nos registros de compilação, semelhantes aos. CodeBuild Porém, os usuários de pipeline que tiverem acesso **Editar** ao pipeline ainda poderão acessar esses valores secretos modificando os comandos.
Para usar o SecretsManager, você deve adicionar as seguintes permissões à sua função de serviço de pipeline:  

  ```
  {
              "Effect": "Allow",
              "Action": [
                  "secretsmanager:GetSecretValue"
              ],
              "Resource": [
                  "SECRET_ARN"
              ]
          }
  ```

## Permissões do perfil de serviço: ação Comandos
<a name="edit-role-Commands"></a>

Para suporte a Comandos, adicione o seguinte à declaração da política:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:iam::*:role/Service*",
                "arn:aws:iam::*:role/Service*"
            ]
        }
    ]
}
```

------

## Declaração de ação (exemplo)
<a name="action-reference-Commands-example"></a>

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

```
name: Commands_action
actionTypeId:
  category: Compute
  owner: AWS
  provider: Commands
  version: '1'
runOrder: 1
configuration: {}
commands:
- ls
- echo hello
- 'echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}'
outputArtifacts:
- name: BuildArtifact
  files:
  - **/
inputArtifacts:
- name: SourceArtifact
outputVariables:
- AWS_DEFAULT_REGION
region: us-east-1
namespace: compute
```

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

```
{
    "name": "Commands_action",
    "actionTypeId": {
        "category": "Compute",
        "owner": "AWS",
        "provider": "Commands",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {},
    "commands": [
        "ls",
        "echo hello",
        "echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}"
    ],
    "outputArtifacts": [
        {
            "name": "BuildArtifact",
            "files": [
                "**/"
            ]
        }
    ],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "outputVariables": [
        "AWS_DEFAULT_REGION"
    ],
    "region": "us-east-1",
    "namespace": "compute"
}
```

------

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

Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.
+ [Tutorial: Criar um pipeline que executa comandos com computação (tipo V2)](tutorials-commands.md): este tutorial fornece um exemplo de pipeline com a ação Commands.