Je souhaite activer des paramètres spéciaux, tels que --enable-metrics, pour ma tâche dans AWS Glue. Toutefois, AWS CloudFormation me renvoie une erreur de validation de modèle ou de « valeurs nulles » lorsque j'essaie d'exécuter ma tâche. Comment résoudre ce problème ?
Brève description
Pour définir des paramètres spéciaux pour votre tâche dans AWS Glue, vous devez fournir une paire clé-valeur pour la propriété DefaultArguments de la ressource AWS::Glue::Job dans CloudFormation. Si vous fournissez une clé uniquement dans la définition de votre tâche, CloudFormation renvoie alors une erreur de validation.
Solution
1. Dans votre modèle CloudFormation, définissez la valeur de votre paramètre spécial sur une chaîne vide pour la propriété DefaultArguments de la définition de votre tâche.
JSON :
"MyJob": {
"Type": "AWS::Glue::Job",
"Properties": {
"Command": {
"Name": "glueetl",
"ScriptLocation": "s3://my-test//test-job1"
},
"DefaultArguments": {
"--job-bookmark-option": "job-bookmark-enable",
"--enable-metrics": ""
},
"ExecutionProperty": {
"MaxConcurrentRuns": 2
},
"MaxRetries": 0,
"Name": "cf-job3",
"Role": {
"Ref": "MyJobRole"
}
}
}
YAML :
MyJob:
Type: 'AWS::Glue::Job'
Properties:
Command:
Name: glueetl
ScriptLocation: 's3://my-test//test-job1'
DefaultArguments:
'--job-bookmark-option': job-bookmark-enable
'--enable-metrics': ''
ExecutionProperty:
MaxConcurrentRuns:
MaxRetries: 0
Name: cf-job3
Role: !Ref MyJobRole
Remarque : dans l'exemple précédent de modèles JSON et YAML, la valeur de --enable-metrics est définie sur une chaîne vide. La chaîne vide valide le modèle et lance la ressource qui est configurée avec le paramètre spécial.
2. Pour activer votre paramètre spécial, exécutez votre tâche.