首页 > 解决方案 > 使用向boto3注入变量时出现ValidationException

问题描述

我将变量从一个函数转移到另一个函数,最后一步是将它们用作 BOTO3 函数的一部分。我正在获取所需的变量,并将其转换为 STR 类型。

  1. 我试图检查我得到的输出的类型,还尝试将其更改为 Unicode(我熟悉 str 和 Unicode 之间的区别)。
  2. 用 hexdump 检查是否有任何秘密隐藏字符,
  3. 试图将其保存到文件并从中读取,
  4. 计算了我正在生成的字符串和来自 aws 控制台的字符串 - 它们是相同的!
  5. 试图改变变量 {} .format vs %s 的格式化方法,
  6. 试图更新 aws cli \ python 版本..
  7. 烦人的部分是,当使用来自 aws 控制台的字符串时,BOTO3 函数可以完美运行。(所以这不是权限问题)
def describe_table():
    response = client.list_tables(
    )
    tablename = response['TableNames']

    for n in tablename:
        if 'tname' in n:
            print n
    return n


def tag_dynamo(AID):
    AID = '111222333'
    response = client.tag_resource(
        ResourceArn="arn:aws:dynamodb:region:%s:table/%s" % (AID, n),
            Tags=[
            {
                'Key': 'Key_name',
                'Value': 'value_state'
            }
            ]
        )

这是我得到的错误:

botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the 
TagResource operation: Invalid TableArn: Invalid ResourceArn provided as input 
arn:aws:dynamodb:region:AID:table/TABLE_NAME

标签: pythonamazon-web-servicesaws-sdkboto3

解决方案


推荐阅读