使用 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 时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中使用 boto3 模块检查 Redshift 的集群状态?
我想使用 python boto3 脚本将数据加载到 Amazon Redshift 集群中
如何在 Python 中使用 JDBC 驱动程序和 Boto3 API 连接到现有的 Redshift 数据库