AWS Glue のジョブのために --enable-metrics などの特別なパラメータを有効にしたいと考えています。ところが、ジョブを実行しようとすると、AWS CloudFormation からテンプレートの検証エラーまたは「null 値」エラーが発生します。これらのエラーを解決するにはどうすればよいですか。
簡単な説明
AWS Glue でジョブの特別なパラメータを設定するには、CloudFormation の AWS::Glue::Job リソースの DefaultArguments プロパティにキーと値のペアを指定する必要があります。自分のジョブ定義でのみキーを指定した場合、CloudFormation は検証エラーを返します。
解決方法
1. CloudFormation テンプレートで、ジョブ定義の DefaultArguments プロパティに対して、特別なパラメータの値を空の文字列に設定します。
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
注意:前述の JSON および YAML テンプレートの例では、--enable-metrics の値は空の文字列に設定されています。空の文字列はテンプレートを検証し、特別なパラメータで設定されたリソースを起動します。
2. 特別なパラメータを有効にするには、ジョブを実行します。