

Amazon ya no CodeCatalyst está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cómo migrar desde CodeCatalyst](migration.md).

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.

# Cómo compartir artefactos y archivos entre acciones
<a name="workflows-working-artifacts"></a>

Un *artefacto* es el resultado de una acción de flujo de trabajo y, por lo general, consiste en una carpeta o un archivo de archivos. Los artefactos son importantes porque permiten compartir archivos e información entre acciones.

Por ejemplo, puede que tenga una acción de creación que *genere* un archivo `sam-template.yml`, pero que quiera una acción de implementación para *usarlo*. En este escenario, utilizaría un artefacto para permitir que la acción de creación comparta el archivo `sam-template.yml` con la acción de implementación. El código podría tener un aspecto similar al siguiente:

```
Actions:
  BuildAction:
    Identifier: aws/build@v1
    Steps:
      - Run: sam package --output-template-file sam-template.yml
    Outputs:
      Artifacts:
        - Name: MYARTIFACT
          Files:
            - sam-template.yml
  DeployAction:
    Identifier: aws/cfn-deploy@v1  
    Inputs:
      Artifacts:
        - MYARTIFACT
    Configuration:
      template: sam-template.yml
```

En el código anterior, la acción de creación (`BuildAction`) genera un archivo `sam-template.yml` y después lo añade a un artefacto de salida denominado `MYARTIFACT`. Una acción de implementación posterior (`DeployAction`) especifica `MYARTIFACT` como entrada, lo que le da acceso al archivo `sam-template.yml`.

**Topics**
+ [¿Puedo compartir artefactos sin especificarlos como salidas y entradas?](#workflows-working-artifacts-share)
+ [¿Puedo compartir artefactos entre flujos de trabajo?](#workflows-working-artifacts-share-wf)
+ [Ejemplos de artefactos](workflows-working-artifacts-ex.md)
+ [Definición de un artefacto de salida](workflows-working-artifacts-output.md)
+ [Definición de un artefacto de entrada](workflows-working-artifacts-refer.md)
+ [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md)
+ [Descarga de artefactos](workflows-download-workflow-outputs.md)

## ¿Puedo compartir artefactos sin especificarlos como salidas y entradas?
<a name="workflows-working-artifacts-share"></a>

Sí, puede compartir artefactos entre acciones sin especificarlos en las secciones `Outputs` y `Inputs` del código de YAML de sus acciones. Para ello, debe activar el uso compartido de computación. Para obtener más información sobre el uso compartido de computación y cómo especificar los artefactos cuando está activado, consulte [Uso compartido de recursos de computación entre acciones](compute-sharing.md). 

**nota**  
Si bien la característica de computación compartida le permite simplificar el código de YAML del flujo de trabajo al eliminar la necesidad de usar las secciones `Outputs` y `Inputs`, esta característica tiene limitaciones que debe tener en cuenta antes de activarla. Para obtener información acerca de esas limitaciones, consulte [Consideraciones sobre el uso compartido de recursos de computación](compute-sharing.md#compare-compute-sharing).

## ¿Puedo compartir artefactos entre flujos de trabajo?
<a name="workflows-working-artifacts-share-wf"></a>

No, no puede compartir artefactos entre diferentes flujos de trabajo; sin embargo, puede compartir artefactos entre acciones dentro del mismo flujo de trabajo.

# Ejemplos de artefactos
<a name="workflows-working-artifacts-ex"></a>

Los siguientes ejemplos muestran cómo generar, introducir y hacer referencia a los artefactos en el archivo de definición del CodeCatalyst flujo de trabajo de Amazon.

**Topics**
+ [Ejemplo: Generación de un artefacto](#workflows-working-artifacts-ex-basic)
+ [Ejemplo: Introducción de un artefacto generado por otra acción](#workflows-working-artifacts-ex-ref)
+ [Ejemplo: Referencia a archivos en varios artefactos](#workflows-working-artifacts-ex-ref-file)
+ [Ejemplo: Referencia a un archivo en un único artefacto](#workflows-working-artifacts-ex-ref-file-one)
+ [Ejemplo: hacer referencia a un archivo en un artefacto cuando hay un WorkflowSource](#workflows-working-artifacts-ex-ref-file-wf-source)
+ [Ejemplo: Referencia a un archivo en un artefacto cuando hay un grupo de acciones](#workflows-working-artifacts-ex-groups)

## Ejemplo: Generación de un artefacto
<a name="workflows-working-artifacts-ex-basic"></a>

En el siguiente ejemplo se muestra cómo generar un artefacto que incluye dos archivos .jar.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Outputs:
      Artifacts:
        - Name: ARTIFACT1
          Files:
            - build-output/file1.jar
            - build-output/file2.jar
```

## Ejemplo: Introducción de un artefacto generado por otra acción
<a name="workflows-working-artifacts-ex-ref"></a>

En el siguiente ejemplo, se muestra cómo generar un artefacto llamado `ARTIFACT4` en `BuildActionA` e introducirlo en `BuildActionB`.

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ARTIFACT4
          Files:
            - build-output/file1.jar
            - build-output/file2.jar
  BuildActionB:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ARTIFACT4
    Configuration:
```

## Ejemplo: Referencia a archivos en varios artefactos
<a name="workflows-working-artifacts-ex-ref-file"></a>

El siguiente ejemplo muestra cómo generar dos artefactos denominados `ART5` y `ART6` en `BuildActionC` y, a continuación, hacer referencia a dos archivos denominados `file5.txt` (en el artefacto `ART5`) y `file6.txt` (en el artefacto `ART6`) en `BuildActionD` (bajo `Steps`).

**nota**  
Para obtener más información sobre la referencia a archivos‎, consulte ‎[Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

**nota**  
Aunque en el ejemplo se muestra el uso del prefijo `$CATALYST_SOURCE_DIR_ART5`, puede omitirlo. Esto se debe a que `ART5` es la *entrada principal*. Para obtener más información acerca de la entrada principal, consulte [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md). 

```
Actions:
  BuildActionC:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART5
          Files:
            - build-output/file5.txt
        - Name: ART6
          Files:
            - build-output/file6.txt
  BuildActionD:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ART5
        - ART6
    Configuration:
      Steps:
        - run: cd $CATALYST_SOURCE_DIR_ART5/build-output && cat file5.txt
        - run: cd $CATALYST_SOURCE_DIR_ART6/build-output && cat file6.txt
```

## Ejemplo: Referencia a un archivo en un único artefacto
<a name="workflows-working-artifacts-ex-ref-file-one"></a>

El siguiente ejemplo muestra cómo generar un artefacto denominado `ART7` en `BuildActionE` y después hacer referencia a `file7.txt` (en el artefacto `ART7`) en `BuildActionF` (bajo `Steps`).

Observe que la referencia no requiere el `$CATALYST_SOURCE_DIR_` *artifact-name* prefijo que aparece delante del `build-output` directorio como lo hacía antes. [Ejemplo: Referencia a archivos en varios artefactos](#workflows-working-artifacts-ex-ref-file) Esto se debe a que solo hay un elemento especificado en `Inputs`.

**nota**  
Para obtener más información sobre la referencia a archivos‎, consulte ‎[Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

```
Actions:
  BuildActionE:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART7
          Files:
            - build-output/file7.txt
  BuildActionF:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ART7
    Configuration:
      Steps:
        - run: cd build-output && cat file7.txt
```

## Ejemplo: hacer referencia a un archivo en un artefacto cuando hay un WorkflowSource
<a name="workflows-working-artifacts-ex-ref-file-wf-source"></a>

El siguiente ejemplo muestra cómo generar un artefacto denominado `ART8` en `BuildActionG` y después hacer referencia a `file8.txt` (en el artefacto `ART8`) en `BuildActionH` (bajo `Steps`).

Observe cómo la referencia requiere el `$CATALYST_SOURCE_DIR_` *artifact-name* prefijo, como ocurrió en. [Ejemplo: Referencia a archivos en varios artefactos](#workflows-working-artifacts-ex-ref-file) Esto se debe a que hay varios elementos especificados en `Inputs` (una fuente y un artefacto), por lo que necesitará el prefijo para indicar dónde buscar el archivo.

**nota**  
Para obtener más información sobre la referencia a archivos‎, consulte ‎[Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

```
Actions:
  BuildActionG:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART8
          Files:
            - build-output/file8.txt
  BuildActionH:
    Identifier: aws/build@v1  
    Inputs:
      Sources:
        - WorkflowSource
      Artifacts:
        - ART8
    Configuration:
      Steps:
        - run: cd $CATALYST_SOURCE_DIR_ART8/build-output && cat file8.txt
```

## Ejemplo: Referencia a un archivo en un artefacto cuando hay un grupo de acciones
<a name="workflows-working-artifacts-ex-groups"></a>

El siguiente ejemplo muestra cómo generar un artefacto denominado `ART9` en `ActionGroup1`, `ActionI`, y después hacer referencia a `file9.txt` (en el artefacto `ART9`) en `ActionJ`.

Para obtener más información sobre la referencia a archivos‎, consulte ‎[Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

```
Actions:
  ActionGroup1:
    Actions:
      ActionI:
        Identifier: aws/build@v1
        Outputs:
          Artifacts:
            - Name: ART9
              Files:
                - build-output/file9.yml
      ActionJ:
        Identifier: aws/cfn-deploy@v1 
        Inputs:
          Sources:
            - WorkflowSource
          Artifacts:
            - ART9
        Configuration:
          template: /artifacts/ActionGroup1@ActionJ/ART9/build-output/file9.yml
```

# Definición de un artefacto de salida
<a name="workflows-working-artifacts-output"></a>

Sigue las siguientes instrucciones para definir el artefacto que quieres que genere una CodeCatalyst acción de Amazon. Este artefacto estará disponible posteriormente para que lo utilicen otras acciones.

**nota**  
No todas las acciones son compatibles con artefactos de salida. Para determinar si su acción es compatible, siga las instrucciones del editor visual que aparecen a continuación y compruebe si la acción incluye un botón de **Artefactos de salida** en la pestaña **Salidas**. En caso afirmativo, los artefactos de salida son compatibles. 

------
#### [ Visual ]

**Definición de un artefacto de salida mediante el editor visual**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **Visual**.

1. En el diagrama del flujo de trabajo, elija la acción que producirá el artefacto.

1. Elija la pestaña **Salidas**.

1. En **Artefactos**, seleccione **Agregar el artefacto**.

1. Seleccione **Agregar el artefacto** e introduzca la información en los campos de la siguiente manera.

    **Nombre del artefacto de compilación** 

   Especifique el nombre de un artefacto generado por la acción. Los nombres de los artefactos deben ser únicos en un flujo de trabajo y están limitados a caracteres alfanuméricos (a-z, A-Z, 0-9) y guiones bajos (\$1). No se admiten espacios, guiones (-) ni otros caracteres especiales. No puede utilizar comillas para permitir espacios, guiones y otros caracteres especiales en los nombres de los artefactos de salida.

   Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).

    **Archivos producidos por compilación** 

   Especifique los archivos que se CodeCatalyst incluyen en el artefacto que genera la acción. Estos archivos los genera la acción del flujo de trabajo cuando se ejecuta y también están disponibles en el repositorio de código fuente. Las rutas de los archivos pueden residir en un repositorio de código fuente o en un artefacto de una acción anterior, y son relativas a la raíz del repositorio de código fuente o del artefacto. Puede utilizar patrones glob para especificar las rutas. Ejemplos:
   + Para especificar un único archivo que esté en la raíz de la ubicación de compilación o de la ubicación del repositorio de código fuente, utilice `my-file.jar`.
   + Para especificar un único archivo en un subdirectorio, use `directory/my-file.jar` o `directory/subdirectory/my-file.jar`.
   + Para especificar todos los archivos, utilice `"**/*"`. El patrón glob de `**` indica que debe coincidir con cualquier número de subdirectorios.
   + Para especificar todos los archivos y directorios de un directorio denominado `directory`, utilice `"directory/**/*"`. El patrón glob de `**` indica que debe coincidir con cualquier número de subdirectorios.
   + Para especificar todos los archivos de un directorio denominado `directory`, pero no ninguno de sus subdirectorios, utilice `"directory/*"`. 
**nota**  
Si la ruta del archivo incluye uno o más asteriscos (`*`) u otro carácter especial, escriba la ruta entre comillas dobles (`""`). Para obtener más información sobre los caracteres especiales, consulte [Pautas y convenciones de sintaxis](workflow-reference.md#workflow.terms.syntax.conv).

   Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).
**nota**  
Puede que tenga que añadir un prefijo a la ruta del archivo para indicar en qué artefacto u origen debe encontrarlo. Para obtener más información, consulte [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md) y [Referencia a archivos en un artefacto](workflows-working-artifacts-refer-files.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------
#### [ YAML ]

**Definición de un artefacto de salida mediante el editor de YAML**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **YAML**.

1. En una acción de flujo de trabajo, agregue código similar al siguiente:

   ```
   action-name:
     Outputs:
       Artifacts:
         - Name: artifact-name
           Files:
             - file-path-1
             - file-path-2
   ```

   Para obtener más ejemplos, consulte [Ejemplos de artefactos](workflows-working-artifacts-ex.md). Para obtener más información, consulte la [Definición de flujo de trabajo en YAML](workflow-reference.md) para su acción.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Definición de un artefacto de entrada
<a name="workflows-working-artifacts-refer"></a>

Si quieres usar un artefacto generado por otra CodeCatalyst acción de Amazon, debes especificarlo como entrada para la acción actual. Es posible que pueda especificar varios artefactos como entrada; depende de la acción. Para obtener más información, consulte la [Definición de flujo de trabajo en YAML](workflow-reference.md) para su acción.

**nota**  
No puede hacer referencia a artefactos de otros flujos de trabajo.

Siga estas instrucciones para especificar un artefacto de otra acción como entrada para la acción actual.

**Requisito previo**  
Antes de empezar, asegúrese de que ha generado el artefacto desde la otra acción. Para obtener más información, consulte [Definición de un artefacto de salida](workflows-working-artifacts-output.md). Al generar el artefacto, estará disponible para que lo usen otras acciones.

------
#### [ Visual ]

**Especificación de un artefacto como entrada a una acción (editor visual)**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **Visual**.

1. En el diagrama de flujo de trabajo, elija la acción en la que quiera especificar un artefacto como entrada.

1. Seleccione **Entradas**.

1. En **Artefactos (opcional)**, haga lo siguiente:

   Especifique los artefactos de acciones anteriores que desee proporcionar como entrada a esta acción. Estos artefactos ya deben estar definidos como artefactos de salida en acciones anteriores.

   Si no especifica ningún artefacto de entrada, debe especificar al menos un repositorio de código fuente en `action-name/Inputs/Sources`.

   Para obtener más información sobre los artefactos, incluidos ejemplos, consulte [Cómo compartir artefactos y archivos entre acciones](workflows-working-artifacts.md).
**nota**  
Si la lista desplegable **Artefactos: opcional** no está disponible (editor visual) o si se producen errores al validar el código de YAML (editor de YAML), es posible que la acción solo admita una entrada. En este caso, intente eliminar la entrada de código fuente.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------
#### [ YAML ]

**Especificación de un artefacto como entrada a una acción (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Seleccione **Editar**.

1. Elija **YAML**.

1. En la acción en la que desee especificar el artefacto como entrada, añada un código similar al siguiente:

   ```
   action-name:
     Inputs:
       Artifacts:
         - artifact-name
   ```

   Para obtener más ejemplos, consulte [Ejemplos de artefactos](workflows-working-artifacts-ex.md).

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Referencia a archivos en un artefacto
<a name="workflows-working-artifacts-refer-files"></a>

Si tienes un archivo que reside dentro de un artefacto y necesitas hacer referencia a este archivo en una de tus acciones de CodeCatalyst flujo de trabajo de Amazon, completa el siguiente procedimiento.

**nota**  
Véase también [Referencia a los archivos del repositorio de código fuente](workflows-sources-reference-files.md).

------
#### [ Visual ]

*No disponible. Seleccione YAML para ver las instrucciones de YAML.*

------
#### [ YAML ]

**Referencia a los archivos de un artefacto (editor de YAML)**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. Elija **Edit (Edición de)**.

1. Elija **YAML**.

1. En la acción en la que quiera hacer referencia a un archivo, agregue un código similar al siguiente:

   ```
   Actions:
     My-action:
       Inputs:
         Sources:
           - WorkflowSource
         Artifacts:
           - artifact-name  
       Configuration:
         template: artifact-path/path/to/file.yml
   ```

   En el código anterior, sustituya:
   + *artifact-name*con el nombre del artefacto.
   + *artifact-path*con un valor de la siguiente tabla.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/workflows-working-artifacts-refer-files.html)

   Para ver ejemplos, consulte [Ejemplos de artefactos](workflows-working-artifacts-ex.md).
**nota**  
Puedes omitir *artifact-path* y simplemente especificar la ruta del archivo relativa al directorio raíz del artefacto si:  
La acción en la que incluye la referencia solo incluye un elemento bajo `Inputs` (por ejemplo, incluye un artefacto de entrada y ningún origen).
El archivo al que quiere hacer referencia reside en la entrada principal. La *entrada principal* es el `WorkflowSource` o el primer artefacto de entrada de la lista, si no hay `WorkflowSource`.

1. (Opcional) Seleccione **Validar** para validar el código de YAML del flujo de trabajo antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un mensaje de confirmación y vuelva a seleccionar **Confirmar**.

------

# Descarga de artefactos
<a name="workflows-download-workflow-outputs"></a>

Puede descargar e inspeccionar los artefactos generados por las acciones del flujo de trabajo de Amazon CodeCatalyst para solucionar problemas. Hay dos tipos de artefactos que puede descargar:
+ **Artefactos de origen**: artefactos que contienen una instantánea del contenido del repositorio de código fuente tal y como estaba cuando se inició la ejecución.
+ **Artefactos de flujo de trabajo**: artefactos definidos en la propiedad `Outputs` del archivo de configuración del flujo de trabajo.

**Descarga de los artefactos generados por el flujo de trabajo**

1. Abra la consola de CodeCatalyst en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elija el proyecto.

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el nombre del flujo de trabajo. Puede filtrar por el nombre del repositorio de código fuente o la ramificación donde esté definido el flujo de trabajo, o bien por el nombre o el estado del flujo de trabajo.

1. En el nombre del flujo de trabajo, seleccione **Ejecuciones**.

1. En **Historial de ejecuciones**, en la columna **ID de ejecución**, seleccione una ejecución. Por ejemplo, `Run-95a4d`.

1. Bajo el nombre de la ejecución, seleccione **Artefactos**.

1. Junto a un artefacto, seleccione **Descargar**. Se descargará un archivo de almacenamiento. Su nombre de archivo consta de siete caracteres aleatorios.

1. Extraiga el archivo de almacenamiento con la utilidad de extracción de archivos que elija.