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 dentro del contenedor que ejecuta los comandos. Esta acción permite especificar comandos sin necesidad de 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 utiliza la CodeBuild computación CodePipeline gestionada 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 Comandos solo está disponible para canalizaciones de tipo V2.
Temas
Consideraciones sobre la acción de Comandos
Las siguientes consideraciones se aplican a la acción de Comandos.
-
La acción de comandos usa CodeBuild recursos similares a los de la CodeBuild acción y, al mismo tiempo, permite ejecutar comandos de entorno de shell en una instancia de cómputo 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 utiliza CodeBuild recursos, las compilaciones ejecutadas por 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 de comandos es de 55 minutos, según las CodeBuild compilaciones.
-
La instancia de procesamiento utiliza 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 entre cuentas. Para añadir una acción de comandos multicuenta, añádela
actionRoleArn
desde tu cuenta de destino en la declaración de acción. -
Para esta acción, CodePipeline asumirá la función de servicio de canalización y la 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 a la función CodePipeline de servicio se detallan enAgregar 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 procesamiento en la CodePipeline consola.
-
A diferencia de otras acciones en 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 registros con el nombre de la canalización, tal como se indica a continuación. 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 Permisos necesarios para ver los registros de procesamiento en la CodePipeline 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
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.
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. Los siguientes son valores válidos para los entornos de compilación:
-
LINUX_CONTAINER
-
WINDOWS_SERVER_2022_CONTAINER
La selección de EnvironmentTypepermitirá entonces incluir en el campo el tipo de cálculo para ese sistema operativo. ComputeType Para obtener más información sobre los tipos de CodeBuild procesamiento disponibles para esta acción, consulte la referencia sobre los tipos y modos de procesamiento del entorno de compilación en la Guía del CodeBuild usuario.
nota
Si no se especifica, el proceso predeterminado es lo siguiente para el entorno de compilación:
-
Tipo de cómputo: BUILD_ _SMALL GENERAL1
-
Tipo de entorno: LINUX_CONTAINER
-
- ComputeType
-
Obligatorio: no
En función de la selección EnvironmentType, se puede proporcionar el tipo de procesamiento. Los siguientes son los valores disponibles para el procesamiento; sin embargo, tenga en cuenta que las opciones disponibles pueden variar según el sistema operativo.
-
BUILD_ _SMALL GENERAL1
-
BUILD_ GENERAL1 _MEDIUM
-
CONSTRUIR_ GENERAL1 _LARGE
importante
Algunos tipos de cómputo no son compatibles con ciertos tipos de entornos. Por ejemplo, WINDOWS_SERVER_2022_CONTAINER no es compatible con BUILD_ _SMALL. GENERAL1 El uso de combinaciones incompatibles provoca un error en la acción y genera 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 sobre las variables de CodeBuild entorno, consulte Variables de entorno en entornos de compilació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 de especificaciones de compilación CodeBuild en la Guía del CodeBuild usuario. - VpcId
-
Obligatorio: no
El ID de VPC de sus recursos.
- Subredes
-
Obligatorio: no
Las subredes de la VPC. Este campo es necesario cuando los comandos necesitan conectarse a los recursos de una VPC.
- SecurityGroupIds
-
Obligatorio: no
Los grupos de seguridad de la VPC. Este campo es necesario cuando los comandos necesitan conectarse a los recursos de una VPC.
El siguiente es un ejemplo en JSON de la acción con campos de configuración que se muestran 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
- Clave
-
La clave de un par de variables de entorno clave-valor, como.
BEDROCK_TOKEN
- Valor
-
El valor del par clave-valor, por ejemplo.
apiTokens:bedrockToken
El valor se puede parametrizar con variables de salida de acciones de canalización o variables de canalización.Cuando utilice el
SECRETS_MANAGER
tipo, este valor debe ser el nombre de un secreto que ya haya almacenado en AWS Secrets Manager. - Tipo
-
Especifica el tipo de uso del valor de la variable de entorno. El valor puede ser
PLAINTEXT
oSECRETS_MANAGER
. Si el valor esSECRETS_MANAGER
, indique la referencia de secretos en elEnvironmentVariable
valor. Si no se especifica, toma el valor predeterminadoPLAINTEXT
.nota
Se desaconseja encarecidamente el uso de variables de entorno de texto simple para almacenar valores confidenciales, especialmente AWS las credenciales. Al utilizar la CodeBuild consola o AWS CLI, las variables de entorno de texto sin formato se muestran en texto sin formato. Para valores confidenciales, se recomienda utilizar el tipo
SECRETS_MANAGER
en su lugar.
nota
Al introducir name
value
, y type
para la configuración de las variables de entorno, especialmente si la variable de entorno contiene la sintaxis de la variable de CodePipeline salida, no supere el límite de 1000 caracteres del campo de valor de la configuración. Cuando se supera este límite, se devuelve un error de validación.
Para ver un ejemplo de declaración de acción que muestre una variable de entorno, consulte. Parámetros de configuración
nota
-
Este
SECRETS_MANAGER
tipo solo se admite para la acción Comandos. -
Los secretos a los que se hace referencia en la acción de comandos se redactarán en los registros de compilación de forma similar a CodeBuild. Sin embargo, los usuarios de la canalización que tienen acceso de edición a la canalización pueden seguir accediendo a estos valores secretos modificando los comandos.
-
Para utilizarlos SecretsManager, debes añadir los siguientes permisos a tu rol de servicio de canalización:
{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "
SECRET_ARN
" ] }
Permisos del rol de servicio: acción de comandos
Para obtener compatibilidad con los comandos, añada lo siguiente a su declaración 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:*" ] } ] }
Declaración de acciones (ejemplo)
Véase también
Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
-
Tutorial: Cree una canalización que ejecute comandos con compute (tipo V2): este tutorial proporciona un ejemplo de canalización con la acción de Comandos.