Referencia de la acción de Comandos - AWS CodePipeline

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 en una acción de CodeBuild están disponibles dentro del contenedor que ejecuta los comandos. Esta acción permite especificar comandos sin tener que crear en primer lugar un proyecto de CodeBuild. Para obtener más información, consulte ActionDeclaration y OutputArtifact en la Referencia de la API de AWS CodePipeline.

Consideraciones sobre la acción de Comandos

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

  • La acción de Comandos emplea recursos de CodeBuild de forma similar a la acción de CodeBuild, a la vez que permite ejecutar comandos del entorno del intérprete de comandos en una instancia de computación 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 de Comandos de CodePipeline utiliza recursos de CodeBuild, las compilaciones que ejecute dicha acción se atribuirán a los límites de compilación de su 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 de Comandos es de 55 minutos, según las compilaciones de CodeBuild.

  • La instancia de computación 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 no se admite para acciones entre cuentas o entre regiones.

  • Para esta acción, CodePipeline asumirá el rol de servicio de canalización y lo utilizará 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 al rol de servicio de CodePipeline se detallan en Añadir permisos al rol de servicio de CodePipeline.

  • El permiso necesario para ver los registros en la consola se detalla en Permisos necesarios para ver los registros de computación en la consola de CodePipeline.

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

Permisos para las políticas de roles de servicio

Cuando CodePipeline ejecuta la acción, CodePipeline crea un grupo de registro 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.

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs: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:*" }

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 Permisos necesarios para ver los registros de computación en la consola de CodePipeline.

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

Los formatos multilínea no son compatibles y generarán un mensaje de error. Se debe utilizar el formato de una sola línea para introducir comandos en el campo Comandos.

Los siguientes detalles proporcionan la computación predeterminada que se utiliza para la acción de Comandos. Para obtener más información, consulte Tipos y modos de computación del entorno de compilación en la Guía del usuario de CodeBuild.

  • Imagen de CodeBuild: aws/codebuild/amazonlinux2-x86_64-standard:5.0

  • Tipo de computación: Linux Small

  • Valor computeType del entorno: BUILD_GENERAL1_SMALL

  • Valor del tipo de entorno: LINUX_CONTAINER

outputVariables

Requerido: no

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

Archivos

Requerido: 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 archivo de CodeBuild. Por ejemplo, introduzca **/ para todos los archivos. Para obtener más información, consulte Referencia de especificaciones de compilación en CodeBuild en la Guía del usuario de CodeBuild.

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

Artefactos de entrada

  • Número de artefactos: 1 to 10

Artefactos de salida

  • Número de artefactos: 0 to 1

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.