使用 Python 和 Boto3 获取列表集群 Amazon Redshift

Posted

技术标签:

【中文标题】使用 Python 和 Boto3 获取列表集群 Amazon Redshift【英文标题】:Get list clusters Amazon Redshift using Python with Boto3 【发布时间】:2015-12-16 10:10:51 【问题描述】:

我想要一个使用 Python (boto3) 的集群列表。我做了一些研究,在 boto3 文档 (http://boto3.readthedocs.org/en/latest/reference/services/redshift.html#paginators) 中找到了这个命令来加载 redshift。

self.client = boto3.resource('redshift')

但我收到此错误:

botocore.exceptions.DataNotFoundError: Unable to load data for: redshift

其他信息:

我可以使用 psycopg2 访问红移。我可以对其执行 sql 命令,但无法获取集群列表。我正在使用 python 3.4.3。

【问题讨论】:

【参考方案1】:

您是否已经设置了 boto3 会话,或者您是在 AWS 中的机器上执行此操作吗?

The boto3.resource() method will only work if there's already a session created.

还有许多其他选项可以设置客户端,包括:

client = boto3.client(SERVICE_NAME, AWS_REGION)

所以在您的情况下,如果您在 AWS 区域“us-west-1”中运行:

client = boto3('redshift', 'us-west-1')
cluster_list = client.describe_clusters()

【讨论】:

谢谢我忘记了会议。但是主机名和用户名等呢?我现在用一个 JSON 文件来做,然后从那里读/写。但是没有更节省/安全的方式吗?加密? 你还没有说明你是从哪里做的。最安全的方法是从 AWS 中的机器上执行此操作,该机器附加了具有必要权限的 IAM 角色。然后 Boto3 应该会自动从机器中获取凭据。如果它从其他地方运行,您将需要以某种方式拥有本地密钥,there's a number of ways to do this.

以上是关于使用 Python 和 Boto3 获取列表集群 Amazon Redshift的主要内容,如果未能解决你的问题,请参考以下文章

我想使用 python boto3 脚本将数据加载到 Amazon Redshift 集群中

如何在 Python 中使用 boto3 模块检查 Redshift 的集群状态?

如何在Python AWS boto API中获取EC2实例ID的容器实例列表

在 Boto3 中获取具有特定标签和值的 EC2 实例列表

我正在尝试使用 python boto3 列出 aws ECS 集群中的所有集群,它最多只能列出 100 个集群,我想要 300 个集群

需要用于 ECS 帮助的 Python Boto3