我在 aws redshift 中有几个查询,我想使用 redshift 计划功能来安排这些查询,以便我可以根据特定要求运行这些查询。我想使用 cloudformation yaml 脚本来完成这项工作。我一直在尝试这样做,但我无法找出脚本中将使用哪些属性/键。我也检查了文档,但找不到任何可行的解决方案。 为了使计划工作,我需要 2 个资源,即具有相关权限的 iam 角色和 redshift 计划资源。下面是我正在使用的查询计划资源的片段
ScheduledQuery1:
Type: AWS::Redshift::ScheduledAction
Properties:
Enable: true
IamRole: !GetAtt RedshiftSchedulerRole.Arn
ScheduledActionName: ScheduledQuery1
ScheduledActionDescription: "Runs query 1 every day at 12:00 AM PST"
Schedule: cron(45 14 * * ? *) # Every day at 12:00 AM PST (adjust as needed)
TargetAction:
#Query: "SELECT * FROM foodics_reports.foodics_daily_sales limit 100"
#ExecuteStatement:
#Database: dfsftdb
#SQL: "SELECT * FROM foodics_reports.foodics_daily_sales limit 100"
脚本的 TargetAction 部分有问题,我尝试了多种方法使其工作,但它总是给出此错误
Properties validation failed for resource ScheduledQuery1 with message: [#/TargetAction: extraneous key [Database] is not permitted, #/TargetAction: extraneous key [Sql] is not permitted, #/TargetAction: extraneous key [Database] is not permitted, #/TargetAction: extraneous key [Sql] is not permitted, #/TargetAction: extraneous key [Database] is not permitted, #/TargetAction: extraneous key [Sql] is not permitted
请提供此错误的解决方案,出了什么问题以及此场景的解决方案/正确的工作yaml脚本是什么。
尝试了目标操作部分中的多个键并浏览文档来解决此问题,但没有找到解决方案。
我 99% 确定使用任何类型的自动化都不支持设置“查询编辑器”计划查询。你能做的最好的事情就是安排一个调用查询的 lambda(如果它长时间运行,则不等待它返回)。通过编辑器设置计划查询,然后查看它创建的事件桥规则,我认为它实际上指向创建的一些内部 redshift thingy 查询编辑器。我的意思是也许你可以对它进行反向工程,很想知道你是否可以让它工作。我放弃了它,只是使用云形成来设置正确的 iam 内容,这样我就可以自己添加计划的查询。