View a markdown version of this page

Referencia de la acción de Comandos - AWS CodePipeline

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Referencia de la acción de Comandos

La acción de Comandos permite ejecutar comandos del intérprete de comandos en una instancia de computación virtual. Al ejecutar la acción, los comandos especificados en la configuración de la acción se ejecutan en un contenedor independiente. Todos los artefactos que se especifican como artefactos de entrada para una CodeBuild acción están disponibles en el contenedor en el que se ejecutan los comandos. Esta acción permite especificar comandos sin tener que crear primero un CodeBuild proyecto. Para obtener más información consulte ActionDeclaration y OutputArtifact en la Referencia de la API de AWS CodePipeline .

importante

Esta acción usa la CodeBuild computación CodePipeline administrada para ejecutar comandos en un entorno de compilación. Si ejecuta la acción de Comandos, se le cobrarán cargos por separado en AWS CodeBuild.

nota

La acción de implementación de comandos solo está disponible para canalizaciones de tipo V2.

Consideraciones sobre la acción de Comandos

Las siguientes consideraciones se aplican a la acción de Comandos.

  • La acción de comando usa CodeBuild recursos similares a los de la CodeBuild acción, al tiempo que permite los comandos del entorno shell en una instancia de procesamiento virtual sin necesidad de asociar o crear un proyecto de compilación.

    nota

    Si ejecuta la acción de Comandos, se le cobrarán cargos por separado en AWS CodeBuild.

  • Como la acción Comandos CodePipeline usa CodeBuild recursos, las compilaciones que ejecute la acción se atribuirán a los límites de compilación de tu cuenta en CodeBuild. Las compilaciones ejecutadas mediante la acción de Comandos se tendrán en cuenta para los límites de compilación simultánea configurados para esa cuenta.

  • El tiempo de espera para las compilaciones con la acción Comandos es de 55 minutos, según las CodeBuild compilaciones.

  • La instancia de procesamiento usa un entorno de compilación aislado en CodeBuild.

    nota

    Debido a que el entorno de compilación aislado se usa a nivel de cuenta, es posible que una instancia se reutilice para otra ejecución de canalización.

  • Se admiten todos los formatos, excepto los formatos multilínea. Debe utilizar el formato de una sola línea al introducir comandos.

  • La acción de comandos es compatible con las acciones en varias cuentas. Para agregar una acción de comandos en varias cuentas, agregue actionRoleArn en su cuenta de destino en la declaración de la acción.

  • Para esta acción, CodePipeline asumirá la función de servicio de canalización y la usará para permitir el acceso a los recursos en tiempo de ejecución. Se recomienda configurar el rol de servicio para que los permisos se limiten al nivel de acción.

  • Los permisos agregados a la función CodePipeline de servicio se detallan enAñade permisos a la función de CodePipeline servicio.

  • El permiso necesario para ver los registros en la consola se detalla en Los permisos necesarios para ver los registros de procesamiento en la consola.

  • A diferencia de otras acciones CodePipeline, en la configuración de la acción no se configuran los campos; los campos de configuración de la acción se establecen fuera de la configuración de la acción.

Permisos para las políticas de roles de servicio

Cuando CodePipeline ejecuta la acción, CodePipeline crea un grupo de registros con el nombre de la canalización de la siguiente manera. Esto permite reducir los permisos para registrar los recursos mediante el nombre de la canalización.

/aws/codepipeline/MyPipelineName

Si utiliza un rol de servicio existente, para utilizar la acción de Comandos tendrá que agregar los siguientes permisos para el rol de servicio.

  • registros: CreateLogGroup

  • registros: CreateLogStream

  • registros: PutLogEvents

En la declaración de las políticas de roles de servicio, limite los permisos al nivel de la canalización como se muestra en el siguiente ejemplo.

{ "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 ver los registros en la consola mediante la página del cuadro de diálogo de detalles de la acción, se debe agregar el permiso para ver los registros al rol de la consola. Para obtener más información, consulte el ejemplo de política de permisos para consolas en Los permisos necesarios para ver los registros de procesamiento en la consola.

Tipo de acción

  • Categoría: Compute

  • Propietario: AWS

  • Proveedor: Commands

  • Versión: 1

Parámetros de configuración

Comandos

Obligatorio: sí

Puede proporcionar comandos del intérprete de comandos para que se ejecute la acción Commands. En la consola, los comandos se introducen en líneas separadas. En la CLI, los comandos se introducen como cadenas independientes.

nota

Multi-line los formatos no son compatibles y generarán un mensaje de error. Single-line se debe usar el formato para introducir comandos en el campo Comandos.

importante

Los ComputeType valores EnvironmentType y coinciden con los de CodeBuild. Admitimos un subconjunto de los tipos disponibles. Para obtener más información, consulte Tipos de computación de entorno de compilación.

EnvironmentType

Obligatorio: no

La imagen del sistema operativo del entorno de compilación que admite la acción de comandos. Estos son los valores válidos para los entornos de compilación:

  • LINUX_CONTAINER

  • WINDOWS_SERVER_2022_CONTAINER

La selección de EnvironmentType permitirá entonces incluir en el ComputeType campo el tipo de cálculo para ese sistema operativo. Para obtener más información sobre los tipos de CodeBuild cómputos disponibles para esta acción, consulta la referencia sobre los modos y tipos de cómputos del entorno de compilación en la Guía del CodeBuild usuario.

nota

Si no se especifica, la computación utilizará de forma predeterminada lo siguiente para el entorno de compilación:

  • Tipo de computación: BUILD_GENERAL1_SMALL

  • Tipo de entorno: LINUX_CONTAINER

ComputeType

Obligatorio: no

En función de la selección EnvironmentType, se puede proporcionar el tipo de procesamiento. A continuación, se muestran los valores disponibles para la computación, pero tenga en cuenta que pueden variar según el sistema operativo.

  • BUILD_GENERAL1_SMALL

  • BUILD_GENERAL1_MEDIUM

  • BUILD_GENERAL1_LARGE

importante

Algunos tipos de computación no son compatibles con ciertos tipos de entornos. Por ejemplo, WINDOWS_SERVER_2022_CONTAINER no es compatible con BUILD_GENERAL1_SMALL. El uso de combinaciones incompatibles hará que la acción falle y generará un error de tiempo de ejecución.

outputVariables

Obligatorio: no

Especifique los nombres de las variables del entorno que desee exportar. Para obtener una referencia de las variables de CodeBuild entorno, consulte las variables de entorno en entornos de construcción en la Guía del CodeBuild usuario.

Archivos

Obligatorio: no

Puede proporcionar los archivos que desee exportar como artefactos de salida para la acción.

El formato admitido para los archivos es el mismo que para los patrones de CodeBuild archivos. Por ejemplo, introduzca **/ para todos los archivos. Para obtener más información, consulte la referencia sobre las especificaciones de compilación CodeBuild en la Guía del CodeBuild usuario.

La página Editar acción para una nueva canalización con la acción de Comandos
VpcId

Obligatorio: no

El ID de VPC de sus recursos.

Subredes

Obligatorio: no

Las subredes de VPC. Este campo es necesario cuando los comandos deben conectarse a los recursos de una VPC.

SecurityGroupIds

Obligatorio: no

Los grupos de seguridad de la VPC. Este campo es necesario cuando los comandos deben conectarse a los recursos de una VPC.

A continuación, se muestra un ejemplo de JSON de la acción en el que se muestran los campos de configuración para el entorno y el tipo de procesamiento, junto con un ejemplo de variable de entorno.

{ "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 }

Artefactos de entrada

  • Número de artefactos: 1 to 10

Artefactos de salida

  • Número de artefactos: 0 to 1

Variables de entorno

Key

La clave de un par de variables de entorno de clave-valor, como BEDROCK_TOKEN.

Valor

El valor del par clave-valor, como apiTokens:bedrockToken. El valor se puede parametrizar con variables de salida de acciones o variables de canalización.

Al usar el SECRETS_MANAGER tipo, este valor debe ser el nombre de un secreto que ya hayas almacenado en AWS Secrets Manager.

Tipo

Especifica el tipo de uso del valor de la variable de entorno. El valor puede ser PLAINTEXT o SECRETS_MANAGER. Si el valor es SECRETS_MANAGER, indique la referencia de Secrets en el valor EnvironmentVariable. Si no se especifica, toma el valor predeterminado PLAINTEXT.

nota

No recomendamos encarecidamente el uso de variables de entorno de texto simple para almacenar valores confidenciales, especialmente AWS credenciales. Al usar la CodeBuild consola o AWS CLI, las variables de entorno en texto plano se muestran en texto sin formato. Para valores confidenciales, se recomienda utilizar el tipo SECRETS_MANAGERen su lugar.

nota

Al introducir y type para la name configuración de las variables de entorno, especialmente si la variable de entorno contiene la sintaxis de las variables de CodePipeline salida, no supere el límite de 1000 caracteres para el campo de valores de la configuración. value Cuando se supera este límite, se devuelve un error de validación.

Para ver un ejemplo de declaración de acción donde se muestre una variable de entorno, consulte Parámetros de configuración.

nota
  • Este tipo SECRETS_MANAGER solo se admite para la acción de comandos.

  • Los secretos a los que se hace referencia en la acción Comandos se redactarán en los registros de compilación de forma similar a. CodeBuild Sin embargo, los usuarios de la canalización que tengan acceso de edición en la canalización podrán seguir accediendo a estos valores secretos modificando los comandos.

  • Para utilizarla SecretsManager, debes añadir los siguientes permisos a tu función de servicio de canalización:

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

Permisos del rol de servicio: acción de Comandos

Para admitir la acción de Comandos, agregue lo siguiente a la declaración de la 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*" ] } ] }

Declaración de acciones (ejemplo)

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" }

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.