首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在GCP核心中使用元数据查询设备?

如何在GCP核心中使用元数据查询设备?
EN

Stack Overflow用户
提问于 2022-07-02 13:24:52
回答 3查看 92关注 0票数 0

当我转到IOT核心注册表页面(在GCP控制台上)并选择一个设备时,我可以编辑它。那里有一个“设备元数据”部分,读取以下内容:

您可以为设备设置自定义元数据,如制造商、位置等。这些可以用于查询此注册表中的设备。了解更多

文档页中没有显示有关使用元数据查询设备的任何内容。这有可能吗?使用设备元数据可以做什么?

我之所以问这个问题,是因为我正在寻找带有设备双标签的Azure IOT集线器的以下特性:

  1. 理想情况下,我希望用相应的元数据丰富设备发送的消息(状态、事件)。
  2. 基于元数据字段查询多个设备。

EN

回答 3

Stack Overflow用户

发布于 2022-07-02 13:37:07

首先必须添加设备元数据,然后才能查询:

人们可以查询gcloud iot deviceslist (--registry=REGISTRY : --region=REGION)

代码语言:javascript
运行
复制
--filter="metadata.items.key['test_metadata'][value]='test_value'"

有关筛选表达式的更多信息,请参见gcloud topic filters

或使用格式:--format='value[](metadata.items.test_metadata)'

票数 0
EN

Stack Overflow用户

发布于 2022-07-04 02:43:34

如果使用客户端库实现此功能,可能会更容易。使用@MartinZeitler list的建议,您的设备对每个设备执行get,然后对元数据进行检查。有关实现,请参见下面的Python代码:

代码语言:javascript
运行
复制
from google.cloud import iot_v1


def sample_list_devices(meta_key_name,meta_val_name):
    # Create a client
    client = iot_v1.DeviceManagerClient()

    project_id="your-project-id"
    location="asia-east1" #define your device location
    registry="your-registry-id"
    parent=f"projects/{project_id}/locations/{location}/registries/{registry}"


    # Initialize request argument(s)
    list_request = iot_v1.ListDevicesRequest(
        parent=parent,
    )

    # Make the request
    list_result = client.list_devices(request=list_request)

    # Handle the response
    for response in list_result:
        device=response.num_id

        get_request = iot_v1.GetDeviceRequest(
            name=f"{parent}/devices/{device}",
        )

        get_response = client.get_device(request=get_request)
        if get_response.metadata[meta_key_name]==meta_val_name:
            print(get_response)
            return get_response

#define metadata key and metadata value that you want to use for filtering
sample_list_devices(meta_key_name="test_key",meta_val_name="test_val")

过滤响应:

请参见设备配置:

票数 0
EN

Stack Overflow用户

发布于 2022-07-05 04:02:30

不,不可能以您想要的方式查询元数据。医生介绍了关于服务器的以下内容。

云IoT核心不解释或索引设备元数据。

正如您已经知道的,作为客户端模拟查询搜索的解决方案,我们可以首先列出所有设备,然后通过元数据过滤输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72839393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档