Créez ou mettez à jour la définition de tâche pour configurer le volume EBS à configurer au lancement. Utilisez l'option "configuredAtLaunch" définie sur true. Exemple :
"containerDefinitions": [
{
"name": "nginx",
"image": "public.ecr.aws/nginx/nginx:latest",
"networkMode": "awsvpc",
"portMappings": [
{
"name": "nginx-80-tcp",
"containerPort": 80,
"hostPort": 80,
"protocol": "tcp",
"appProtocol": "http"
}
],
"mountPoints": [
{
"sourceVolume": "myEBSVolume",
"containerPath": "/mount/ebs",
"readOnly": true
}
]
}
],
"volumes": [
{
"name": "myEBSVolume",
"configuredAtLaunch": true
}
]
Lancez une tâche autonome. Vous pouvez également lancer une tâche dans le cadre d'un service avec une configuration de volume dans le cadre du fichier JSON.
Exemple de fichier JSON de tâches autonomes :
{
"cluster": "mycluster",
"taskDefinition": "mytaskdef",
"volumeConfigurations": [
{
"name": "datadir",
"managedEBSVolume": {
"volumeType": "gp3",
"sizeInGiB": 100,
"roleArn": "arn:aws:iam:1111222333:role/ecsInfrastructureRole",
"encrypted": true,
"kmsKeyId": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
}
]
}
Remarque : Comme indiqué dans l'exemple précédent, aucun instantané n'est nécessaire pour lancer la tâche.
Exemple de fichier JSON :
{
"cluster": "mycluster",
"taskDefinition": "mytaskdef",
"serviceName": "mysvc",
"desiredCount": 2,
"volumeConfigurations": [
{
"name": "myEbsVolume",
"managedEBSVolume": {
"roleArn":"arn:aws:iam:1111222333:role/ecsInfrastructureRole",
"snapshotId": "snap-12345"
}
}
]
}
Remarque : Remplacez roleArn par votre compte ecsInfrastructureRole. Remplacez snapshotId par l'ID d’instantané à partir duquel vous souhaitez créer un volume.