gpt4 book ai didi

json - AWS Lambda 函数 - 无法调用更新事物影子

转载 作者:行者123 更新时间:2023-12-04 12:51:35 25 4
gpt4 key购买 nike

根据此处的 boto3 文档:https://boto3.readthedocs.org/en/latest/reference/services/iot-data.html#client update_thing_shadow 方法将 thingName 和 JSON 负载作为参数。目前它是这样写的:

    client = boto3.client('iot-data', region_name='us-east-1')
data = {"state" : { "desired" : { "switch" : "on" }}}
mypayload = json.dumps(data)
response = client.update_thing_shadow(
thingName = 'MyDevice',
payload = b'mypayload'
)

当我使用命令行时没有问题,但似乎无法从 lamba 函数中正确获取它。我用许多版本的代码(json.JSONEncoder、bytearray() 等)调用它,但没有任何运气。调用 UpdateThingShadow 操作时,错误范围从语法到 (ForbiddenException):Bad Request: ClientError。有没有人成功地从 AWS lambda 函数中调用这个或类似的方法?谢谢。

最佳答案

这段代码对我来说工作正常:

def set_thing_state(thingName, state):
# Change topic, qos and payload
payload = json.dumps({'state': { 'desired': { 'property': state } }})

logger.info("IOT update, thingName:"+thingName+", payload:"+payload)
#payload = {'state': { 'desired': { 'property': state } }}


response = client.update_thing_shadow(
thingName = thingName,
payload = payload
)

logger.info("IOT response: " + str(response))
logger.info("Body:"+response['payload'].read())


def get_thing_state(thingName):

response = client.get_thing_shadow(thingName=thingName)

streamingBody = response["payload"]
jsonState = json.loads(streamingBody.read())

print jsonState
#print jsonState["state"]["reported"]

祝你好运

关于json - AWS Lambda 函数 - 无法调用更新事物影子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36042567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com