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 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 e OutputArtifact 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 está disponível somente para pipelines do tipo V2.
Tópicos
Considerações para a ação Commands
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 sua 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 emAdicionar permissões à função de serviço do CodePipeline.
-
A permissão necessária para visualizar logs no console está detalhada em Permissões necessárias para visualizar registros computacionais no console CodePipeline .
-
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
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 CodePipeline .
Tipo de ação
-
Categoria:
Compute
-
Proprietário:
AWS
-
Fornecedor:
Commands
-
Versão:
1
Parâmetros de configuração
- 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.nota
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.
Importante
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.
- EnvironmentType
-
Obrigatório: Não
A imagem do sistema operacional para o ambiente de compilação que suporta a ação Comandos. Os valores a seguir são válidos para ambientes de construção:
-
LINUX_CONTAINER
-
WINDOWS_SERVER_2022_CONTAINER
A seleção de então EnvironmentTypepermitirá o tipo de computação desse sistema operacional no ComputeTypecampo. 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 no Guia do CodeBuild usuário.
nota
Se não for especificado, a computação usa como padrão o seguinte para o ambiente de compilação:
-
Tipo de computação: GENERAL1 BUILD_ _SMALL
-
Tipo de ambiente: LINUX_CONTAINER
-
- 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, observe que as opções disponíveis podem variar de acordo com o sistema operacional.
-
CONSTRUIR_ _PEQUENO GENERAL1
-
BUILD_ GENERAL1 _MEDIUM
-
CONSTRUÇÃO_ GENERAL1 _GRANDE
Importante
Alguns tipos de computação não são compatíveis com determinados tipos de ambiente. Por exemplo, WINDOWS_SERVER_2022_CONTAINER não é compatível com BUILD_ _SMALL. GENERAL1 O uso de combinações incompatíveis faz com que a ação falhe e gere um erro de tempo de execução.
-
- 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 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 no Guia CodeBuild do usuário. - VpcId
-
Obrigatório: Não
O ID da VPC para seus recursos.
- Sub-redes
-
Obrigatório: Não
As sub-redes da VPC. Esse campo é necessário quando seus comandos precisam se conectar a recursos em uma VPC.
- SecurityGroupIds
-
Obrigatório: Não
Os grupos de segurança da VPC. Esse campo é necessário quando seus comandos precisam se conectar a recursos em uma VPC.
Veja a seguir um exemplo JSON da ação com campos de configuração mostrados para ambiente e tipo de computação, junto com um exemplo de variável de ambiente.
{ "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)
-
Número de artefatos:
1 to 10
Artefatos de saída
-
Número de artefatos:
0 to 1
Variáveis de ambiente
- Chave
-
A chave em um par de variáveis de ambiente chave-valor, como.
BEDROCK_TOKEN
- Valor
-
O valor do par de valores-chave, como.
apiTokens:bedrockToken
O valor pode ser parametrizado com variáveis de saída de ações do pipeline 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
ouSECRETS_MANAGER
. Se o valor forSECRETS_MANAGER
, forneça a referência Secrets noEnvironmentVariable
valor. Se não especificado, assumirá como padrãoPLAINTEXT
.nota
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, consulteParâmetros de configuração.
nota
-
O
SECRETS_MANAGER
tipo só é compatível com a ação Comandos. -
Os segredos referenciados na ação Comandos serão redigidos nos registros de compilação, semelhantes aos. CodeBuild Mas os usuários do pipeline que têm acesso de edição ao pipeline ainda podem potencialmente 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 da função de serviço: ação de comandos
Para suporte a comandos, adicione o seguinte à sua declaração de política:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:{{region}}:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}", "arn:aws:logs:{{region}}:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:log-stream:*" ] } ] }
Declaração de ação (exemplo)
Consulte também
Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.
-
Tutorial: crie um pipeline que execute comandos com computação (tipo V2): este tutorial fornece um exemplo de pipeline com a ação Commands.