AWS Kinesis 对象没有属性:update_shard_count

AWS Kinesis object has no attribute: update_shard_count

我正在尝试在 AWS Kinesis 中实施动态分片。我创建了一个示例 python 脚本来更新运动流中的分片计数,使用 Boto3 库将 python 与 AWS Kinesis 连接起来。 但是当我使用 update_shard_count 方法时,它给 Kinesis 对象没有属性 update_shard_count 错误。

import boto3

client = boto3.client('kinesis',region_name='us-east-1')
response = client.update_shard_count(
    StreamName='xyzstream',
    TargetShardCount=2,
    ScalingType='UNIFORM_SCALING' )

Traceback (most recent call last): File "", line 1, in AttributeError: 'Kinesis' object has no attribute 'update_shard_count'

那么我如何使用 API 更新运动碎片计数?

您必须升级您的 Boto3。我有 Boto3 1.4.3,我在 Kinesis 模块中看到 update_shard_count 方法。接下来我检查了一个旧版本,但没有看到该方法。

    >>> import boto3
    >>> boto3.__version__
    '1.4.3'
    >>> client = boto3.client('kinesis')
    >>> client.update_shard_count
<bound method Kinesis.update_shard_count of <botocore.client.Kinesis object at 0x7fbfb7445b90>>

旧版本

>>> import boto3
>>> boto3.__version__
'1.4.0'
>>> client = boto3.client('kinesis')
>>> client.update_shard_count

Traceback (most recent call last): File "", line 1, in AttributeError: 'Kinesis' object has no attribute 'update_shard_count'