我试图(徒劳)通过appsync Http解析器获取设备影子。
{
"version": "2018-05-29",
"method": "GET",
"resourcePath": "/things/${ctx.args.id}/shadow",
"params":{
"headers":
$utils.toJson($utils.http.copyHeaders($ctx.request.headers))
}
}
所有获得回应的即时消息都是“凭据的范围应为正确的服务” 我可以看到该呼叫的Authorization标头包含 “凭据= --- / --- / eu-west-1 / appsync / aws4_request”
当我在今天的应用程序中调用GET“ deviceShadow”作为REST(有效)时,它们的值相同 “凭据= --- / --- / eu-west-1 / iotdata / aws4_request”
因此,它看起来像是将appsync设置为服务,并且搞砸了通话吗? 任何提示如何使其正常工作?
答案 0 :(得分:2)
我认为您需要向数据源添加角色和IAM签名配置。使用AWS CLI执行以下步骤。
{
"endpoint": "https://<iot-endpoint>",
"authorizationConfig": {
"authorizationType": "AWS_IAM",
"awsIamConfig": {
"signingRegion": "eu-west-1",
"signingServiceName": "iot"
}
}
}
。emmeans
当AWS AppSync调用您的解析器时,它将使用附加的角色生成SigV4签名并调用AWS IoT设备影子服务。试试看。