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.
Temas
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
actionRoleArnen 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.
- 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_MANAGERtipo, 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
PLAINTEXToSECRETS_MANAGER. Si el valor esSECRETS_MANAGER, indique la referencia de Secrets en el valorEnvironmentVariable. Si no se especifica, toma el valor predeterminadoPLAINTEXT.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_MANAGERsolo 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:
Declaración de acciones (ejemplo)
Véase también
Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
-
Tutorial: creación de una canalización que ejecute comandos mediante computación (tipo V2): este tutorial proporciona un ejemplo de canalización con la acción de Comandos.