¿Te gustaría aprender Data Services?
Tenemos los cursos que necesitas.¡Haz clic aquí!


Los ejemplos de definiciones de trabajo a continuación ilustran cómo utilizar patrones comunes como, por ejemplo, variables de entorno, sustituciones de parámetros y montajes de volúmenes.

Utilización de variables de entorno

En el siguiente ejemplo, la definición de trabajo utiliza variables de entorno para especificar un tipo de archivo y un URL de Amazon S3. El script fetch_and_run.sh que se describe en el artículo utiliza estas variables de entorno para descargar el script myjob.sh de S3 y declarar su tipo de archivo.

Si bien en este ejemplo el comando y las variables de entorno están codificadas de forma rígida en la definición de trabajo, es posible enviar un trabajo con esta definición y especificar sustituciones de comandos y de variables de entorno para que la definición de trabajo más versátil.

{
    "jobDefinitionName": "fetch_and_run",
    "type": "container",
    "containerProperties": {
        "image": "012345678910.dkr.ecr.us-east-1.amazonaws.com/fetch_and_run",
        "vcpus": 2,
        "memory": 2000,
        "command": [
            "myjob.sh",
            "60"
        ],
        "jobRoleArn": "arn:aws:iam::012345678910:role/AWSBatchS3ReadOnly",
        "environment": [
            {
                "name": "BATCH_FILE_S3_URL",
                "value": "s3://my-batch-scripts/myjob.sh"
            },
            {
                "name": "BATCH_FILE_TYPE",
                "value": "script"
            }
        ],
        "user": "nobody"
    }
}

Cómo usar la sustitución de parámetros

El siguiente ejemplo de definición de trabajo ilustra cómo permitir la sustitución de parámetros y cómo establecer valores predeterminados.

Las declaraciones Ref:: de la sección command se utilizan para definir marcadores de posición para sustituir parámetros. Al enviar un trabajo con esta definición de trabajo, se especifican las sustituciones de parámetros que ocuparán dichos valores, como inputfile y outputfile. La sección parameters a continuación establece un valor predeterminado para codec, pero es posible invalidar ese parámetro si fuera necesario.

{
    "jobDefinitionName": "ffmpeg_parameters",
    "type": "container",
    "containerProperties": {
        "image": "my_repo/ffmpeg",
        "vcpus": 2,
        "memory": 2000,
        "command": [
            "ffmpeg",
            "-i",
            "Ref::inputfile",
            "-c",
            "Ref::codec",
            "-o",
            "Ref::outputfile"
        ],
        "jobRoleArn": "arn:aws:iam::012345678910:role/ECSTask-S3FullAccess",
        "parameters": {"codec": "mp4"},
        "user": "nobody"
    }
}

Funcionalidad de GPU de prueba

En el siguiente ejemplo, la definición de trabajo prueba si la AMI de carga de trabajo de GPU que se ha configurado correctamente. Las secciones volumes y mountPoints deben configurarse para crear un volumen de Docker que monte a ruta de host /var/lib/nvidia-docker/volumes/nvidia_driver/latest en /usr/local/nvidia en el contenedor. El contenedor debe tener privilegios de acceso al hardware de GPU.

{
    "containerProperties": {
        "mountPoints": [{
            "sourceVolume": "nvidia",
            "readOnly": false,
            "containerPath": "/usr/local/nvidia"
        }],
        "image": "nvidia/cuda:9.0-cudnn7-devel",
        "vcpus": 2,
        "command": ["nvidia-smi"],
        "volumes": [{
            "host": {"sourcePath": "/var/lib/nvidia-docker/volumes/nvidia_driver/latest"},
            "name": "nvidia"
        }],
        "memory": 2000,
        "privileged": true,
        "ulimits": []
    },
    "type": "container",
    "jobDefinitionName": "nvidia-smi"
}

Es posible crear un archivo con el texto JSON indicado arriba, que se denomine nvidia-smi.json y, a continuación, registrar una definición de trabajo de AWS Batch con el siguiente comando:

aws batch register-job-definition --cli-input-json file://nvidia-smi.json

La imagen a continuación muestra cómo se verían el volumen y los puntos de montaje en la Consola de administración de AWS.

Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.

¿Te gustaría aprender Data Services?
Tenemos los cursos que necesitas.¡Haz clic aquí!
About Author

NGuerrero

0 0 votos
Article Rating
Suscribir
Notificar de
0 Comments
Comentarios.
Ver todos los comentarios
0
¿Te gusta este articulo? por favor comentax
()
x
Abrir chat
¿Quieres aprender a programar?
Hola 👋,
¿Te interesa información de nuestros cursos?