我正在使用无服务器框架并尝试使用事件/触发器定义部署Lambda函数。 事件源是已存在的Kinesis流。 我正在尝试使用Fn :: Join函数设置流ARN,但似乎不支持。 如何在不对AWS区域和帐户ID进行硬编码的情况下设置事件流ARN?
我的yml代码:
functions:
myfunction:
handler: myfunction.handler
name: myfunction-name
memorySize: 128
timeout: 120
events:
- stream:
type: kinesis
arn:
Fn::Join:
- ""
- - "arn:aws:kinesis:"
- Ref: AWS::Region
- ":"
- Ref: AWS::AccountId
- ":stream/xxxxxxx"
batchSize: 300
startingPosition: LATEST
enabled: true
答案 0 :(得分:0)
使用Fn :: GetAtt。
来自aws文档:
<强> FN :: GetAtt 强>
返回Arn属性的值。
<强>阿恩强>
Kinesis流的亚马逊资源名称(ARN),例如arn:aws:kinesis:us-east-2:123456789012:stream / mystream。
有关使用Fn :: GetAtt的更多信息,请参阅https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html
答案 1 :(得分:0)
我喜欢子函数在连接上的简单性和可读性。
{{1}}
重读它与无服务器框架有关,我利用这个插件:https://www.npmjs.com/package/serverless-pseudo-parameters