amazon-web-services - Boto3 API RDS:获取函数接受的参数列表
问题描述
我正在使用 boto3 API,尤其是 RDS 客户端,根据参数列表及其关联值修改 RDS 实例。在调用该modify_db_instance()
函数之前,我想验证用户提供的参数以确保它们可以传递给 modify 函数(这些参数也将在其他地方使用;因此,它们可能会被某些 boto 函数接受,但不能被其他函数接受)。
如果我要执行修改函数并提供一个无效参数,我会收到一个ParamValidationError
来自 boto 的信息,以及所有可接受参数的列表。我想以编程方式检索此列表。Boto3 文档建议我使用该describe_valid_db_instance_modifications()
函数 - 我得到的响应确实类似于此处文档中描述的内容,但我明确地寻找一个参数列表,我没有从该函数中获得。我想不出一种以编程方式执行此操作的方法。
谢谢!
解决方案
这些 boto3 函数的有效参数没有硬编码到函数签名本身,所以这比使用类似inspect.getargspec
. 这当然有点令人费解,但有效:
import urllib3
import json
url = 'https://raw.githubusercontent.com/boto/botocore/develop/botocore/data/rds/2014-10-31/service-2.json'
http = urllib3.PoolManager()
r = http.request('GET', url)
data = json.loads(r.data)
print(data['shapes']['ModifyDBInstanceMessage']['members'].keys())
推荐阅读
- java - 使用 S3 作为 Web 应用程序的主数据库
- r - fwrite 中的 R 错误:要写入的文件名是无效参数?
- c# - 从基类型到派生类型的工厂函数
- python - Python代码不在Excel工作表中写入输出,但能够从同一工作簿中的另一张工作表中获取输入
- android - 自定义 Popup 的下拉动画
- java - 可以使用 xml 属性 onClick="click" 更改按钮文本,而无需创建按钮对象
- amazon-web-services - 了解 AWS Sagemaker 限制及其请求
- react-native - Xcode 11.7 无法将 LaunchImage 设置为启动屏幕
- python - 通过在 mm:ss 前面添加 00 将 mm:ss 转换为 hh:mm:ss 使时间格式相同 - Pandas
- plsql - PL/SQL 包编译错误:PLS-00323