使用 AWS CLI 的 AWS IoT Analytics 示例 - AWS Command Line Interface

使用 AWS CLI 的 AWS IoT Analytics 示例

以下代码示例演示了如何通过将 AWS Command Line Interface与 AWS IoT Analytics 结合使用,来执行操作和实现常见场景。

操作 是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示了如何使用 batch-put-message

AWS CLI

将消息发送到通道

以下 batch-put-message 示例向指定通道发送消息。

aws iotanalytics batch-put-message \ --cli-binary-format raw-in-base64-out \ --cli-input-json file://batch-put-message.json

batch-put-message.json 的内容:

{ "channelName": "mychannel", "messages": [ { "messageId": "0001", "payload": "eyAidGVtcGVyYXR1cmUiOiAyMCB9" } ] }

输出:

{ "batchPutMessageErrorEntries": [] }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 BatchPutMessage

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 BatchPutMessage

以下代码示例演示了如何使用 cancel-pipeline-reprocessing

AWS CLI

取消通过管道重新处理数据

以下 cancel-pipeline-reprocessing 示例取消了通过指定管道重新处理数据。

aws iotanalytics cancel-pipeline-reprocessing \ --pipeline-name mypipeline \ --reprocessing-id "6ad2764f-fb13-4de3-b101-4e74af03b043"

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 CancelPipelineReprocessing

以下代码示例演示了如何使用 create-channel

AWS CLI

创建通道

以下 create-channel 示例使用指定配置创建了一个通道。通道收集来自 MQTT 主题的数据,并在将数据发布到管道之前将原始未处理消息归档。

aws iotanalytics create-channel \ --cli-input-json file://create-channel.json

create-channel.json 的内容:

{ "channelName": "mychannel", "retentionPeriod": { "unlimited": true }, "tags": [ { "key": "Environment", "value": "Production" } ] }

输出:

{ "channelArn": "arn:aws:iotanalytics:us-west-2:123456789012:channel/mychannel", "channelName": "mychannel", "retentionPeriod": { "unlimited": true } }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 CreateChannel

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateChannel

以下代码示例演示了如何使用 create-dataset-content

AWS CLI

创建数据集的内容

以下 create-dataset-content 示例通过应用 queryAction(SQL 查询)或 containerAction(执行容器化应用程序)来创建指定数据集的内容。

aws iotanalytics create-dataset-content \ --dataset-name mydataset

输出:

{ "versionId": "d494b416-9850-4670-b885-ca22f1e89d62" }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 CreateDatasetContent

以下代码示例演示了如何使用 create-dataset

AWS CLI

创建数据集

以下 create-dataset 示例创建一个数据集。数据集存储通过应用 queryAction(SQL 查询)或 containerAction(执行容器化应用程序)从数据存储中检索的数据。此操作创建数据集的骨架。可以通过调用 CreateDatasetContent 手动填充数据集,也可以根据您指定的 trigger 自动填充数据集。

aws iotanalytics create-dataset \ --cli-input-json file://create-dataset.json

create-dataset.json 的内容:

{ "datasetName": "mydataset", "actions": [ { "actionName": "myDatasetAction", "queryAction": { "sqlQuery": "SELECT * FROM mydatastore" } } ], "retentionPeriod": { "unlimited": true }, "tags": [ { "key": "Environment", "value": "Production" } ] }

输出:

{ "datasetName": "mydataset", "retentionPeriod": { "unlimited": true }, "datasetArn": "arn:aws:iotanalytics:us-west-2:123456789012:dataset/mydataset" }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 CreateDataset

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateDataset

以下代码示例演示了如何使用 create-datastore

AWS CLI

创建数据存储

以下 create-datastore 示例创建了一个数据存储,它是消息的存储库。

aws iotanalytics create-datastore \ --cli-input-json file://create-datastore.json

create-datastore.json 的内容:

{ "datastoreName": "mydatastore", "retentionPeriod": { "numberOfDays": 90 }, "tags": [ { "key": "Environment", "value": "Production" } ] }

输出:

{ "datastoreName": "mydatastore", "datastoreArn": "arn:aws:iotanalytics:us-west-2:123456789012:datastore/mydatastore", "retentionPeriod": { "numberOfDays": 90, "unlimited": false } }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 CreateDatastore

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateDatastore

以下代码示例演示了如何使用 create-pipeline

AWS CLI

创建 IoT Analytics 管道

以下 create-pipeline 示例创建一个管道。管道使用来自通道的消息,并允许您在将消息存储在数据存储之前处理消息。您必须同时指定一个通道和一个数据存储活动,以及可选择性地指定 pipelineActivities 数组中最多 23 个额外活动。

aws iotanalytics create-pipeline \ --cli-input-json file://create-pipeline.json

create-pipeline.json 的内容:

{ "pipelineName": "mypipeline", "pipelineActivities": [ { "channel": { "name": "myChannelActivity", "channelName": "mychannel", "next": "myMathActivity" } }, { "datastore": { "name": "myDatastoreActivity", "datastoreName": "mydatastore" } }, { "math": { "name": "myMathActivity", "math": "((temp - 32) * 5.0) / 9.0", "attribute": "tempC", "next": "myDatastoreActivity" } } ], "tags": [ { "key": "Environment", "value": "Beta" } ] }

输出:

{ "pipelineArn": "arn:aws:iotanalytics:us-west-2:123456789012:pipeline/mypipeline", "pipelineName": "mypipeline" }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 CreatePipeline

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreatePipeline

以下代码示例演示了如何使用 delete-channel

AWS CLI

删除 IoT Analytics 通道

以下 delete-channel 示例删除指定通道。

aws iotanalytics delete-channel \ --channel-name mychannel

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 DeleteChannel

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeleteChannel

以下代码示例演示了如何使用 delete-dataset-content

AWS CLI

删除数据集内容

以下 delete-dataset-content 示例删除指定数据集的内容。

aws iotanalytics delete-dataset-content \ --dataset-name mydataset

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 DeleteDatasetContent

以下代码示例演示了如何使用 delete-dataset

AWS CLI

删除数据集

以下 delete-dataset 示例删除指定数据集。在执行此操作之前,您不必删除数据集的内容。

aws iotanalytics delete-dataset \ --dataset-name mydataset

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 DeleteDataset

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeleteDataset

以下代码示例演示了如何使用 delete-datastore

AWS CLI

删除数据存储

以下 delete-datastore 示例删除指定数据存储。

aws iotanalytics delete-datastore \ --datastore-name mydatastore

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 DeleteDatastore

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeleteDatastore

以下代码示例演示了如何使用 delete-pipeline

AWS CLI

删除管道

以下 delete-pipeline 示例删除指定管道。

aws iotanalytics delete-pipeline \ --pipeline-name mypipeline

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 DeletePipeline

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeletePipeline

以下代码示例演示了如何使用 describe-channel

AWS CLI

检索有关通道的信息

以下 describe-channel 示例显示指定通道的详细信息,包括统计信息。

aws iotanalytics describe-channel \ --channel-name mychannel \ --include-statistics

输出:

{ "statistics": { "size": { "estimatedSizeInBytes": 402.0, "estimatedOn": 1561504380.0 } }, "channel": { "status": "ACTIVE", "name": "mychannel", "lastUpdateTime": 1557860351.001, "creationTime": 1557860351.001, "retentionPeriod": { "unlimited": true }, "arn": "arn:aws:iotanalytics:us-west-2:123456789012:channel/mychannel" } }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 DescribeChannel

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribeChannel

以下代码示例演示了如何使用 describe-dataset

AWS CLI

检索有关数据集的信息

以下 describe-dataset 示例显示指定数据集的详细信息。

aws iotanalytics describe-dataset \ --dataset-name mydataset

输出:

{ "dataset": { "status": "ACTIVE", "contentDeliveryRules": [], "name": "mydataset", "lastUpdateTime": 1557859240.658, "triggers": [], "creationTime": 1557859240.658, "actions": [ { "actionName": "query_32", "queryAction": { "sqlQuery": "SELECT * FROM mydatastore", "filters": [] } } ], "retentionPeriod": { "numberOfDays": 90, "unlimited": false }, "arn": "arn:aws:iotanalytics:us-west-2:123456789012:dataset/mydataset" } }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 DescribeDataset

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribeDataset

以下代码示例演示了如何使用 describe-datastore

AWS CLI

检索有关数据存储的信息

以下 describe-datastore 示例显示指定数据存储的详细信息,包括统计信息。

aws iotanalytics describe-datastore \ --datastore-name mydatastore \ --include-statistics

输出:

{ "datastore": { "status": "ACTIVE", "name": "mydatastore", "lastUpdateTime": 1557858971.02, "creationTime": 1557858971.02, "retentionPeriod": { "unlimited": true }, "arn": "arn:aws:iotanalytics:us-west-2:123456789012:datastore/mydatastore" }, "statistics": { "size": { "estimatedSizeInBytes": 397.0, "estimatedOn": 1561592040.0 } } }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 DescribeDatastore

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribeDatastore

以下代码示例演示了如何使用 describe-logging-options

AWS CLI

检索当前的日志选项

以下 describe-logging-options 示例显示当前 AWS IoT Analytics 日志选项。

aws iotanalytics describe-logging-options

此命令不生成任何输出。输出:

{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/service-role/myIoTAnalyticsRole", "enabled": true, "level": "ERROR" } }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 DescribeLoggingOptions

以下代码示例演示了如何使用 describe-pipeline

AWS CLI

检索有关管道的信息

以下 describe-pipeline 示例显示指定管道的详细信息。

aws iotanalytics describe-pipeline \ --pipeline-name mypipeline

输出:

{ "pipeline": { "activities": [ { "channel": { "channelName": "mychannel", "name": "mychannel_28", "next": "mydatastore_29" } }, { "datastore": { "datastoreName": "mydatastore", "name": "mydatastore_29" } } ], "name": "mypipeline", "lastUpdateTime": 1561676362.515, "creationTime": 1557859124.432, "reprocessingSummaries": [ { "status": "SUCCEEDED", "creationTime": 1561676362.189, "id": "6ad2764f-fb13-4de3-b101-4e74af03b043" } ], "arn": "arn:aws:iotanalytics:us-west-2:123456789012:pipeline/mypipeline" } }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 DescribePipeline

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribePipeline

以下代码示例演示了如何使用 get-dataset-content

AWS CLI

检索数据集的内容

以下 get-dataset-content 示例以预签名 URI 的形式检索数据集的内容。

aws iotanalytics get-dataset-content --dataset-name mydataset

输出:

{ "status": { "state": "SUCCEEDED" }, "timestamp": 1557863215.995, "entries": [ { "dataURI": "https://aws-radiant-dataset-12345678-1234-1234-1234-123456789012.s3.us-west-2.amazonaws.com/results/12345678-e8b3-46ba-b2dd-efe8d86cf385.csv?X-Amz-Security-Token=...-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20190628T173437Z&X-Amz-SignedHeaders=host&X-Amz-Expires=7200&X-Amz-Credential=...F20190628%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=..." } ] }

有关更多信息,请参阅《指南》中的 GetDatasetContent

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetDatasetContent

以下代码示例演示了如何使用 list-channels

AWS CLI

检索通道的列表

以下 list-channels 示例显示可用通道的摘要信息。

aws iotanalytics list-channels

输出:

{ "channelSummaries": [ { "status": "ACTIVE", "channelName": "mychannel", "creationTime": 1557860351.001, "lastUpdateTime": 1557860351.001 } ] }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 ListChannels

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListChannels

以下代码示例演示了如何使用 list-dataset-contents

AWS CLI

列出有关数据集内容的信息

以下 list-dataset-contents 示例列出有关已创建的数据集内容的信息。

aws iotanalytics list-dataset-contents \ --dataset-name mydataset

输出:

{ "datasetContentSummaries": [ { "status": { "state": "SUCCEEDED" }, "scheduleTime": 1557863215.995, "version": "b10ea2a9-66c1-4d99-8d1f-518113b738d0", "creationTime": 1557863215.995 } ] }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 ListDatasetContents

以下代码示例演示了如何使用 list-datasets

AWS CLI

检索有关数据集的信息

以下 list-datasets 示例列出有关可用数据集的摘要信息。

aws iotanalytics list-datasets

输出:

{ "datasetSummaries": [ { "status": "ACTIVE", "datasetName": "mydataset", "lastUpdateTime": 1557859240.658, "triggers": [], "creationTime": 1557859240.658, "actions": [ { "actionName": "query_32", "actionType": "QUERY" } ] } ] }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 ListDatasets

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListDatasets

以下代码示例演示了如何使用 list-datastores

AWS CLI

检索数据存储的列表

以下 list-datastores 示例显示有关可用数据存储的摘要信息。

aws iotanalytics list-datastores

输出:

{ "datastoreSummaries": [ { "status": "ACTIVE", "datastoreName": "mydatastore", "creationTime": 1557858971.02, "lastUpdateTime": 1557858971.02 } ] }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 ListDatastores

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListDatastores

以下代码示例演示了如何使用 list-pipelines

AWS CLI

检索管道的列表

以下 list-pipelines 示例显示可用管道列表。

aws iotanalytics list-pipelines

输出:

{ "pipelineSummaries": [ { "pipelineName": "mypipeline", "creationTime": 1557859124.432, "lastUpdateTime": 1557859124.432, "reprocessingSummaries": [] } ] }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 ListPipelines

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListPipelines

以下代码示例演示了如何使用 list-tags-for-resource

AWS CLI

列出资源标签

以下 list-tags-for-resource 示例列出您附加到指定资源的标签:

aws iotanalytics list-tags-for-resource \ --resource-arn "arn:aws:iotanalytics:us-west-2:123456789012:channel/mychannel"

输出:

{ "tags": [ { "value": "bar", "key": "foo" } ] }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 ListTagsForResource

以下代码示例演示了如何使用 put-logging-options

AWS CLI

设置或更新日志选项

以下 put-logging-options 示例设置或更新 AWS IoT Analytics 日志选项。如果您更新了任何 loggingOptions 字段的值,则最多需要一分钟,更改就能生效。此外,如果您更改附加到您在“roleArn”字段中所指定角色的策略(例如,更正无效策略),则最多需要 5 分钟,更改就能生效。

aws iotanalytics put-logging-options \ --cli-input-json file://put-logging-options.json

put-logging-options.json 的内容:

{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/service-role/myIoTAnalyticsRole", "level": "ERROR", "enabled": true } }

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 PutLoggingOptions

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 PutLoggingOptions

以下代码示例演示了如何使用 run-pipeline-activity

AWS CLI

模拟管道活动

以下 run-pipeline-activity 示例模拟对消息有效载荷运行管道活动的结果。

aws iotanalytics run-pipeline-activity \ --pipeline-activity file://maths.json \ --payloads file://payloads.json

maths.json 的内容:

{ "math": { "name": "MyMathActivity", "math": "((temp - 32) * 5.0) / 9.0", "attribute": "tempC" } }

payloads.json 的内容:

[ "{\"humidity\": 52, \"temp\": 68 }", "{\"humidity\": 52, \"temp\": 32 }" ]

输出:

{ "logResult": "", "payloads": [ "eyJodW1pZGl0eSI6NTIsInRlbXAiOjY4LCJ0ZW1wQyI6MjB9", "eyJodW1pZGl0eSI6NTIsInRlbXAiOjMyLCJ0ZW1wQyI6MH0=" ] }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 RunPipelineActivity

以下代码示例演示了如何使用 sample-channel-data

AWS CLI

从通道检索样本消息

以下 sample-channel-data 示例从指定时间段内接收的指定通道中检索消息样本。您最多可以检索 10 条消息。

aws iotanalytics sample-channel-data \ --channel-name mychannel

输出:

{ "payloads": [ "eyAidGVtcGVyYXR1cmUiOiAyMCB9", "eyAiZm9vIjogImJhciIgfQ==" ] }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 SampleChannelData

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 SampleChannelData

以下代码示例演示了如何使用 start-pipeline-reprocessing

AWS CLI

启动管道重新处理

以下 start-pipeline-reprocessing 示例启动通过指定管道重新处理原始消息数据。

aws iotanalytics start-pipeline-reprocessing \ --pipeline-name mypipeline

输出:

{ "reprocessingId": "6ad2764f-fb13-4de3-b101-4e74af03b043" }

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 StartPipelineReprocessing

以下代码示例演示了如何使用 tag-resource

AWS CLI

添加或修改资源的标签

以下 tag-resource 示例添加或修改附加到指定资源的标签。

aws iotanalytics tag-resource \ --resource-arn "arn:aws:iotanalytics:us-west-2:123456789012:channel/mychannel" \ --tags "[{\"key\": \"Environment\", \"value\": \"Production\"}]"

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 TagResource

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 TagResource

以下代码示例演示了如何使用 untag-resource

AWS CLI

从资源中删除标签

以下 untag-resource 示例从指定资源移除具有指定键名的标签。

aws iotanalytics untag-resource \ --resource-arn "arn:aws:iotanalytics:us-west-2:123456789012:channel/mychannel" \ --tag-keys "[\"Environment\"]"

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的“UntagResource”<https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_UntagResource.html>。

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UntagResource

以下代码示例演示了如何使用 update-channel

AWS CLI

修改通道

以下 update-channel 示例修改了指定通道的设置。

aws iotanalytics update-channel \ --cli-input-json file://update-channel.json

update-channel.json 的内容:

{ "channelName": "mychannel", "retentionPeriod": { "numberOfDays": 92 } }

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 UpdateChannel

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateChannel

以下代码示例演示了如何使用 update-dataset

AWS CLI

更新数据集

以下 update-dataset 示例修改指定数据集的设置。

aws iotanalytics update-dataset \ --cli-input-json file://update-dataset.json

update-dataset.json 的内容:

{ "datasetName": "mydataset", "actions": [ { "actionName": "myDatasetUpdateAction", "queryAction": { "sqlQuery": "SELECT * FROM mydatastore" } } ], "retentionPeriod": { "numberOfDays": 92 } }

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的“UpdateDataset”<https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_UpdateDataset.html>。

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateDataset

以下代码示例演示了如何使用 update-datastore

AWS CLI

更新数据存储

以下 update-datastore 示例修改指定数据存储的设置。

aws iotanalytics update-datastore \ --cli-input-json file://update-datastore.json

update-datastore.json 的内容:

{ "datastoreName": "mydatastore", "retentionPeriod": { "numberOfDays": 93 } }

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 UpdateDatastore

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateDatastore

以下代码示例演示了如何使用 update-pipeline

AWS CLI

更新管道

以下 update-pipeline 示例修改指定管道的设置。您必须同时指定一个通道和一个数据存储活动,以及可选择性地指定 pipelineActivities 数组中最多 23 个额外活动。

aws iotanalytics update-pipeline \ --cli-input-json file://update-pipeline.json

update-pipeline.json 的内容:

{ "pipelineName": "mypipeline", "pipelineActivities": [ { "channel": { "name": "myChannelActivity", "channelName": "mychannel", "next": "myMathActivity" } }, { "datastore": { "name": "myDatastoreActivity", "datastoreName": "mydatastore" } }, { "math": { "name": "myMathActivity", "math": "(((temp - 32) * 5.0) / 9.0) + 273.15", "attribute": "tempK", "next": "myDatastoreActivity" } } ] }

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Analytics API 参考》中的 UpdatePipeline

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdatePipeline