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.
Compartir el cómputo entre las acciones
De forma predeterminada, las acciones de un flujo de trabajo se ejecutan en instancias independientes de una flota. Este comportamiento proporciona a las acciones aislamiento y previsibilidad en cuanto al estado de las entradas. El comportamiento predeterminado requiere una configuración explícita para compartir el contexto, como archivos y variables, entre las acciones.
El uso compartido de recursos informáticos es una capacidad que permite ejecutar todas las acciones de un flujo de trabajo en la misma instancia. El uso del cómputo compartido puede proporcionar tiempos de ejecución del flujo de trabajo más rápidos, ya que se dedica menos tiempo a aprovisionar instancias. También puedes compartir archivos (artefactos) entre acciones sin necesidad de configurar el flujo de trabajo adicional.
Cuando un flujo de trabajo se ejecuta mediante el uso compartido de recursos informáticos, se reserva una instancia de la flota predeterminada o especificada durante todas las acciones de ese flujo de trabajo. Cuando se completa la ejecución del flujo de trabajo, se libera la reserva de instancia.
Temas
Ejecutar varias acciones en el cómputo compartido
Puedes usar el Compute
atributo de la definición YAML en el nivel del flujo de trabajo para especificar las propiedades de las acciones para compartir la flota y el cómputo. También puede configurar las propiedades de procesamiento mediante el editor visual de CodeCatalyst. Para especificar una flota, establece el nombre de una flota existente, establece el tipo de cómputo en EC2 y activa el cómputo compartido.
nota
El uso compartido de recursos solo se admite si el tipo de procesamiento está configurado en EC2 y no es compatible con el sistema operativo Windows Server 2022. Para obtener más información sobre las flotas informáticas, los tipos de cómputo y las propiedades, consulte. Configuración del entorno de procesamiento y tiempo de ejecución: imágenes de Docker para un flujo de trabajo
nota
Si estás en el nivel gratuito y especificas la Linux.x86-64.2XLarge
flota Linux.x86-64.XLarge
o la flota manualmente en la definición de flujo de trabajo YAML, la acción seguirá ejecutándose en la flota predeterminada ()Linux.x86-64.Large
. Para obtener más información sobre la disponibilidad del procesamiento y los precios, consulta la tabla con las opciones de niveles
Cuando la función de compartir el procesamiento está activada, la carpeta que contiene la fuente del flujo de trabajo se copia automáticamente en todas las acciones. No es necesario configurar los artefactos de salida ni hacer referencia a ellos como artefactos de entrada en una definición de flujo de trabajo (archivo YAML). Como autor de un flujo de trabajo, debe configurar las variables de entorno mediante entradas y salidas, del mismo modo que lo haría sin utilizar el cómputo compartido. Si quieres compartir carpetas entre acciones ajenas a la fuente del flujo de trabajo, considera la posibilidad de almacenar archivos en caché. Para obtener más información, consulte Compartir datos entre acciones de un flujo de trabajo mediante artefactos y Almacenamiento en caché de archivos entre ejecuciones de flujos de trabajo.
El repositorio de origen en el que reside el archivo de definición del flujo de trabajo se identifica mediante la etiquetaWorkflowSource
. Al utilizar el procesamiento compartido, la fuente del flujo de trabajo se descarga en la primera acción que hace referencia a ella y queda automáticamente disponible para que la utilicen las siguientes acciones del flujo de trabajo que se ejecute. Cualquier cambio realizado en la carpeta que contiene la fuente del flujo de trabajo mediante una acción, como añadir, modificar o eliminar archivos, también se verá en las acciones subsiguientes del flujo de trabajo. Puedes hacer referencia a los archivos que se encuentran en la carpeta de origen del flujo de trabajo en cualquiera de tus acciones de flujo de trabajo, del mismo modo que lo harías sin utilizar la compartición de recursos informáticos. Para obtener más información, consulte Hacer referencia a archivos en un repositorio de fuentes.
nota
Los flujos de trabajo de cómputo compartido deben especificar una secuencia estricta de acciones, por lo que no se pueden configurar acciones paralelas. Si bien los artefactos de salida se pueden configurar en cualquier acción de la secuencia, no se admiten los artefactos de entrada.
Consideraciones sobre el uso compartido de la computación
Puede ejecutar flujos de trabajo con procesamiento compartido para acelerar las ejecuciones de los flujos de trabajo y compartir el contexto entre las acciones de un flujo de trabajo que utilizan la misma instancia. Ten en cuenta lo siguiente para determinar si el uso del cómputo compartido es adecuado para tu escenario:
Uso compartido de computación | Sin compartir el cómputo | |
---|---|---|
Tipo de computación |
Amazon EC2 |
Amazon EC2, AWS Lambda |
Aprovisionamiento de instancias |
Las acciones se ejecutan en la misma instancia |
Las acciones se ejecutan en instancias distintas |
Sistema operativo |
Amazon Linux 2 |
Amazon Linux 2, Windows Server 2022 (solo acción de compilación) |
Archivos de referencia |
|
|
Estructura de flujo de trabajo |
Las acciones solo se pueden ejecutar de forma secuencial |
Las acciones pueden ejecutarse en paralelo |
Acceder a los datos en todas las acciones del flujo |
Acceder a la fuente de flujo de trabajo en caché () |
Acceda a las salidas de artefactos compartidos (requiere una configuración adicional) |
Activar el uso compartido del cómputo
Usa las siguientes instrucciones para activar la compartición de cómputo en un flujo de trabajo.
Ejemplos
Ejemplo: Amazon S3 Publish
Los siguientes ejemplos de flujo de trabajo muestran cómo realizar la acción de publicación en Amazon S3 de dos maneras: primero mediante artefactos de entrada y, a continuación, mediante el uso compartido de cómputo. Con el cómputo compartido, los artefactos de entrada no son necesarios, ya que se puede acceder a lo almacenado en cachéWorkflowSource
. Además, el artefacto de salida de la acción Construir ya no es necesario. La acción de publicación de S3 está configurada para utilizar la DependsOn
propiedad explícita para mantener las acciones secuenciales; la acción de creación debe ejecutarse correctamente para que la acción de publicación de S3 se ejecute.
Sin compartir el cómputo, es necesario usar artefactos de entrada y compartir los resultados con las siguientes acciones:
Name: S3PublishUsingInputArtifact SchemaVersion: "1.0" Actions: Build: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ArtifactToPublish Files: [output.zip] Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: ./build.sh # Build script that generates output.zip PublishToS3: Identifier: aws/s3-publish@v1 Inputs: Artifacts: - ArtifactToPublish Environment: Connections: - Role: codecatalyst-deployment-role Name: dev-deployment-role Name: dev-connection Configuration: SourcePath: output.zip DestinationBucketName: dev-bucket
-
Si utilizas la compartición de recursos con la configuración
SharedInstance
enTRUE
, puedes ejecutar varias acciones en la misma instancia y compartir artefactos especificando una única fuente de flujo de trabajo. Los artefactos de entrada no son obligatorios y no se pueden especificar:Name: S3PublishUsingComputeSharing SchemaVersion: "1.0" Compute: Type: EC2 Fleet: dev-fleet SharedInstance: TRUE Actions: Build: Identifier: aws/build@v1 Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: ./build.sh # Build script that generates output.zip PublishToS3: Identifier: aws/s3-publish@v1 DependsOn: - Build Environment: Connections: - Role: codecatalyst-deployment-role Name: dev-deployment-role Name: dev-connection Configuration: SourcePath: output.zip DestinationBucketName: dev-bucket