使用 redshift boto 时出错

Posted

技术标签:

【中文标题】使用 redshift boto 时出错【英文标题】:Getting an error while using redshift boto 【发布时间】:2017-03-28 01:16:42 【问题描述】:
import boto3

client = boto3.Session(profile_name='Sandbox').client('redshift')
response = client.create_tags(ResourceName='arn:aws:redshift:us-east-1:123456:snapshot:situation',
Tags=[ 'Key': 'k1', 'Value': 'v1','Key': 'k2', 'Value': 'v2'])

打印响应

错误:

File "sai.py", line 5, in <module>
    response = client.create_tags(ResourceName='arn:aws:redshift:us-east-1:123456:snapshot:situation',Tags=[ 'Key': 'k1', 'Value': 'v1','Key': 'k2', 'Value': 'v2'])
  File "/Library/Python/2.7/site-packages/botocore/client.py", line 253, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/Library/Python/2.7/site-packages/botocore/client.py", line 543, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidParameterValue) when calling the CreateTags operation: The format of the provided snapshot identifier is invalid.

【问题讨论】:

你能正确地格式化你的问题吗? 另外,阅读错误信息会给你一些线索。 kaven,你能检查一下 Tag 参数吗,它说我给出的标识符无效?但是在那个 create_tag(ResourceName = ''string'', Tags ='' ") 那么为什么它显示的快照标识符是无效的?@kaveh 【参考方案1】:

appears that Amazon Redshift 快照的 ARN 格式为:

arn:aws:redshift:[region]:[account]:snapshot:[cluster-name]/[snapshot-name]

因此,请尝试使用:

arn:aws:redshift:us-east-1:123456:snapshot:*/situation

【讨论】:

但是当我尝试生成 ARN arn = self.manager.generate_arn(s['SnapshotIdentifier']) 我得到 arn:aws:redshift:us-east-1:4712341:snapshot:situation 这很有趣——我以前从未见过generate_arn()。有没有关于这个命令的文档?它是 boto 的一部分吗?

以上是关于使用 redshift boto 时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS Redshift 中使用 boto 创建集群

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

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

如何在 Python 中使用 JDBC 驱动程序和 Boto3 API 连接到现有的 Redshift 数据库

如何使用 Boto3 for Redshift get_cluster_credentials 返回临时密码和用户名

Redshift UDF boto sql 查询和 S3