我想在AWS上连接到我的客户的MQTT服务。我找到了这个Amazon IoT Sample,它为我节省了大量的时间来深入研究这个API来查找连接AWS MQTT服务的过程。
在我的项目中,我更改了Constants.swift
中的常量,以便访问客户端的MQTT服务,如下所示:
let AWSRegion = AWSRegionType.USWest2 // e.g. AWSRegionType.USEast1
let CognitoIdentityPoolId = "us-west-2:e95087f0-48a7-4732-b482-4614c7c63db6"
let CertificateSigningRequestCommonName = "MyApp"
let CertificateSigningRequestCountryName = "MyCountry"
let CertificateSigningRequestOrganizationName = "MyOrganization"
let CertificateSigningRequestOrganizationalUnitName = "MyUnit"
let PolicyName = "pubsub_policy"
// This is the endpoint in your AWS IoT console. eg: https://xxxxxxxxxx.iot.<region>.amazonaws.com
let IOT_ENDPOINT = "https://<endpoint>.amazonaws.com" // endpoint is entered correctly!
let ASWIoTDataManager = "MyIotDataManager"
但当我按下Connect
时,应用程序抛出这个错误:
IAM 2018-06-04 17:12:59:992 IoTSampleSwift4999:2464150 Response body:{"__type":"InvalidIdentityPoolConfigurationException",“message”:“身份池配置无效。请检查为此池分配的
角色。”}
2018-06-04 17:12:59:994 IoTSampleSwift4999:2464150 GetCredentialsForIdentity失败。Error is Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=5 "(null)“UserInfo={__type=InvalidIdentityPoolConfigurationException,message=Invalid身份池配置错误。检查为此池分配的IAM角色。}
2018-06-04 17:12:59:995 IoTSampleSwift4999:2464150无法刷新。Error is Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=5 "(null)“UserInfo={__type=InvalidIdentityPoolConfigurationException,message=Invalid身份池配置错误。检查为此池分配的IAM角色。}
2018-06-04 17:13:00:017IoTSampleSwift4999:2464150 error: Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=5 "(null)“UserInfo={__type=InvalidIdentityPoolConfigurationException,message=Invalid身份池配置。检查为此池分配的IAM角色。}
MQTT中的参数有什么问题吗?
上生成这个p12文件
对不起,我必须问这些简单的问题,因为我是新手亚马逊IoT应用程序接口。
致以敬意,
发布于 2018-08-31 06:27:16
知道您正在使用哪种类型的IoT身份验证将会有所帮助。如果您正在使用Cognito进行AWS IoT身份验证,那么下面的内容肯定会有所帮助。
在AWS的IAM控制台中,转到角色。单击您的角色并查看信任关系。在下面的图片中可以更容易地看到这个选项卡的位置。
您的StringEquals条件的值很可能与您的身份池的值不匹配()。您可以在Cognito > Federated identity >单击蓝色链接"Name of your identity pool here“> Edit identity pool (右上角)查看,您的身份池ID在顶部。如果是这样,请单击[编辑信任关系](如下图所示)并进行编辑,以使密钥“cognito Identit.amazonaws.com::aud”的值与您的身份池ID相匹配。
https://stackoverflow.com/questions/50679234
复制相似问题