【问题标题】:How to get AWS IOT client id?如何获取 AWS IOT 客户端 ID?
【发布时间】:2018-03-19 22:04:54
【问题描述】:

我使用 AWS IoT 在我的 Web 应用程序中进行实时更新。 应用程序使用aws-iot-device-sdk 连接到 AWS IoT:

const client = awsIot.device({
    region: awsConfig.region,
    protocol: 'wss',
    accessKeyId: <accessKey>,
    secretKey: <secretKey>,
    sessionToken: <sessionToken>,
    port: 443,
    host: <iotEndpoint>
});

client.on('connect', res => {
    // ok
});

我想使用 AWS Lifecycle Events。例如:

$aws/events/presence/connected/{clientId}

如何获取 MQTT 客户端 ID?

【问题讨论】:

    标签: amazon-web-services aws-iot


    【解决方案1】:

    每当您在 AWS IoT 中定义事物时,都会在您的 AWS IoT 账户中为您的设备分配一个唯一标识符。默认情况下,它与事物的名称(defaultClientId)相同,您可以使用它来连接到 AWS IoT 代理。 您可以使用 AWS 开发工具包(或您的设备名称)检索有关您事物的信息。例如使用 Python SDK:

    import boto3
    client = boto3.client('iot')
    response = client.describe_thing(
        thingName = [Name of your thing in AWS IoT]
    )
    
    print(response)
    

    【讨论】:

    • 我遇到了一个问题,我的设备只有在 clientId 是事物名称时才能连接。我希望他们与众不同。在事物已经创建之后这可能吗?
    • 那是因为定义事物时,定义的clientId与事物名称相同(AWS控制台默认)。如果您使用的是 Boto,您可以使用 update_thing() 函数更新事物的信息。
    • 嗯好吧,这很有帮助。我正在使用节点 sdk,所以我会看看是否有等价的。谢谢!
    • 谢谢!从哪里可以得到东西名称来做到这一点?我应该将它保存在环境变量中还是其他地方,并在需要时检索 ir?
    • 获取事物名称的一种方法是使用 Boto3 API 中的 list_things,检查:boto3.amazonaws.com/v1/documentation/api/latest/reference/…
    【解决方案2】:

    如果您查看the documentation,您会发现clientId 是您可以提供给device() 方法的参数之一。您应该为每个连接的设备生成一个对您的应用程序唯一(即对您的 AWS IoT 账户唯一)的客户端 ID。

    【讨论】:

    • 你能再具体一点吗? “生成客户端 ID”是什么意思?我认为问题是:这是怎么做到的?
    • @markthegrea Amazon 不提供客户端 ID。您生成客户端 ID。它的生成方式取决于您。您只需要确保每个 IoT 设备都有一个唯一的 ID。
    • 抱歉,还有一个问题。 “生成”听起来像是有一个网站或 api 可以做到这一点。你的意思是只补一个?还是以某种方式与资产本身相关联?
    • 补一个,使用UUID或类似的东西,等等
    【解决方案3】:

    您可以使用 SQL 函数 clientId 获取客户端 ID,例如。

    SELECT clientId() as clientId,* FROM '$aws/events/presence/connected/+
    

    您将能够在消息负载中检索它。

    【讨论】:

      猜你喜欢
      • 2019-05-14
      • 2013-03-18
      • 2014-06-02
      • 1970-01-01
      • 2011-10-22
      • 2013-12-01
      • 2023-01-01
      • 1970-01-01
      • 2018-03-20
      相关资源
      最近更新 更多