Je souhaite utiliser des paramètres spéciaux, tels que --enable-metrics, pour ma tâche dans AWS Glue. Lorsque j'exécute ma tâche, je reçois une erreur de validation du modèle ou une erreur « null values » d'AWS CloudFormation.
Résolution
Pour définir des paramètres spéciaux pour votre tâche 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 votre définition de tâche, CloudFormation renvoie une erreur de validation.
Pour résoudre ce problème, procédez comme suit :
- 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 votre définition de tâche.
Exemple de modèle 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"
}
}
}
Exemple de modèle 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: 2
MaxRetries: 0
Name: cf-job3
Role: !Ref MyJobRole
Remarque : Dans les exemples précédents de modèles JSON et YAML, --enable-metrics comporte une valeur de chaîne vide. La chaîne vide valide le modèle et lance la ressource configurée avec le paramètre spécial.
- Pour activer votre paramètre spécial, exécutez votre tâche.