Última Actualización enero 23rd, 2021 4:00 PM
Nov 06, 2020 NGuerrero base de datos, Desarrollo Web, Programacion 0
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.
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"
}
}
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"
}
}
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.
Powered by Facebook Comments
Ene 23, 2021 0
Ene 22, 2021 0
Ene 21, 2021 0
Ene 20, 2021 0
Ene 23, 2021 0
Ene 22, 2021 0
Ene 21, 2021 0
Ene 20, 2021 0
Ene 18, 2021 0
Ene 17, 2021 0
Ene 15, 2021 0