gpt4 book ai didi

amazon-web-services - 通过 CloudFormation 的 AWS Lambda S3 存储桶通知

转载 作者:行者123 更新时间:2023-12-04 00:13:17 25 4
gpt4 key购买 nike

我尝试通过 CloudFormation 创建 Lambda 通知,但收到有关 ARN 格式不正确的错误。

要么我的 CloudFormation 错误,要么它还不支持 Lambda 预览。

{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"LambdaArn": {
"Type": "String",
"Default": "arn:aws:lambda:{some-region}:{some-account-id}:function:{some-fn-name}"
}
},
"Resources": {
"EventArchive": {
"Type": "AWS::S3::Bucket",
"Properties": {
"NotificationConfiguration": {
"TopicConfigurations": [
{
"Event": "s3:ObjectCreated:Put",
"Topic": {
"Ref": "LambdaArn"
}
}
]
}
}
}
}
}

但是当我推送这个 CloudFormation 时,我收到消息:

The ARN is not well formed

有人知道这意味着什么吗?我知道上面的示例已被修改,因此不使用我的实际 ARN,但在我的实际代码中,我直接从 GUI 复制了 ARN。

此外,有趣的是,我能够通过 AWS 控制台创建通知,因此我只是假设 AWS CloudFormation 尚不支持此功能(尽管这还不太清楚,我在阅读文档时不认为这一点) .

最佳答案

看来 AWS 现已发布了对直接在 CloudFormation 中通知 lambda 函数的支持。

S3 NotificationConfiguration定义过去仅包含 TopicConfigurations,但已更新为包含 LambdaConfigurations以及。

添加 NoficationConfiguration 后,请确保包含 Lambda::Permission资源,以便 S3 可以执行您的 lambda 函数。以下是可用作模板的示例权限:

"PhotoBucketExecuteProcessorPermission": {
"Type" : "AWS::Lambda::Permission",
"Properties" : {
"Action":"lambda:invokeFunction",
"FunctionName": { "Fn::GetAtt": [ "PhotoProcessor", "Arn" ]},
"Principal": "s3.amazonaws.com",
"SourceAccount": {"Ref" : "AWS::AccountId" },
"SourceArn": {
"Fn::Join": [":", [
"arn","aws","s3","", ""
,{"Ref" : "PhotoBucketName"}]]
}
}
}

关于amazon-web-services - 通过 CloudFormation 的 AWS Lambda S3 存储桶通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28770610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com