我有一个SQS队列,我想在消息到达队列时触发一个lambda函数。我已经编写了lambda函数,当我单击“Test”按钮时,它可以成功地工作。当我转到SQS并尝试将其配置为lambda触发器时,我会看到下面的错误消息。
我使用相同的用户和角色创建了SQS队列和lambda函数,lambda函数具有对相同角色的执行权限。
我还添加了SQS receiveMessage权限,但这似乎没有什么区别,除非我在设置它时做错了什么。
是什么导致了这个问题?
谢谢你的帮助
lambda假定,您需要以下附加到角色的权限
如果您正在使用Terraform:
data "aws_iam_policy_document" "YOUR_DOCUMENT" {
statement {
sid = "some_id"
actions = [
"sqs:ReceiveMessage",
"sqs:DeleteMessage",
"sqs:GetQueueAttributes"
]
resources = [
aws_sqs_queue.YOUR_QUEUE.arn
]
}
}
resource "aws_iam_policy" "YOUR_POLICY" {
name = "your_policy"
policy = data.aws_iam_policy_document.YOUR_DOCUMENT.json
}
resource "aws_iam_role_policy_attachment" "POLICY_ATTACHMENT" {
role = aws_iam_role.YOUR_LAMBDA_ROLE.name
policy_arn = aws_iam_policy.YOUR_POLICY.arn
}
resource "aws_lambda_function" "YOUR_LAMBDA" {
....
role = aws_iam_role.YOUR_LAMBDA_ROLE.arn
....
}
尽管到目前为止可能已经解决了这个问题。。但是既然这条线是在顶端向我建议的。。我将为其他用户发布答案:
即使在向用户提供SQS完全访问权限之后,我也面临同样的问题。问题在于lambda执行角色。创建lambda时,需要为其分配lambda执行角色。大多数用户在创建lambda时分配自动生成的执行角色。该执行角色没有SQS的权限。
所以打开lambda
>
或者在sqs:
上给它一个god模式,只是为了测试它。
如果这是可行的,也许以后你可以只使用特定的方法。附加了lambda角色的策略如果需要调用此lambda的另一个lambda表单,则可能必须将account_number更改为account no
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:eu-west-2:account_number:function:*"
},
{
"Sid": "",
"Effect": "Allow",
"Action": [
"logs:PutLogEvents",
"logs:CreateLogStream",
"logs:CreateLogGroup"
],
"Resource": "*"
},
{
"Sid": "",
"Effect": "Allow",
"Action": [
"sqs:*"
],
"Resource": "*"
}
]
}
我正在使用实现AWS SQS作业队列。正确处理作业(拉作业- PHP工匠队列:工作 但在Lambda环境中,使用相同的凭证,作业完成后不能删除。简而言之,拉作业- “errorType”:“Aws\Sqs\Exception\SQSExException”, “errorMessage”:“在上执行”DeleteMessage“时出错”https://sqs.ap-northeast-1.amaz
我想调用一个AWS API网关endpoint,该endpoint的授权设置为AWS_。 我是否可以使用 Lambda 的当前执行角色对 API Gateway 的 HTTPS 请求进行签名? 编辑: 看看 http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html,我也许可以使用SD
问题内容: 我只是通过nodejs.org上的软件包安装了node和npm,并且每当我尝试使用npm搜索或安装某些东西时,都会抛出以下错误,除非我对命令进行了sudo。我觉得这是权限问题?我已经是管理员。 问题答案: 这看起来像您的主目录中的权限问题。要回收 .npm 目录的所有权, 请 执行:
我有HTTPS web服务。我可以使用wsimport生成java类,但当我调用该服务时,我收到以下异常: 调用服务的类如下所示: 有人能帮忙吗。提前谢谢你。
我使用的是AWS SQS服务,很难定义SQS队列上的权限。在我的设置中,我使用的是AWS Lambda服务,当一个对象被推到S3存储桶上时会触发该服务。 然而,让我简短地提问,这是我想要实现的: 对象被推送到S3存储桶中 正如您可以从前面的用例中看到的,我希望我的AWS Lambda方法是唯一可以向SQS队列发送消息的应用程序。我试图设置一个原则和一个条件“sourceArn”。但是它们都不起作用
我正在尝试将文件从一个账户(源账户)中的 S3 存储桶移动到另一个账户(目标账户)中的 S3 存储桶,我正在使用 sagemaker 笔记本,因此我有一个 sagemaker 角色。我在我的团队帐户中也有一个角色,它具有完全的s3访问权限和完全的管理员访问权限,并且在信任关系中,我为目标帐户角色arn和sagemaker角色arn提供了一个角色。目标帐户在其信任策略中还具有我的团队角色 arn 和