Python 使用API网关为boto3创建端点url

Python 使用API网关为boto3创建端点url,python,amazon-web-services,aws-api-gateway,boto3,Python,Amazon Web Services,Aws Api Gateway,Boto3,目前,我的应用程序使用boto3访问AWS资源。但是,我希望使用API网关来处理所使用的AWS服务,这样所有内容都通过API网关而不是直接传输到服务 我让API网关工作,但是我如何告诉boto3使用这个新端点,因为API网关端点是基于每个操作设置的。i、 例如,有一个用于ListQueues,另一个用于CreateQueue 将boto3与端点url参数一起使用会出现以下错误: botocore.parsers.ResponseParserError:无法分析响应(格式不正确(无效令牌):第1行

目前,我的应用程序使用boto3访问AWS资源。但是,我希望使用API网关来处理所使用的AWS服务,这样所有内容都通过API网关而不是直接传输到服务

我让API网关工作,但是我如何告诉boto3使用这个新端点,因为API网关端点是基于每个操作设置的。i、 例如,有一个用于ListQueues,另一个用于CreateQueue

将boto3与端点url参数一起使用会出现以下错误:

botocore.parsers.ResponseParserError:无法分析响应(格式不正确(无效令牌):第1行第0列),接收到无效XML: {“message”:“凭证的作用域应为正确的服务:'执行api'。”


创建客户端时,您可以传递关键字参数
endpoint\u url
,该参数允许您覆盖目标服务的默认url
botocore

import boto3

client = boto3.client('sqs', endpoint_url="https://your.api.gateway.url.here")

您在这里需要一些管理,因为听起来您有只读API网关端点,还有一些具有写入功能。

在做了更多的研究之后,真正的答案是这实际上是不可能的,因为boto3库不支持API网关作为它提供的服务之一

请看这里:

当前有一个开放的功能请求,允许boto3调用API网关资源:


如果有人知道我不知道的事情,请告诉我。

谢谢。我试过了,但是看起来我需要一些关于如何设置API网关端点的帮助。你能告诉我一些关于如何设置API网关的信息吗?什么部分给你带来了问题?实际的API网关URL?或者客户端的响应有错误?如果我直接从REST客户端访问API网关,它似乎很好,只是当我将它用作端点url时,我得到了一个错误(我已经添加到OP中)@vonec看起来boto无法正确验证。您是否也代理所有身份验证,还是需要完全跳过凭据?我正在使用带API网关的AWS_IAM身份验证。我应该使用不同的设置吗?因为我看不到任何代理身份验证的选项。如果您使用boto3,您希望使用API网关端点的原因是什么?这有什么好处?那好像。。。打电话给你妈妈,让她把手机交给你哥哥,而不是仅仅用自己的手机给你哥哥打电话。您能通过API网关帮助我们了解您试图解决的问题吗?我不是说没有有效的用例。。。但我还没有看到。这样我们就可以通过只允许API网关流量来简化防火墙规则。我想你会发现这是徒劳的。您的端点没有固定地址。将API网关作为AWS服务的单一入口点—我认为@vonec的想法是合理的—API Gwy将允许统一/应用定义良好的安全过滤器来访问AWS资源和服务。管理的事情少了,不是吗?