我创建了一个 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 队列的访问策略的两种配置。使用 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: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"
]
}
}
}
]
}
(myaccountid、myqueue、my-vpc 是有效值的掩码)
但结果是相同的 - 可用 SQS 队列列表为空
最佳答案
目的地
仅适用于 asynchronous invocations lambda 。 SQS 调用 lambda synchronously ,因此 Destinations
不适用。这并不是它没有出现在您的列表中的原因,但由于 SQS 调用 lambda 的 Destinations
,您将永远无法使用它。
关于amazon-web-services - AWS Lambda : no items in Destination list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74224736/