【发布时间】:2022-12-20 09:12:04
【问题描述】:
我创建了一个 Lambda 函数,它从一个 SQS 队列中获取数据,执行一些修改并将输出数据放入另一个 SQS 队列。但是在尝试指定目的地时,我得到了 SQS 队列的空列表:
请你帮助我好吗?
提供 Lambda 函数的权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sqs:SendMessage",
"sqs:DeleteMessage",
"sqs:ChangeMessageVisibility",
"sqs:ReceiveMessage",
"sqs:TagQueue",
"sqs:UntagQueue",
"sqs:PurgeQueue"
],
"Resource": "arn:aws:sqs:eu-west-1:myaccountid:my-queue.fifo"
}
]
}
尝试了 SQS 队列的两种访问策略配置。使用专有网络:
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__owner_statement",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "SQS:*",
"Resource": "arn:aws:sqs:eu-west-1:myacy-queuecountid:m.fifo",
"Condition": {
"StringEquals": {
"aws:SourceVpc": "my-vpc"
}
}
}
]
}
和主要账户:
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__owner_statement",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "SQS:*",
"Resource": "arn:aws:sqs:eu-west-1:myaccountid:my-queue.fifo",
"Condition": {
"StringEquals": {
"aws:PrincipalAccount": [
"myaccountid"
]
}
}
}
]
}
(我的账号,我的队列,我的vpc是有效值的掩码)
但结果是一样的——可用 SQS 队列列表为空
【问题讨论】:
-
所以你有一个触发 lambda 的队列和另一个从 lamda 获取处理后数据的队列?第二个队列是否存在/是否已经创建?您是否尝试提供 sqs:* 以查看是否有帮助?也许您需要列出它们的可能性?
-
是的,没错——第一个队列是一个触发器,第二个队列应该是一个目的地。是的,存在第二个队列。我刚刚检查了使用“sqs:*”更改 Lambda 角色策略,但不幸的是,问题仍然存在
标签: amazon-web-services aws-lambda amazon-sqs