当前位置: 首页 > 知识库问答 >
问题:

试图将消息发送到SQS时拒绝访问错误

章高朗
2023-03-14

我试图创建一个API来记录SQS队列中的JSON请求主体。

我已经在FIFO和非FIFO布局的SQS中设置了一个基本队列。我每次都有同样的问题。SQS队列的策略如下:

{
  "Version": "2012-10-17",
  "Id": "arn:aws:sqs:us-east-1:2222222222222:API-toSQS.fifo/SQSDefaultPolicy",
  "Statement": [
    {
      "Sid": "Sid22222222222",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "SQS:*",
      "Resource": "arn:aws:sqs:us-east-1:2222222222222:API-toSQS.fifo"
    }
  ]
}

我已经创建了一个策略,我将所有访问SQS的权限都赋予了写能力。我已经为API网关创建了一个角色,在其中我将前面提到的策略分配给。以下是我为该角色分配的策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "sqs:DeleteMessage",
                "sqs:ChangeMessageVisibility",
                "sqs:DeleteMessageBatch",
                "sqs:SendMessageBatch",
                "sqs:PurgeQueue",
                "sqs:DeleteQueue",
                "sqs:SendMessage",
                "sqs:CreateQueue",
                "sqs:ChangeMessageVisibilityBatch",
                "sqs:SetQueueAttributes"
            ],
            "Resource": "*"
        }
    ]
}

无法确定要授权的服务/操作名称

有没有一个AWS大师可以指引我走向正确的方向?

为了澄清我的问题,它应该添加我的测试体

共有1个答案

亢建白
2023-03-14

我选择重写路径,并在那里有SQS队列的完整https URL

在路径重写中,只键入SQS队列URL的部分路径2222222222222/api-tosqs.fifo

此外,fifo队列还需要MessageGroupID,如果未启用ContentBasedDeduplicationMessageDeDuplicationID

 类似资料:
  • 我有一个连接到lambda的队列(fifo)。我想在lambda中向标准队列发送一条消息。但没有发送/接收任何消息。然而,如果我尝试从非SQS连接的lambda(通过AppSync)发送它,它会工作。 我查过: lambda有权发送SQS消息(您可以在那里看到) 由于我已成功地从另一个lambda(非SQS)向标准队列发送消息,因此正确配置了标准队列 SQS URL是否正确 控制台中不会显示任何错

  • 我目前正在开发一个用Symfony2开发的网站,我需要在Amazon SQS中发送消息。为此,我在中添加了以下内容: 下面是我所做工作的示例代码: 我做错了什么来得到这个错误?

  • 我当前在尝试使用Spring Cloud和Spring Boot连接到AWS SQS队列时遇到了一个连接问题。我相信我的所有配置都很好,但正在得到: YML 当它尝试连接时,我看到一个标头值: 请求发送后: 使用相同的证书就可以了。非常感谢任何帮助。 谢谢

  • 我在我的项目中使用了SQS。我想在将消息推送到SQS标准队列时提供超时。我所说的超时(不是可见性超时)是指,如果我的消息没有在200毫秒内推送到SQS,那么我会在某个时候重试推送它。我使用JAVA API来实现同样的目的。 最初,我试图通过请求一个可调用的任务将消息推送到SQS来处理超时,它返回给我一个未来的对象,我通过提供超时来等待。但这导致请求被发送到SQS,当消息被推送时,我的超时出现在图片

  • 我有一个基本的SQS队列,它使用redrive策略触发Lambda,在5次重试后将失败的消息发送到DLQ。我读到Lambda应该在消息中添加关于错误的消息属性 除了在DLQ中查看消息时,我没有看到任何来自Lambda的ErrorCode、ErrorMessage属性外,其他一切都正常工作。有人用这个吗?

  • 我对php和mySQL是完全陌生的,并且正在尝试连接到远程数据库。这是我的代码:- $result=mysql_query(“Select*FROM Constants”); while($ROW=mysql_fetch_array($result)){echo$ROW['name']; echo“ ”;} mysql_close($con); 对这个问题有什么想法吗?马特·蒂亚