AWS IoT Greengrass V2 範例使用 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS IoT Greengrass V2 範例使用 AWS CLI

下列程式碼範例說明如何使用 AWS Command Line Interface 與來執行動作及實作常見案例 AWS IoT Greengrass V2。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境和跨服務範例中查看內容中的動作。

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用associate-service-role-to-account

AWS CLI

將 Greengrass 服務角色與您的帳戶相關聯 AWS

下列associate-service-role-to-account範例會將服務角色與您帳戶的 AWS IoT Greengrass 產生關聯。 AWS

aws greengrassv2 associate-service-role-to-account \ --role-arn arn:aws:iam::123456789012:role/service-role/Greengrass_ServiceRole

輸出:

{ "associatedAt": "2022-01-19T19:21:53Z" }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的《Greeng rass 服務角色》。

下列程式碼範例會示範如何使用batch-associate-client-device-with-core-device

AWS CLI

建立用戶端裝置與核心裝置的關聯

下列batch-associate-client-device-with-core-device範例會將兩個用戶端裝置與核心裝置產生關聯。

aws greengrassv2 batch-associate-client-device-with-core-device \ --core-device-thing-name MyGreengrassCore \ --entries thingName=MyClientDevice1 thingName=MyClientDevice2

輸出:

{ "errorEntries": [] }

如需詳細資訊,請參閱 IoT Greengrass V2 開發人員指南中的與本機AWS IoT 裝置互動

下列程式碼範例會示範如何使用batch-disassociate-client-device-from-core-device

AWS CLI

取消用戶端裝置與核心裝置的關聯

下列batch-disassociate-client-device-from-core-device範例會取消兩個用戶端裝置與核心裝置的關聯。

aws greengrassv2 batch-disassociate-client-device-from-core-device \ --core-device-thing-name MyGreengrassCore \ --entries thingName=MyClientDevice1 thingName=MyClientDevice2

輸出:

{ "errorEntries": [] }

如需詳細資訊,請參閱 IoT Greengrass V2 開發人員指南中的與本機AWS IoT 裝置互動

下列程式碼範例會示範如何使用cancel-deployment

AWS CLI

取消部署的步驟

下列cancel-deployment範例會停止連續部署至物件群組。

aws greengrassv2 cancel-deployment \ --deployment-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

輸出:

{ "message": "SUCCESS" }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的取消部署

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CancelDeployment中的。

下列程式碼範例會示範如何使用create-component-version

AWS CLI

範例 1:若要從方案建立元件版本

下列create-component-version範例會從配方檔案建立 Hello World 組件的版本。

aws greengrassv2 create-component-version \ --inline-recipe fileb://com.example.HelloWorld-1.0.0.json

com.example.HelloWorld-1.0.0.json 的內容:

{ "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.HelloWorld", "ComponentVersion": "1.0.0", "ComponentDescription": "My first AWS IoT Greengrass component.", "ComponentPublisher": "Amazon", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "world" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "Run": "echo 'Hello {configuration:/Message}'" } } ] }

輸出:

{ "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "2021-01-07T16:24:33.650000-08:00", "status": { "componentState": "REQUESTED", "message": "NONE", "errors": {} } }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的建立自訂元件和上傳要部署的元件。

範例 2:若要從 AWS Lambda 函數建立元件版本

下列create-component-version範例會從 AWS Lambda 函數建立 Hello World 元件的版本。

aws greengrassv2 create-component-version \ --cli-input-json file://lambda-function-component.json

lambda-function-component.json 的內容:

{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:HelloWorldPythonLambda:1", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "componentLambdaParameters": { "eventSources": [ { "topic": "hello/world/+", "type": "IOT_CORE" } ] } } }

輸出:

{ "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "2021-01-07T17:05:27.347000-08:00", "status": { "componentState": "REQUESTED", "message": "NONE", "errors": {} } }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的執行 AWS Lambda 函數

下列程式碼範例會示範如何使用create-deployment

AWS CLI

範例 1:建立部署

下列create-deployment範例會將 AWS IoT Greengrass 命令列介面部署至核心裝置。

aws greengrassv2 create-deployment \ --cli-input-json file://cli-deployment.json

cli-deployment.json 的內容:

{ "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", "deploymentName": "Deployment for MyGreengrassCore", "components": { "aws.greengrass.Cli": { "componentVersion": "2.0.3" } }, "deploymentPolicies": { "failureHandlingPolicy": "DO_NOTHING", "componentUpdatePolicy": { "timeoutInSeconds": 60, "action": "NOTIFY_COMPONENTS" }, "configurationValidationPolicy": { "timeoutInSeconds": 60 } }, "iotJobConfiguration": {} }

輸出:

{ "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的建立部署

範例 2:建立更新元件組態的部署

下列create-deployment範例會將 AWS IoT Greengrass 核心元件部署到一組核心裝置。此部署會針對核心元件套用下列組態更新:

將目標裝置的 Proxy 設定重設為其預設的無代理伺服器設定。將目標裝置的 MQTT 設定重設為其預設值。設定核心 JVMT 的 JVM 選項。

aws greengrassv2 create-deployment \ --cli-input-json file://nucleus-deployment.json

nucleus-deployment.json 的內容:

{ "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "deploymentName": "Deployment for MyGreengrassCoreGroup", "components": { "aws.greengrass.Nucleus": { "componentVersion": "2.0.3", "configurationUpdate": { "reset": [ "/networkProxy", "/mqtt" ], "merge": "{\"jvmOptions\":\"-Xmx64m\",\"logging\":{\"level\":\"WARN\"}}" } } }, "deploymentPolicies": { "failureHandlingPolicy": "ROLLBACK", "componentUpdatePolicy": { "timeoutInSeconds": 60, "action": "NOTIFY_COMPONENTS" }, "configurationValidationPolicy": { "timeoutInSeconds": 60 } }, "iotJobConfiguration": {} }

輸出:

{ "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的建立部署更新元件組態

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateDeployment中的。

下列程式碼範例會示範如何使用delete-component

AWS CLI

若要刪除元件版本

下列delete-component範例會刪除 Hello World 元件。

aws greengrassv2 delete-component \ --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的管理元件

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteComponent中的。

下列程式碼範例會示範如何使用delete-core-device

AWS CLI

刪除核心裝置

下列delete-core-device範例會刪除 AWS IoT 核心裝置。

aws greengrassv2 delete-core-device \ --core-device-thing-name MyGreengrassCore

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的解除安裝 AWS IoT Greeng rass 核心軟體

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteCoreDevice中的。

下列程式碼範例會示範如何使用describe-component

AWS CLI

說明元件版本

下面的describe-component例子描述了一個 Hello World 組件。

aws greengrassv2 describe-component \ --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0

輸出:

{ "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "2021-01-07T17:12:11.133000-08:00", "publisher": "Amazon", "description": "My first AWS IoT Greengrass component.", "status": { "componentState": "DEPLOYABLE", "message": "NONE", "errors": {} }, "platforms": [ { "attributes": { "os": "linux" } } ] }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的管理元件

下列程式碼範例會示範如何使用disassociate-service-role-from-account

AWS CLI

若要取消 Greengrass 服務角色與您帳戶的關聯 AWS

下列disassociate-service-role-from-account範例會將 Greengrass 服務角色與您帳戶的 AWS IoT 服務角色取消關聯。 AWS

aws greengrassv2 disassociate-service-role-from-account

輸出:

{ "disassociatedAt": "2022-01-19T19:26:09Z" }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的《Greeng rass 服務角色》。

下列程式碼範例會示範如何使用get-component-version-artifact

AWS CLI

取得下載元件人工因素的 URL

下列get-component-version-artifact範例會取得下載本機偵錯主控台元件的 JAR 檔案的 URL。

aws greengrassv2 get-component-version-artifact \ --arn arn:aws:greengrass:us-west-2:aws:components:aws.greengrass.LocalDebugConsole:versions:2.0.3 \ --artifact-name "Uvt6ZEzQ9TKiAuLbfXBX_APdY0TWks3uc46tHFHTzBM=/aws.greengrass.LocalDebugConsole.jar"

輸出:

{ "preSignedUrl": "https://evergreencomponentmanageme-artifactbucket7410c9ef-g18n1iya8kwr.s3.us-west-2.amazonaws.com/public/aws.greengrass.LocalDebugConsole/2.0.3/s3/ggv2-component-releases-prod-pdx/EvergreenHttpDebugView/2ffc496ba41b39568968b22c582b4714a937193ee7687a45527238e696672521/aws.greengrass.LocalDebugConsole/aws.greengrass.LocalDebugConsole.jar?X-Amz-Security-Token=KwfLKSdEXAMPLE..." }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的管理元件

下列程式碼範例會示範如何使用get-component

AWS CLI

範例 1:若要下載 YAML 格式的元件配方 (Linux、macOS 或 Unix)

下列get-component範例會將 Hello World 元件的方案下載至 YAML 格式的檔案。此命令會執行下列動作:

使用--output--query參數來控制命令的輸出。這些參數會從命令的輸出中擷取配方 blob。若要取得有關控制輸出的更多資訊,請參閱《指行介面使用指南》中的〈控制指AWS 令輸出〉。使用base64公用程式 此實用程序將提取的 blob 解碼為原始文本。成功get-component命令所傳回的 blob 是 base64 編碼的文字。您必須解碼此 blob 以獲取原始文本。將解碼的文本保存到文件中。命令的最後一部分(> com.example.HelloWorld-1.0.0.json)將解碼的文本保存到文件中。

aws greengrassv2 get-component \ --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0 \ --recipe-output-format YAML \ --query recipe \ --output text | base64 --decode > com.example.HelloWorld-1.0.0.json

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的管理元件

範例 2:若要下載 YAML 格式的元件方案 (視窗 CMD)

下列get-component範例會將 Hello World 元件的方案下載至 YAML 格式的檔案。此命令使用該certutil實用程序。

aws greengrassv2 get-component ^ --arn arn:aws:greengrass:us-west-2:675946970638:components:com.example.HelloWorld:versions:1.0.0 ^ --recipe-output-format YAML ^ --query recipe ^ --output text > com.example.HelloWorld-1.0.0.yaml.b64 certutil -decode com.example.HelloWorld-1.0.0.yaml.b64 com.example.HelloWorld-1.0.0.yaml

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的管理元件

範例 3:若要下載 YAML 格式的元件方法 (視窗 PowerShell)

下列get-component範例會將 Hello World 元件的方案下載至 YAML 格式的檔案。此命令使用該certutil實用程序。

aws greengrassv2 get-component ` --arn arn:aws:greengrass:us-west-2:675946970638:components:com.example.HelloWorld:versions:1.0.0 ` --recipe-output-format YAML ` --query recipe ` --output text > com.example.HelloWorld-1.0.0.yaml.b64 certutil -decode com.example.HelloWorld-1.0.0.yaml.b64 com.example.HelloWorld-1.0.0.yaml

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的管理元件

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetComponent中的。

下列程式碼範例會示範如何使用get-connectivity-info

AWS CLI

若要取得 Greengrass 核心裝置的連線資訊

下列get-connectivity-info範例會取得 Greengrass 核心裝置的連線資訊。用戶端裝置會使用此資訊來連線至此核心裝置上執行的 MQTT 代理程式。

aws greengrassv2 get-connectivity-info \ --thing-name MyGreengrassCore

輸出:

{ "connectivityInfo": [ { "id": "localIP_192.0.2.0", "hostAddress": "192.0.2.0", "portNumber": 8883 } ] }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的管理核心裝置端點

下列程式碼範例會示範如何使用get-core-device

AWS CLI

若要取得核心裝置

下列get-core-device範例會取得有關 AWS IoT Greengrass 核心裝置的資訊。

aws greengrassv2 get-core-device \ --core-device-thing-name MyGreengrassCore

輸出:

{ "coreDeviceThingName": "MyGreengrassCore", "coreVersion": "2.0.3", "platform": "linux", "architecture": "amd64", "status": "HEALTHY", "lastStatusUpdateTimestamp": "2021-01-08T04:57:58.838000-08:00", "tags": {} }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的檢查核心裝置狀態

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetCoreDevice中的。

下列程式碼範例會示範如何使用get-deployment

AWS CLI

若要取得部署

下列get-deployment範例會取得有關將 AWS IoT Greengrass 核心元件部署到核心裝置群組的相關資訊。

aws greengrassv2 get-deployment \ --deployment-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

輸出:

{ "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "revisionId": "14", "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "deploymentName": "Deployment for MyGreengrassCoreGroup", "deploymentStatus": "ACTIVE", "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "components": { "aws.greengrass.Nucleus": { "componentVersion": "2.0.3", "configurationUpdate": { "merge": "{\"jvmOptions\":\"-Xmx64m\",\"logging\":{\"level\":\"WARN\"}}", "reset": [ "/networkProxy", "/mqtt" ] } } }, "deploymentPolicies": { "failureHandlingPolicy": "ROLLBACK", "componentUpdatePolicy": { "timeoutInSeconds": 60, "action": "NOTIFY_COMPONENTS" }, "configurationValidationPolicy": { "timeoutInSeconds": 60 } }, "iotJobConfiguration": {}, "creationTimestamp": "2021-01-07T17:21:20.691000-08:00", "isLatestForTarget": false, "tags": {} }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的將元件部署到裝置。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetDeployment中的。

下列程式碼範例會示範如何使用get-service-role-for-account

AWS CLI

若要取得您帳戶的 Greengrass 色服務角色 AWS

下列get-service-role-for-account範例會取得與您帳戶之 AWS IoT Greengrass 相關聯的服務角色。 AWS

aws greengrassv2 get-service-role-for-account

輸出:

{ "associatedAt": "2022-01-19T19:21:53Z", "roleArn": "arn:aws:iam::123456789012:role/service-role/Greengrass_ServiceRole" }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的《Greeng rass 服務角色》。

下列程式碼範例會示範如何使用list-client-devices-associated-with-core-device

AWS CLI

列出與核心裝置相關聯的用戶端裝置

下列list-client-devices-associated-with-core-device範例會列出與核心裝置相關聯的所有用戶端裝置。

aws greengrassv2 list-client-devices-associated-with-core-device \ --core-device-thing-name MyTestGreengrassCore

輸出:

{ "associatedClientDevices": [ { "thingName": "MyClientDevice2", "associationTimestamp": "2021-07-12T16:33:55.843000-07:00" }, { "thingName": "MyClientDevice1", "associationTimestamp": "2021-07-12T16:33:55.843000-07:00" } ] }

如需詳細資訊,請參閱 IoT Greengrass V2 開發人員指南中的與本機AWS IoT 裝置互動

下列程式碼範例會示範如何使用list-component-versions

AWS CLI

若要列出元件的版本

下列list-component-versions範例會列出 Hello World 元件的所有版本。

aws greengrassv2 list-component-versions \ --arn arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld

輸出:

{ "componentVersions": [ { "componentName": "com.example.HelloWorld", "componentVersion": "1.0.1", "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.1" }, { "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0" } ] }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的管理元件

下列程式碼範例會示範如何使用list-components

AWS CLI

列出元件

下列list-components範例會列出目前「區域」中您 AWS 帳戶中定義的每個元件及其最新版本。

aws greengrassv2 list-components

輸出:

{ "components": [ { "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld", "componentName": "com.example.HelloWorld", "latestVersion": { "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.1", "componentVersion": "1.0.1", "creationTimestamp": "2021-01-08T16:51:07.352000-08:00", "description": "My first AWS IoT Greengrass component.", "publisher": "Amazon", "platforms": [ { "attributes": { "os": "linux" } } ] } } ] }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的管理元件

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考ListComponents中的。

下列程式碼範例會示範如何使用list-core-devices

AWS CLI

若要列出核心裝置

下列list-core-devices範例會列出目前區域中您 AWS 帳戶中的 AWS IoT Greengrass 核心裝置。

aws greengrassv2 list-core-devices

輸出:

{ "coreDevices": [ { "coreDeviceThingName": "MyGreengrassCore", "status": "HEALTHY", "lastStatusUpdateTimestamp": "2021-01-08T04:57:58.838000-08:00" } ] }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的檢查核心裝置狀態

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考ListCoreDevices中的。

下列程式碼範例會示範如何使用list-deployments

AWS CLI

列出部署的步驟

下列list-deployments範例會列出目前區域中您 AWS 帳戶中所定義之每個部署的最新修訂版本。

aws greengrassv2 list-deployments

輸出:

{ "deployments": [ { "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "revisionId": "14", "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "deploymentName": "Deployment for MyGreengrassCoreGroup", "creationTimestamp": "2021-01-07T17:21:20.691000-08:00", "deploymentStatus": "ACTIVE", "isLatestForTarget": false }, { "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", "revisionId": "1", "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "deploymentName": "Deployment for MyGreengrassCore", "creationTimestamp": "2021-01-06T16:10:42.407000-08:00", "deploymentStatus": "COMPLETED", "isLatestForTarget": false } ] }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的將元件部署到裝置。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考ListDeployments中的。

下列程式碼範例會示範如何使用list-effective-deployments

AWS CLI

列出部署工作的步驟

下列list-effective-deployments範例會列出套用至 AWS IoT Greengrass 核心裝置的部署。

aws greengrassv2 list-effective-deployments \ --core-device-thing-name MyGreengrassCore

輸出:

{ "effectiveDeployments": [ { "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "deploymentName": "Deployment for MyGreengrassCore", "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", "coreDeviceExecutionStatus": "COMPLETED", "reason": "SUCCESSFUL", "creationTimestamp": "2021-01-06T16:10:42.442000-08:00", "modifiedTimestamp": "2021-01-08T17:21:27.830000-08:00" }, { "deploymentId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "deploymentName": "Deployment for MyGreengrassCoreGroup", "iotJobId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE44444", "iotJobArn": "arn:aws:iot:us-west-2:123456789012:job/a1b2c3d4-5678-90ab-cdef-EXAMPLE44444", "targetArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "coreDeviceExecutionStatus": "SUCCEEDED", "reason": "SUCCESSFUL", "creationTimestamp": "2021-01-07T17:19:20.394000-08:00", "modifiedTimestamp": "2021-01-07T17:21:20.721000-08:00" } ] }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的檢查核心裝置狀態

下列程式碼範例會示範如何使用list-installed-components

AWS CLI

列出核心裝置上安裝的元件

下列list-installed-components範例會列出安裝在 AWS IoT Greengrass 核心裝置上的元件。

aws greengrassv2 list-installed-components \ --core-device-thing-name MyGreengrassCore

輸出:

{ "installedComponents": [ { "componentName": "aws.greengrass.Cli", "componentVersion": "2.0.3", "lifecycleState": "RUNNING", "isRoot": true }, { "componentName": "aws.greengrass.Nucleus", "componentVersion": "2.0.3", "lifecycleState": "FINISHED", "isRoot": true } ] }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的檢查核心裝置狀態

下列程式碼範例會示範如何使用list-tags-for-resource

AWS CLI

若要列出資源的標籤

下列list-tags-for-resource範例會列出 AWS IoT Greengrass 核心裝置的所有標籤。

aws greengrassv2 list-tags-for-resource \ --resource-arn arn:aws:greengrass:us-west-2:123456789012:coreDevices:MyGreengrassCore

輸出:

{ "tags": { "Owner": "richard-roe" } }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的標記您的資源

下列程式碼範例會示範如何使用tag-resource

AWS CLI

將標籤加入資源

下列tag-resource範例會將擁有者標籤新增至 AWS IoT Greengrass 核心裝置。您可以使用此標籤,根據核心裝置的擁有者控制對核心裝置的存取。

aws greengrassv2 tag-resource \ --resource-arn arn:aws:greengrass:us-west-2:123456789012:coreDevices:MyGreengrassCore \ --tags Owner=richard-roe

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的標記您的資源

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考TagResource中的。

下列程式碼範例會示範如何使用untag-resource

AWS CLI

若要從資源中移除標籤

下列untag-resource範例會從 AWS IoT Greengrass 核心裝置移除擁有者標籤。

aws iotsitewise untag-resource \ --resource-arn arn:aws:greengrass:us-west-2:123456789012:coreDevices:MyGreengrassCore \ --tag-keys Owner

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的標記您的資源

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UntagResource中的。

下列程式碼範例會示範如何使用update-connectivity-info

AWS CLI

若要更新 Greengrass 核心裝置的連線資訊

下列update-connectivity-info範例會取得 Greengrass 核心裝置的連線資訊。用戶端裝置會使用此資訊來連線至此核心裝置上執行的 MQTT 代理程式。

aws greengrassv2 update-connectivity-info \ --thing-name MyGreengrassCore \ --cli-input-json file://core-device-connectivity-info.json

core-device-connectivity-info.json 的內容:

{ "connectivityInfo": [ { "hostAddress": "192.0.2.0", "portNumber": 8883, "id": "localIP_192.0.2.0" } ] }

輸出:

{ "version": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

如需詳細資訊,請參閱 AWS IoT Greengrass V2 開發人員指南中的管理核心裝置端點