amazon-web-services - AWS Lambda的AWS SQS权限

标签 amazon-web-services amazon-s3 amazon-sqs aws-lambda

我正在使用AWS SQS服务,并且很难定义SQS队列上的权限。在我的设置中,我使用的是AWS Lambda服务,当将对象推送到S3存储桶时会触发该服务。

但是,让我简短地提问,这是我要实现的目标:


对象被推到S3存储桶
S3存储桶触发AWS Lambda
Lambda进行一些计算,然后将事件推送到我的SQS队列中(需要定义权限)
应用程序从SQS读取


从前面的用例中可以看出,我希望我的AWS Lambda方法成为唯一的应用程序,它可以将消息发送到SQS队列。我试图设置一个主体和条件“ sourceArn”。但是它们都不起作用。

enter image description here

有人可以帮忙吗?

最佳答案

我认为Lambda不会填充SourceArn字段。我知道SourceArn适用于SNS,但是Lambda实际上正在运行任意代码,而不是像SNS这样的AWS功能。

或者,您可以将策略附加到运行Lambda函数的IAM角色。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1440529349000",
            "Effect": "Allow",
            "Action": [
                "sqs:SendMessage"
            ],
            "Resource": [
                "arn:aws:sqs:us-west-2:123456789012:test-queue"
            ]
        }
    ]
}


此方法不需要将策略直接附加到队列。

关于amazon-web-services - AWS Lambda的AWS SQS权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32211246/

相关文章:

amazon-web-services - 引用 AppSync 和 Cognito Auth 的现有设置

python - 将数据帧以羽化格式保存到 S3

java - Spring Boot 中具有不同凭证的多个 AWS SQS 队列

java - Amazon SQS setRegion 方法

php - 将 SQS 与多个 Laravel 队列读取器一起使用时出错

amazon-web-services - Auto Scaling 组不会在启动配置更改时更新

java - 如何使用 Lambda 在 S3 存储桶内触发应用程序?

amazon-web-services - Terraform:假设角色问题

hadoop - 运行 MR 作业时出现 "Unable to verify integrity of data"

amazon-web-services - AWS S3 - 减速 : Please reduce your request rate