sao*_*sao 2 amazon-sqs amazon-iam aws-api-gateway
我正在尝试创建一个在 SQS 队列中记录 JSON 请求正文的 API。
我在 SQS 中以 FIFO 和非 FIFO 布局设置了一个基本队列。我每次都有同样的问题。我对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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我制定了一项政策,允许所有人员访问 SQS 以提高写作能力。我为 API Gateway 创建了一个角色,在其中分配了上述策略。这是我分配给该角色的策略:
{
"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": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我已经设置了一个API网关。我创建了一个 POST 方法。我尝试启用 CORS 选项(创建 OPTIONS 方法),并且在没有启用 CORS 的情况下完成了该操作。我的安全策略 ARN 是正确的,我已对其进行了三次检查。我选择覆盖路径并在那里有我的 SQS 队列的完整 https URL,我也对此进行了三次检查。我的端点当然是SQS。
对于集成请求,我有一个 HTTP 标头Content-Type,然后有一个映射自 as'application/x-www-form-urlencoded'
在映射模板中,我将 passthrough 设置为never并将 Content-Type 设置为application/json还包含Action=SendMessage&MessageBody=$input.body根据我找到的演练从正文转换为 url 的模板。
我在 API Gateway 测试区域收到以下错误
<AccessDeniedException>
<Message>Unable to determine service/operation name to be authorized</Message>
</AccessDeniedException>
有 AWS 专家可以引导我走向正确的方向吗?
澄清我的问题是它应该添加我的测试主体
{"peanutbutter":"jelly"}
到 SQS 队列,但没有运气。
我可以整天从邮递员向 SQS 发送 url 编码的消息,但我希望我的业务合作伙伴能够通过 http(邮递员、节点等,等等)发送干净的 JSON 对象
谢谢你!
我选择覆盖路径并在那里有我的 SQS 队列的完整 https URL
在“路径覆盖”中,仅键入 SQS 队列 URL 的路径部分2222222222222/API-toSQS.fifo。
此外,MessageGroupId对于 fifo 队列是必需的,如果未启用 ContentBasedDeduplication,MessageDeduplicationId则也需要。
映射模板示例:
Action=SendMessage&MessageGroupId=$input.params('MessageGroupId')&MessageDeduplicationId=$input.params('MessageDeduplicationId')&MessageBody=$input.body
在这种情况下,您需要在方法请求中MessageGroupId根据MessageDeduplicationId需要定义查询字符串参数,并显然将它们传递到 API 端点的请求中。
| 归档时间: |
|
| 查看次数: |
5031 次 |
| 最近记录: |