work_in_progress
work_in_progress

Reputation: 767

AWS IoT search for dynamic Thing Group

I would like to find a list of dynamic thing groups. I can see the type of field when I go to one of the thing groups in AWS IoT Core. How do I search and find a list of thing groups which has a Type as Dynamic?

e.g.

When I visit one of the Thing Group present in IoT Core.

You do not have a description for the thing group yet.

Created
Jul 26, 2019 11:21:44 AM -0700

Type
Static

0 Attributes

I tried a few variants, but they did not work.

Type: Dynamic
attributes.Type: Dynamic
Type == Dynamic

Thanks in advance for any suggestions.

Upvotes: 0

Views: 552

Answers (2)

Brian Luong
Brian Luong

Reputation: 588

  • Configure a Thing Group index on Fleet Indexing.
  • For every dynamic Thing Group created, add an attribute to distinguish it as a dynamic thing group, i.e. attribute.dynamic: true
  • Call SearchIndex on the index with the query attributes.dynamic: true and that will return all dynamic Thing Groups.

Upvotes: 1

work_in_progress
work_in_progress

Reputation: 767

It looks like it is not straight-forward. Thanks to my colleague, I created a script to get that list.

import boto3
client = boto3.client('iot')

list_thing_groups = client.list_thing_groups()
while True:
    for thing_group in list_thing_groups['thingGroups']:
        name = thing_group['groupName']
        response = client.describe_thing_group(
            thingGroupName=name
        )
        query = response.get('queryString')
        if query:
            print(name)
    if list_thing_groups.get('nextToken'):
        list_thing_groups = client.list_thing_groups(nextToken=list_thing_groups.get('nextToken'))
    else:
        break

The idea is queryString for dynamic Thing Group won't be null.

Upvotes: 0

Related Questions