amazon-web-services - aws lambda 权限中的 SourceArn 是什么
问题描述
这是我的 lambda 的 cft,我将 jar 文件上传到 s3,然后通过 s3 上传到 lambda,我完成了 LambdaRole 和 LambdaFunction 部分,在权限部分,SourceArn 应该是什么?我浏览了 lambda 官方文档,但没有找到任何示例。
另外,任何人都可以看看这个cft是否正确?谢谢!
ConfigurationLambdaRole:
Type: "AWS::IAM::Role"
Properties:
RoleName: 'configuration-sqs-lambda'
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
- events.amazonaws.com
- s3.amazonaws.com
Action:
- sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonSQSFullAccess
- arn:aws:iam::aws:policy/CloudWatchLogsFullAccess
ConfigurationLambdaFunction:
Type: AWS::Lambda::Function
Properties:
Description: 'configuration service with lambda'
FunctionName: 'configuration-lambda'
Handler: com.lambda.handler.EventHandler::handleRequest
Runtime: Java 11
MemorySize: 128
Timeout: 120
Code:
S3Bucket: configurationlambda
S3Key: lambda-service-1.0.0-SNAPSHOT.jar
Role: !GetAtt ConfiguratioLambdaRole.Arn
ConfigurationLambdaInvokePermission:
Type: AWS::Lambda::Permission
Properties:
FunctionName:
Fn::GetAtt:
- ConfigurationLambdaFunction
- Arn
Action: 'lambda:InvokeFunction'
Principal: s3.amazonaws.com
SourceArn: ''
解决方案
您正在创建一个角色来运行您的 lambda、一个 lambda 函数以及调用该 lambda 的权限。这SourceArn
是将调用 lambda 的东西。所以在你的情况下,听起来你想要一个 S3 存储桶来调用 lambda,所以 SourceArn 将是 S3 存储桶的 ARN。
本教程与您正在做的事情有关——特别是“创建 Lambda 函数”部分下的第 8 步。
您的 CF 模板通常看起来是正确的。我看到的唯一假设是这个角色是 lambda.amazonaws.com,因此该角色可能不需要在该AssumeRolePolicyDocument
部分中列出以下内容:
- events.amazonaws.com
- s3.amazonaws.com
另请参阅https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html
推荐阅读
- css - '@media' 在 CSS 上无法正常工作以进行响应式设计
- java - spring-boot-starter-parent 的不可解析 POM
- python - 为什么即使在定义函数之后程序也会给出 NameError?
- python-3.x - 列表中偶数的平均值
- javascript - 试图制作一个将变量名作为字符串接收的函数
- c++ - 如何将以下二维数组转换为一维数组?
- c# - 在使用 Microsoft.Identity.Client.PublicClientApplication 进行身份验证时如何隐藏后退按钮?
- javascript - 在 ListItem 按钮中设置路由器单击
- c# - 如何解决水晶报表中使用文本解释打印区域语言文本的问题?
- django - Django:presave 信号以获取模型中的文件扩展名