Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 运动流帐户不正确_Python 2.7_Amazon Web Services_Amazon Kinesis - Fatal编程技术网

Python 2.7 运动流帐户不正确

Python 2.7 运动流帐户不正确,python-2.7,amazon-web-services,amazon-kinesis,Python 2.7,Amazon Web Services,Amazon Kinesis,我已经用python和AWS连接设置了我的电脑。这已经使用s3_sample.py文件成功地进行了测试,我必须在一个文件中创建一个IAM用户帐户,该文件中的凭据对于s3 bucket非常有效 我的下一个任务是创建一个mqtt桥,并使用awslab-将一些数据放在kinesis中的流中。 除了运行bridge.py时出错外,这一切似乎都正常。错误是: Could not find ACTIVE stream:my_first_stream error:Stream my_first_stream

我已经用python和AWS连接设置了我的电脑。这已经使用s3_sample.py文件成功地进行了测试,我必须在一个文件中创建一个IAM用户帐户,该文件中的凭据对于s3 bucket非常有效

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

Could not find ACTIVE stream:my_first_stream error:Stream my_first_stream under account 673480824415 not found.
奇怪的是,这不是我在建议为此网桥设置的.boto文件中使用的帐户,它与我在S3 bucket中使用的凭据相同

[Credentials]
aws_access_key_id = AA1122BB
aws_secret_access_key = LlcKb61LTglis
在我看来,bridge.py有一个硬编码的帐户,但我看不到它,也看不到它指向.boto文件以获取凭据的位置。
提前感谢

当您调用PythonSDK for aws服务时,在
bridge.py
中有一行代码用于导入aws服务的boto模块

import boto
设置指向凭据的.boto,并在boto中默认定义

解释如下:

细节 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"

因此,无法找到帐户的活动流的问题可通过以下方式解决:

  • 确保连接到US-EAST-1数据中心,因为这是bridge.py的默认数据中心
  • 创建您的流,您将只需要1个碎片
  • 下一个问题来自MQTT的特定版本和安装的python库paho MQTT I。桥接应用程序是使用MQTT 1.2.1的API编写的,考虑到paho MQTT 0.4.91。 可在其网站上下载的新版本具有与paho mqtt库交互的不同方式,paho mqtt库将额外的“flags”对象传递给on_connect回调。这将生成我遇到的错误,因为它不需要第5个参数

    您应该能够通过对bridge.py进行以下更改来修复它 第104行当前看起来如下所示: def on_connect(self、mqttc、userdata、msg): 只需在userdata之后添加标志,回调函数如下所示: def on_connect(self、mqttc、userdata、flags、msg):

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


    希望这对其他人有所帮助,感谢他们的努力。

    这是一个简单的Github repo,python使用boto模块,默认情况下使用~/.boto下的配置文件。如果你需要深入调查,你需要报到,谢谢你的关注。不幸的是,我仍然得到同样的错误。我按照github上的步骤重新安装了boto,从github克隆,将cd复制到boto,运行python setup.py安装。即使如此,我也看不到一个/etc/boto.cfg文件和另外两个由我手动创建的文件。我假设包含凭据的.boto文件仅位于主目录中。该.boto文件夹和凭据文件由您自己创建。谢谢。我在主目录中有一个带有凭据的.boto文件,但仍然收到相同的错误。我将尝试运行一个批处理文件,只是将凭据传递给aws kinesis以检查它们是否正确。等待您的反馈。另一项检查是,确认访问密钥具有使用kinesis服务的权限。刚刚完成windows计算机的配置,运行了相同的步骤,但出现了相同的错误。进行了更多的调查,发现错误中引用的帐户是我的IAM帐户,因此使用用户名和密码(而不是访问密钥等)登录aws,并能够创建流。将检查如何使用访问密钥登录,并需要了解我是否已正确安装boto。