mis*_*303 2 api session model boto3
例如:
session = boto3.Session()
client = session.client('custom-service')
Run Code Online (Sandbox Code Playgroud)
我知道我可以在 ~/.aws/models 下创建一个带有 API 定义的 json,botocore 将从那里加载它。问题是我需要在 AWS Lambda 函数上完成它,这看起来不可能做到。
寻找一种方法来告诉 boto3 自定义 json api 定义在哪里,以便它可以从定义的路径加载。
谢谢
我只有部分答案。有一些关于botocore's loadermodule 的文档,它是读取模型文件的。在关于从 ZIP 档案加载模型的讨论中,提供了一个猴子补丁,它将 ZIP 提取到临时文件系统位置,然后将加载器搜索路径扩展到该位置。看起来你不能基于 API 直接从内存加载模型数据,但是 Lambda 确实给了你一些临时空间/tmp.
这是重要的部分:
import boto3
session = boto3.Session()
session._loader.search_paths.extend(["/tmp/boto"])
client = session.client("custom-service")
Run Code Online (Sandbox Code Playgroud)
目录结构/tmp/boto需要遵循资源加载器文档。主模型文件需要位于/tmp/boto/custom-service/yyyy-mm-dd/service-2.json.
该问题还提到可以使用替代加载器进行交换Session.register_component,因此如果您想编写一个直接从内存返回模型的零碎加载器,您也可以尝试这样做。我没有任何关于如何做到这一点的信息。
| 归档时间: |
|
| 查看次数: |
3020 次 |
| 最近记录: |