SAM 模板 - 始终为 lambda 启用事件触发器
SAM Template - Always enable event trigger for lambda
我有一个使用 SAM 模板创建的 lambda 函数,它每 5 分钟安排一个事件触发器。
当 lambda 第一次创建时,事件被启用。但是,当有人手动禁用触发器时,重新运行堆栈不会再次启用它。
原生云的形成在 AWS::Events::Rule 中有一个名为 State
的属性。但这在 SAM 函数的事件 属性 中不受支持。请注意,此事件 属性 被 SAM 引擎转换为 AWS::Events::Rule。
我尝试在 SAM 中添加相同的 State 属性,但这不起作用。
现在的问题是如何确保在使用 SAM 时始终启用事件。
这里有可用的破解方法。
示例代码:
MyUpdater:
Type: 'AWS::Serverless::Function'
Properties:
Handler: myupdater.lambda_handler
Runtime: python3.6
FunctionName: "myupdater"
CodeUri: ./code
Description: Sample updater lambda
MemorySize: 128
Timeout: 60
Role: !ImportValue myIamRole
KmsKeyArn: !ImportValue myKeyArn
Events:
Timer:
Type: Schedule
Properties:
Schedule: rate(5 minutes)
提前致谢
今天这是不可能的。我们正在考虑将来使用此功能(CFN 属性传递)。
我有一个使用 SAM 模板创建的 lambda 函数,它每 5 分钟安排一个事件触发器。
当 lambda 第一次创建时,事件被启用。但是,当有人手动禁用触发器时,重新运行堆栈不会再次启用它。
原生云的形成在 AWS::Events::Rule 中有一个名为 State
的属性。但这在 SAM 函数的事件 属性 中不受支持。请注意,此事件 属性 被 SAM 引擎转换为 AWS::Events::Rule。
我尝试在 SAM 中添加相同的 State 属性,但这不起作用。
现在的问题是如何确保在使用 SAM 时始终启用事件。
这里有可用的破解方法。
示例代码:
MyUpdater:
Type: 'AWS::Serverless::Function'
Properties:
Handler: myupdater.lambda_handler
Runtime: python3.6
FunctionName: "myupdater"
CodeUri: ./code
Description: Sample updater lambda
MemorySize: 128
Timeout: 60
Role: !ImportValue myIamRole
KmsKeyArn: !ImportValue myKeyArn
Events:
Timer:
Type: Schedule
Properties:
Schedule: rate(5 minutes)
提前致谢
今天这是不可能的。我们正在考虑将来使用此功能(CFN 属性传递)。