kinesis流帐户不正确

时间:2015-01-01 03:50:11

标签: python-2.7 amazon-web-services amazon-kinesis

我已经使用python和与AWS的连接设置了我的电脑。这已经使用s3_sample.py文件成功测试了,我必须使用文件中的凭据创建一个IAM用户帐户,该帐户适用于S3存储桶。

我的下一个任务是创建一个mqtt桥,并使用awslab - awslabs/mqtt-kinesis-bridge将一些数据放入kinesis的流中。 这似乎一切正常,除了我运行bridge.py时出错。错误是:

Could not find ACTIVE stream:my_first_stream error:Stream my_first_stream under account 673480824415 not found.

奇怪的是,这不是我在建议为此网桥设置的.boto文件中使用的帐户,这与我用于S3存储桶的凭据相同

[Credentials]
aws_access_key_id = AA1122BB
aws_secret_access_key = LlcKb61LTglis

在我看来,bridge.py有一个硬编码帐户,但我看不到它,我无法看到它指向.boto文件的凭据。 在此先感谢

2 个答案:

答案 0 :(得分:1)

因此,找不到该帐户的Active流的问题由以下方法解决:

  1. 确保您已连接到US-EAST-1数据中心,因为这是bridge.py的默认数据中心
  2. 创建您的流,您只需要1个分片
  3. 下一个问题源于MQTT的特定版本和我安装的python库paho-mqtt。桥接应用程序是使用MQTT 1.2.1的API编写的,使用了paho-mqtt 0.4.91。 可在其网站上下载的新版本具有与paho-mqtt库交互的不同方式,该库通过了额外的标记"对象on_connect回调。这会产生我遇到的错误,因为它不期待第五个参数。

    您应该可以通过对bridge.py进行以下更改来解决此问题 104行目前看起来像这样:     def on_connect(self,mqttc,userdata,msg): 只需在userdata之后添加标志,以便回调函数如下所示:     def on_connect(self,mqttc,userdata,flags,msg):

    这应解决传递的参数数量不正确的最终错误问题。

    希望这有助于其他人,感谢您的努力。

答案 1 :(得分:0)

当你为aws服务调用python SDK时,有一行可以导入bridge.py中aws服务的boto模块。

import boto

该设置指向凭据的.boto,默认情况下以boto定义。

以下是解释Boto Config

详细信息

boto配置文件是一个格式类似.ini配置文件的文本文件,它指定控制boto库行为的选项的值。在Unix / Linux系统中,在启动时,boto库在以下位置按以下顺序查找配置文件:

/etc/boto.cfg - for site-wide settings that all users on this machine will use
~/.boto - for user-specific settings
~/.aws/credentials - for credentials shared between SDKs

当然,您可以直接设置环境

export AWS_ACCESS_KEY_ID="Your AWS Access Key ID"
export AWS_SECRET_ACCESS_KEY="Your AWS Secret Access Key"