Confluent Kafka 5.0.0已安装在AWS EC2上,其公共IP为54。二十、 XX.XX号 用0.0.0.0打开EC2机器上的端口9092
在/etc/kafka/服务器.属性我有adverted.listeners=纯文本://54。二十、 XX.XX:9092还有听众=明文://0.0.0.0:9092个 在/etc/kafka/生产者.属性我有bootstrap.servers=00.0.0:9092
本地文件iotstatesboto.py已写如下,它有汇合生产者代码:
from confluent_kafka import Producer
import json
broker = '54.XX.XX.XX'
topic = 'mytopic'
def delivery_report(err, msg):
if err is not None:
print('Message delivery failed: {}'.format(err))
else:
print('Message delivered to {}'.format(msg.topic()))
def lambda_handler(event, context):
p = Producer({'bootstrap.servers': broker})
message = json.dumps(event)
print(message)
p.produce(topic, message.encode('utf-8'), callback=delivery_report)
return {
'message' : message
}
zip包在本地制作,如下所示:
^{pr2}$此zip文件上载到Lambda函数。 然后当“Test”函数发送一个伪消息时,出现以下错误
第一个:
{
"errorMessage": "Unable to import module 'iotstatesboto'"
}
还有一个是:
Unable to import module 'iotstatesboto': No module named 'confluent_kafka.cimpl'
我已将处理程序名称设置为“iotstatesboto.lambda_处理程序““
有没有线索,在这些步骤中,从lambda函数中获取producer来写入EC2上的kakfa stream?在
使用AWS Lambda时,必须手动提供所有库,即将它们添加到Lambda函数代码所使用的zip中。您还必须添加所有共享对象库(如果有的话)。在
在本例中,awslambda为您提供了python环境,它由python标准库+Boto3组成,因此没有其他lib。在
相关问题 更多 >
编程相关推荐