CloudFormation:一种定义 ACTIVATED 计划 Glue 作业触发器的方法
CloudFormation: a way to define an ACTIVATED scheduled Glue job trigger
我正在使用 CloudFormation 根据官方 documentation:
定义一个 SCHEDULED
Glue 作业触发器
ParquetJobTrigger:
Type: 'AWS::Glue::Trigger'
Properties:
Name: !Sub "${Prefix}_csv_to_parquet_job_trigger_${StageName}"
Type: SCHEDULED
Schedule: cron(0 0/1 * * ? *)
Actions:
- JobName: !Ref ParquetJob
Arguments:
"--job-bookmark-option": "job-bookmark-enable"
除一件事外,它就像一个魅力。它定义了一个状态为 CREATED
的作业触发器,我必须手动启用它:
有没有办法通过 CloudFormation 单独定义激活的计划触发器?
遇到了同样的问题并向 AWS 开具了工单。看起来他们目前没有该功能,但希望在下一个功能版本中解决。以下是他们的回复:
感谢您联系 AWS 高级支持。今天很高兴与您交谈。我正在回信跟进我们的谈话。我能够与 Glue 团队和 Cloud Formation 团队的成员取得联系,以下是我的发现:
1) 似乎无法使用资源命名空间启用 Glue 触发器:AWS::Glue::Trigger
2) 如果第一次失败,计划作业应在下一个计划时间重试
3) 作为解决上述问题的方法,您可以做的是让计划的操作在创建堆栈后触发一段特定的时间,以便您通过 Web 控制台手动启用触发器。
4) 正如我们在通话期间所讨论的那样,看起来 Lambda 函数实际上是可行的。在这种情况下,您可以让 Lambda 函数依赖于触发器资源,然后使用 lambda 函数调用 API 启动触发器 (https://docs.aws.amazon.com/cli/latest/reference/glue/start-trigger.html) 以启用触发器。这些操作应该及时发生,以便触发计划的作业。
以下是 Lambda 和 Cloud Formation 的一些有用参考资料:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-custom-resources-lambda-lookup-amiids.html
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html
对于任何新面孔,现在可以通过使用 StartOnCreation 属性 新触发器来实现。
UEDDBJobTrigger:
Type: AWS::Glue::Trigger
Properties:
Name: Foo
Description: Scheduled trigger
Type: SCHEDULED
Schedule: "cron(0 10 ? * MON-FRI *)"
StartOnCreation: true
Actions:
- JobName: !Ref TestJob
我正在使用 CloudFormation 根据官方 documentation:
定义一个SCHEDULED
Glue 作业触发器
ParquetJobTrigger:
Type: 'AWS::Glue::Trigger'
Properties:
Name: !Sub "${Prefix}_csv_to_parquet_job_trigger_${StageName}"
Type: SCHEDULED
Schedule: cron(0 0/1 * * ? *)
Actions:
- JobName: !Ref ParquetJob
Arguments:
"--job-bookmark-option": "job-bookmark-enable"
除一件事外,它就像一个魅力。它定义了一个状态为 CREATED
的作业触发器,我必须手动启用它:
有没有办法通过 CloudFormation 单独定义激活的计划触发器?
遇到了同样的问题并向 AWS 开具了工单。看起来他们目前没有该功能,但希望在下一个功能版本中解决。以下是他们的回复:
感谢您联系 AWS 高级支持。今天很高兴与您交谈。我正在回信跟进我们的谈话。我能够与 Glue 团队和 Cloud Formation 团队的成员取得联系,以下是我的发现:
1) 似乎无法使用资源命名空间启用 Glue 触发器:AWS::Glue::Trigger
2) 如果第一次失败,计划作业应在下一个计划时间重试
3) 作为解决上述问题的方法,您可以做的是让计划的操作在创建堆栈后触发一段特定的时间,以便您通过 Web 控制台手动启用触发器。
4) 正如我们在通话期间所讨论的那样,看起来 Lambda 函数实际上是可行的。在这种情况下,您可以让 Lambda 函数依赖于触发器资源,然后使用 lambda 函数调用 API 启动触发器 (https://docs.aws.amazon.com/cli/latest/reference/glue/start-trigger.html) 以启用触发器。这些操作应该及时发生,以便触发计划的作业。
以下是 Lambda 和 Cloud Formation 的一些有用参考资料: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-custom-resources-lambda-lookup-amiids.html https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html
对于任何新面孔,现在可以通过使用 StartOnCreation 属性 新触发器来实现。
UEDDBJobTrigger:
Type: AWS::Glue::Trigger
Properties:
Name: Foo
Description: Scheduled trigger
Type: SCHEDULED
Schedule: "cron(0 10 ? * MON-FRI *)"
StartOnCreation: true
Actions:
- JobName: !Ref TestJob