

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.

# Crear un flujo de trabajo privado
<a name="create-private-workflow"></a>

Cree un flujo de trabajo mediante la HealthOmics consola, los comandos AWS CLI o uno de los AWS SDKs.

**nota**  
No incluya ninguna información de identificación personal (PII) en los nombres de los flujos de trabajo. Estos nombres están visibles en CloudWatch los registros.

Al crear un flujo de trabajo, HealthOmics asigna un identificador único universal (UUID) al flujo de trabajo. El UUID del flujo de trabajo es un identificador único global (GUID) que es único en todos los flujos de trabajo y versiones del flujo de trabajo. Para la procedencia de los datos, le recomendamos que utilice el UUID del flujo de trabajo para identificar los flujos de trabajo de forma exclusiva.

Si sus tareas de flujo de trabajo utilizan herramientas externas (ejecutables, bibliotecas o scripts), cree estas herramientas en una imagen contenedora. Dispone de las siguientes opciones para alojar la imagen del contenedor:
+ Aloje la imagen del contenedor en el registro privado del ECR. Requisitos previos para esta opción:
  + Cree un repositorio privado de ECR o elija uno existente.
  + Configure la política de recursos de ECR como se describe en. [Permisos de Amazon ECR](permissions-ecr.md)
  + Sube la imagen de tu contenedor al repositorio privado. 
+ Sincronice la imagen del contenedor con el contenido de un registro de terceros compatible. Requisitos previos para esta opción:
  + En el registro privado del ECR, configure una regla de extracción de memoria caché para cada registro ascendente. Para obtener más información, consulte [Mapeos de imágenes](workflows-ecr.md#ecr-pull-through-mapping-format).
  + Configure la política de recursos de ECR como se describe en. [Permisos de Amazon ECR](permissions-ecr.md)
  + Cree plantillas de creación de repositorios. La plantilla define la configuración para cuando Amazon ECR cree el repositorio privado para un registro ascendente.
  + Cree asignaciones de prefijos para reasignar las referencias de las imágenes del contenedor en la definición del flujo de trabajo a los espacios de nombres de la caché de ECR.

Al crear un flujo de trabajo, se proporciona una definición de flujo de trabajo que contiene información sobre el flujo de trabajo, las ejecuciones y las tareas. HealthOmics puede recuperar la definición del flujo de trabajo como un archivo.zip almacenado localmente o en un bucket de Amazon S3, o desde un repositorio compatible basado en Git. 

**Topics**
+ [Crear un flujo de trabajo mediante la consola](#console-create-workflows)
+ [Creación de un flujo de trabajo mediante la CLI](#api-create-workflows)
+ [Crear un flujo de trabajo mediante un SDK](#sdk-create-workflows)

## Crear un flujo de trabajo mediante la consola
<a name="console-create-workflows"></a>

**Pasos para crear un flujo de trabajo**

1. Abra la [consola de HealthOmics ](https://console.aws.amazon.com/omics/).

1.  Si es necesario, abra el panel de navegación izquierdo (≡). Elija **Flujos de trabajo privados**.

1. En la página **Flujos de trabajo privados**, selecciona **Crear flujo de trabajo**.

1. En la página **Definir flujo** de trabajo, proporciona la siguiente información:

   1. **Nombre del flujo** de trabajo: nombre distintivo de este flujo de trabajo. Recomendamos configurar los nombres de los flujos de trabajo para organizar las ejecuciones en la AWS HealthOmics consola y en CloudWatch los registros.

   1. **Descripción** (opcional): descripción de este flujo de trabajo.

1. En el panel **de definición del flujo** de trabajo, proporcione la siguiente información:

   1. **Idioma del flujo** de trabajo (opcional): seleccione el idioma de especificación del flujo de trabajo. De lo contrario, HealthOmics determina el idioma a partir de la definición del flujo de trabajo.

   1. Para **la fuente de definición de flujo** de trabajo, elija importar la carpeta de definición desde un repositorio basado en Git, una ubicación de Amazon S3 o desde una unidad local.

      1. Para **importar desde un servicio de repositorio**:
**nota**  
HealthOmics admite repositorios públicos y privados paraGitHub,GitLab, BitbucketGitHub self-managed,GitLab self-managed.

         1. Elija una **conexión** para conectar sus AWS recursos al repositorio externo. Para crear una conexión, consulte[Conéctese con repositorios de código externos](setting-up-new.md#setting-up-omics-repository).
**nota**  
Los clientes de la TLV región deben crear una conexión en la región IAD (us-east-1) para crear un flujo de trabajo. 

         1. En ID de **repositorio completo, introduce tu ID** de repositorio como nombre de usuario/nombre de repositorio. Comprueba que tienes acceso a los archivos de este repositorio.

         1. En **Referencia de origen** (opcional), introduce una referencia de origen del repositorio (rama, etiqueta o ID de confirmación). HealthOmics usa la rama predeterminada si no se especifica ninguna referencia a la fuente.

         1. En **Excluir patrones de archivos**, introduzca los patrones de archivo para excluir carpetas, archivos o extensiones específicos. Esto ayuda a administrar el tamaño de los datos al importar archivos del repositorio. Hay un máximo de 50 patrones y los patrones deben seguir la sintaxis del [patrón global](https://fossil-scm.org/home/doc/tip/www/globs.md). Por ejemplo: 

            1. `tests/`

            1. `*.jpeg`

            1. `large_data.zip`

      1. Para **seleccionar la carpeta de definiciones de S3**:

         1. Introduzca la ubicación de Amazon S3 que contiene la carpeta comprimida de definiciones de flujos de trabajo. El bucket de Amazon S3 debe estar en la misma región que el flujo de trabajo.

         1. Si su cuenta no es propietaria del depósito de Amazon S3, introduzca el ID de AWS cuenta del propietario del depósito en el ID de **cuenta del propietario del depósito de S3**. Esta información es necesaria para HealthOmics poder verificar la propiedad del bucket.

      1. Para **seleccionar la carpeta de definiciones de una fuente local**:

         1. Introduzca la ubicación de la unidad local de la carpeta comprimida de definiciones de flujo de trabajo.

   1. **Ruta principal del archivo de definición del flujo** de trabajo (opcional): introduzca la ruta del archivo desde la carpeta o el repositorio de definiciones de flujo de trabajo comprimido hasta el `main` archivo. Este parámetro no es necesario si solo hay un archivo en la carpeta de definición del flujo de trabajo o si el archivo principal se denomina «principal».

1. En el panel del **archivo README** (opcional), seleccione la **fuente del archivo README** y proporcione la siguiente información:
   + Para **Importar desde un servicio de repositorio**, en la **ruta del archivo README**, introduzca la ruta al archivo README del repositorio.
   + En **Seleccione un archivo de S3**, en el **archivo README de S3**, introduzca el URI de Amazon S3 para el archivo README.
   + En **Seleccionar un archivo de una fuente local**: en **README (opcional)**, **elija Elegir archivo para seleccionar el archivo** marcado (.md) que desea cargar.

1. En el panel de **configuración del almacenamiento de ejecución predeterminado**, proporciona el tipo de almacenamiento de ejecución predeterminado y la capacidad para las ejecuciones que utilizan este flujo de trabajo:

   1. **Tipo de almacenamiento de ejecución**: elija si desea utilizar el almacenamiento estático o dinámico como predeterminado para el almacenamiento de ejecución temporal. El valor predeterminado es el almacenamiento estático.

   1. **Capacidad de almacenamiento de ejecución** (opcional): para el tipo de almacenamiento de ejecución estático, puede introducir la cantidad predeterminada de almacenamiento de ejecución necesaria para este flujo de trabajo. El valor predeterminado de este parámetro es 1200 GiB. Puede anular estos valores predeterminados al iniciar una ejecución.

1. **Etiquetas** (opcional): puedes asociar hasta 50 etiquetas a este flujo de trabajo.

1. Elija **Siguiente**.

1. En la página **Añadir parámetros de flujo** de trabajo (opcional), seleccione la **fuente de parámetros**:

   1. Para **analizar desde un archivo de definición de flujo** de trabajo, HealthOmics analizará automáticamente los parámetros del flujo de trabajo del archivo de definición del flujo de trabajo.

   1. Para **Proporcionar una plantilla de parámetros desde el repositorio de Git**, usa la ruta al archivo de plantillas de parámetros de tu repositorio.

   1. Para **seleccionar un archivo JSON de una fuente local**, sube un JSON archivo de una fuente local que especifique los parámetros.

   1. En **Introducir manualmente los parámetros del flujo** de trabajo, introduzca manualmente los nombres y las descripciones de los parámetros.

1. En el panel de **vista previa de los parámetros**, puede revisar o cambiar los parámetros de esta versión del flujo de trabajo. Si restaura el JSON archivo, perderá los cambios locales que haya realizado.

1. Elija **Siguiente**.

1. En la página de **reasignación de URI del contenedor**, en el panel **Reglas de mapeo**, puede definir las reglas de mapeo de URI para su flujo de trabajo.

   En **Fuente del archivo de mapeo**, selecciona una de las siguientes opciones:
   + **Ninguna**: no se requieren reglas de mapeo.
   + **Seleccione el archivo JSON de S3**: especifique la ubicación en S3 para el archivo de mapeo. 
   + **Seleccione el archivo JSON de una fuente local**: especifique la ubicación del archivo de mapeo en su dispositivo local.
   + **Introduzca los mapeos manualmente****: introduzca los mapeos de registro y los mapeos de imágenes en el panel de mapeos.**

1.  La consola **muestra** el panel de mapeos. Si elige un archivo fuente de mapeo, la consola muestra los valores del archivo.

   1. En **las asignaciones del registro**, puede editar las asignaciones o añadir asignaciones (máximo 20 asignaciones del registro).

      Cada mapeo de registro contiene los siguientes campos:
      + **URL del registro ascendente**: el URI del registro ascendente.
      + **Prefijo del repositorio ECR: el prefijo** del repositorio que se utilizará en el repositorio privado de Amazon ECR.
      + (Opcional) Prefijo del **repositorio ascendente: el prefijo** del repositorio en el registro ascendente.
      + (Opcional) ID de **cuenta ECR: ID** de cuenta de la cuenta propietaria de la imagen del contenedor ascendente.

   1. En los **mapeos de imágenes**, puede editar los mapeos de imágenes o añadir mapeos (máximo 100 mapeos de imágenes).

      Cada mapeo de imágenes contiene los siguientes campos:
      + **Imagen de origen**: especifica el URI de la imagen de origen en el registro original.
      + **Imagen de destino**: especifica el URI de la imagen correspondiente en el registro privado de Amazon ECR.

1. Elija **Siguiente**.

1. Revise la configuración del flujo de trabajo y, a continuación, seleccione **Crear flujo de trabajo**.

## Creación de un flujo de trabajo mediante la CLI
<a name="api-create-workflows"></a>

Si los archivos de flujo de trabajo y el archivo de plantilla de parámetros están en su máquina local, puede crear un flujo de trabajo mediante el siguiente comando CLI. 

```
aws omics create-workflow  \
  --name "my_workflow"   \
  --definition-zip fileb://my-definition.zip \
  --parameter-template file://my-parameter-template.json
```

La `create-workflow` operación devuelve la siguiente respuesta:

```
{
  "arn": "arn:aws:omics:us-west-2:....",
  "id": "1234567",
  "status": "CREATING",
  "tags": {
      "resourceArn": "arn:aws:omics:us-west-2:...."
  },
  "uuid": "64c9a39e-8302-cc45-0262-2ea7116d854f"
}
```

### Parámetros opcionales que se deben usar al crear un flujo de trabajo
<a name="other-create-parameters"></a>

Puede especificar cualquiera de los parámetros opcionales al crear un flujo de trabajo. Para obtener información sobre la sintaxis, consulte [CreateWorkflow](https://docs.aws.amazon.com/omics/latest/api/API_CreateWorkflow.html)la referencia de la HealthOmics API de AWS. 

**Topics**
+ [Especifique la ubicación de Amazon S3 de la definición del flujo de trabajo](#create-defn-uri-parameter)
+ [Usa la definición de flujo de trabajo de un repositorio basado en Git](#create-defn-uri-git)
+ [Especifique un archivo readme](#specify-readme-file)
+ [**main**Especifique el archivo de definición](#create-main-parameter)
+ [Especifique el tipo de almacenamiento de ejecución](#create-run-storage-parameter)
+ [Especifique la configuración de la GPU](#create-accelerator-parameter)
+ [Configure los parámetros de mapeo de la memoria caché extraíble](#create-prefix-mapping-parameters)

#### Especifique la ubicación de Amazon S3 de la definición del flujo de trabajo
<a name="create-defn-uri-parameter"></a>

Si el archivo de definición de flujo de trabajo se encuentra en una carpeta de Amazon S3, especifique la ubicación mediante el `definition-uri` parámetro, como se muestra en el siguiente ejemplo. Si su cuenta no es propietaria del bucket de Amazon S3, proporcione el Cuenta de AWS ID del propietario.

```
aws omics create-workflow  \
  --name Test  \
  --definition-uri s3://omics-bucket/workflow-definition/  \
  --owner-id  123456789012 
    ...
```

#### Usa la definición de flujo de trabajo de un repositorio basado en Git
<a name="create-defn-uri-git"></a>

Para usar la definición de flujo de trabajo de un repositorio compatible basado en Git, usa el `definition-repository` parámetro en tu solicitud. No proporciones ningún otro `definition` parámetro, ya que una solicitud falla si incluye más de una fuente de entrada.

El `definition-respository` parámetro contiene los siguientes campos:
+ **connectionArn**— ARN de la conexión de código que conecta los recursos de AWS al repositorio externo.
+ **fullRepositoryId**— Introduzca el ID del repositorio como`owner-name/repo-name`. Compruebe que tiene acceso a los archivos de este repositorio.
+ **sourceReference**(Opcional): introduzca un tipo de referencia de repositorio (BRANCH, TAG o COMMIT) y un valor.

  HealthOmics usa la última confirmación de la rama predeterminada si no especificas una referencia de origen.
+ **excludeFilePatterns**(Opcional): introduce los patrones de los archivos para excluir carpetas, archivos o extensiones específicos. Esto ayuda a administrar el tamaño de los datos al importar archivos del repositorio. Proporcione un máximo de 50 patrones. Los patrones deben seguir la sintaxis del patrón [global.](https://fossil-scm.org/home/doc/tip/www/globs.md) Por ejemplo:
  + `tests/`
  + `*.jpeg`
  + `large_data.zip`

Al especificar la definición del flujo de trabajo desde un repositorio basado en Git, utilícela `parameter-template-path` para especificar el archivo de plantilla de parámetros. Si no proporciona este parámetro, HealthOmics crea el flujo de trabajo sin una plantilla de parámetros.

El siguiente ejemplo muestra los parámetros relacionados con el contenido de un repositorio privado basado en Git: 

```
aws omics create-workflow \
    --name custom-variant \
    --description "Custom variant calling pipeline" \
    --engine "WDL" \
    --definition-repository '{
            "connectionArn": "arn:aws:codeconnections:us-east-1:123456789012:connection/abcd1234-5678-90ab-cdef-1234567890ab",
            "fullRepositoryId": "myorg/my-genomics-workflows",
            "sourceReference": {
                "type": "BRANCH",            
                "value": "main"        
            },        
            "excludeFilePatterns": ["tests/**", "*.log"]   
      }' \
    --main "workflows/variant-calling/main.wdl" \
    --parameter-template-path "parameters/variant-calling-params.json" \
    --readme-path "docs/variant-calling-README.md" \
    --storage-type "DYNAMIC" \
```

Para ver más ejemplos, consulte la entrada del blog [Cómo crear HealthOmics flujos de trabajo de AWS a partir del contenido de Git](https://repost.aws/articles/ARCEN7AjhaRSmteczRoc_QsA/how-to-create-an-aws-healthomics-workflows-from-content-in-git).

#### Especifique un archivo readme
<a name="specify-readme-file"></a>

Puede especificar la ubicación del archivo README mediante uno de los siguientes parámetros:
+ **readme-markdown**— Entrada de cadena o un archivo en su máquina local. 
+ **readme-uri**— El URI de un archivo almacenado en S3. 
+ **readme-path **— La ruta al archivo README del repositorio. 

**Utilice readme-path solo junto con definition-respository.** Si no especificas ningún parámetro README, HealthOmics importa el archivo README.md de nivel raíz en el repositorio (si existe).

Los siguientes ejemplos muestran cómo especificar la ubicación del archivo README mediante readme-path y readme-uri.

```
# Using README from repository
aws omics create-workflow \
    --name "documented-workflow" \
    --definition-repository '...' \
    --readme-path "docs/workflow-guide.md"

# Using README from S3
aws omics create-workflow \
    --name "s3-readme-workflow" \
    --definition-repository '...' \
    --readme-uri "s3://my-bucket/workflow-docs/readme.md"
```

Para obtener más información, consulte [HealthOmics Archivos README de flujo de trabajo](workflows-readme.md).

#### **main**Especifique el archivo de definición
<a name="create-main-parameter"></a>

Si incluye varios archivos de definición del flujo de trabajo, utilice el `main` parámetro para especificar el archivo de definición principal del flujo de trabajo.

```
aws omics create-workflow  \
  --name Test  \
  --main multi_workflow/workflow2.wdl  \
    ...
```

#### Especifique el tipo de almacenamiento de ejecución
<a name="create-run-storage-parameter"></a>

Puede especificar el tipo de almacenamiento de ejecución predeterminado (DINÁMICO o ESTÁTICO) y la capacidad de almacenamiento de ejecución (necesaria para el almacenamiento estático). Para obtener más información sobre los tipos de almacenamiento de ejecución, consulte[Ejecute tipos de almacenamiento en HealthOmics flujos de trabajo](workflows-run-types.md).

```
aws omics create-workflow  \
  --name my_workflow   \
  --definition-zip fileb://my-definition.zip \
  --parameter-template file://my-parameter-template.json   \
  --storage-type 'STATIC'  \
  --storage-capacity 1200  \
```

#### Especifique la configuración de la GPU
<a name="create-accelerator-parameter"></a>

Usa el parámetro accelerators para crear un flujo de trabajo que se ejecute en una instancia de procesamiento acelerado. En el siguiente ejemplo, se muestra cómo utilizar el parámetro. `accelerators` La configuración de la GPU se especifica en la definición del flujo de trabajo. Consulte [Instancias de computación acelerada](memory-and-compute-tasks.md#workflow-task-accelerated-computing-instances).

```
aws omics create-workflow --name workflow name \
   --definition-uri s3://amzn-s3-demo-bucket1/GPUWorkflow.zip \
   --accelerators GPU
```

#### Configure los parámetros de mapeo de la memoria caché extraíble
<a name="create-prefix-mapping-parameters"></a>

Si utiliza la función de mapeo de caché extraíble de Amazon ECR, puede anular los mapeos predeterminados. Para obtener más información sobre los parámetros de configuración del contenedor, consulte. [Imágenes de contenedores para flujos de trabajo privados](workflows-ecr.md)

En el siguiente ejemplo, el archivo `mappings.json` contiene este contenido:

```
{
    "registryMappings": [
        {
            "upstreamRegistryUrl": "registry-1.docker.io",
            "ecrRepositoryPrefix": "docker-hub"
        },
        {
            "upstreamRegistryUrl": "quay.io",
            "ecrRepositoryPrefix": "quay",
            "accountId": "123412341234"
        },
        {

            "upstreamRegistryUrl": "public.ecr.aws",
            "ecrRepositoryPrefix": "ecr-public"
        }
    ],
    "imageMappings": [{
            "sourceImage": "docker.io/library/ubuntu:latest",
            "destinationImage": "healthomics-docker-2/custom/ubuntu:latest",
            "accountId": "123412341234"
        },
        {
            "sourceImage": "nvcr.io/nvidia/k8s/dcgm-exporter",
            "destinationImage": "healthomics-nvidia/k8s/dcgm-exporter"
        }
    ]
}
```

Especifique los parámetros de mapeo en el comando create-workflow:

```
aws omics create-workflow  \
     ...
--container-registry-map-file file://mappings.json
    ...
```

También puede especificar la ubicación en S3 del archivo de parámetros de mapeo:

```
aws omics create-workflow  \
     ...
--container-registry-map-uri s3://amzn-s3-demo-bucket1/test.zip
    ...
```

## Crear un flujo de trabajo mediante un SDK
<a name="sdk-create-workflows"></a>

Puede crear un flujo de trabajo mediante uno de los SDKs. El siguiente ejemplo muestra cómo crear un flujo de trabajo mediante el SDK de Python.

```
import boto3

omics = boto3.client('omics')

with open('definition.zip', 'rb') as f:
   definition = f.read()

response = omics.create_workflow(
   name='my_workflow',
   definitionZip=definition,
   parameterTemplate={ ... }
)
```