本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
與組件配置互動
元件組態 IPC 服務可讓您執行下列作業:
-
取得並設定元件組態參數。
-
訂閱元件組態更新。
-
在核心套用元件之前,先驗證零組件模型組態更新。
主題
最低 SDK 版本
下表列出與元件組態互動AWS IoT Device SDK所必須使用的最低版本。
SDK | 最低版本 |
---|---|
v1.2.10 |
|
V1.5.3 |
|
v1.17.0 |
|
v1.12.0 |
GetConfiguration
取得核心裝置上元件的組態值。您可以指定要取得組態值的金鑰路徑。
請求
此操作的請求具有以下參數:
componentName
(Python:component_name
)-
(選擇性) 元件的名稱。
默認為發出請求的組件的名稱。
keyPath
(Python:key_path
)-
組態值的關鍵路徑。指定清單,其中每個項目都是組態物件中單一層級的索引鍵。例如,指定
["mqtt", "port"]
以取得下列組態port
中的值。{ "mqtt": { "port": 443 } }
若要取得元件的完整組態,請指定空白清單。
回應
此作業的回應包含下列資訊:
componentName
(Python:component_name
)-
元件的名稱。
value
-
請求的配置作為對象。
UpdateConfiguration
更新核心裝置上此元件的組態值。
請求
此操作的請求具有以下參數:
keyPath
(Python:key_path
)-
(選擇性) 要更新之容器節點 (物件) 的金鑰路徑。指定清單,其中每個項目都是組態物件中單一層級的索引鍵。例如,指定要
port
在下列組態中設{ "port": 443 }
定值的金鑰路徑["mqtt"]
和合併值。{ "mqtt": { "port": 443 } }
索引鍵路徑必須在組態中指定容器節點 (物件)。如果該節點不存在於組件的配置中,則此操作會創建該節點並將其值設置為中的對象
valueToMerge
。預設為配置物件的根目錄。
timestamp
-
目前 Unix 紀元時間 (以毫秒為單位)。此作業會使用此時間戳記來解析金鑰的並行更新。如果元件組態中的索引鍵的時間戳記大於要求中的時間戳記,則要求會失敗。
valueToMerge
(Python:value_to_merge
)-
要在中指定的位置合併的配置物件
keyPath
。如需詳細資訊,請參閱 更新零組件組態。
回應
此操作在其響應中不提供任何信息。
SubscribeToConfigurationUpdate
訂閱以在元件的組態更新時接收通知。當您訂閱金鑰時,您會在該金鑰的任何子系更新時收到通知。
此作業是訂閱作業,您可以在其中訂閱事件訊息串流。若要使用此作業,請定義具有處理事件訊息、錯誤和資料流結束之函數的串流回應處理常式。如需詳細資訊,請參閱 訂閱IPC事件串流。
事件訊息類型:ConfigurationUpdateEvents
請求
此操作的請求具有以下參數:
componentName
(Python:component_name
)-
(選擇性) 元件的名稱。
默認為發出請求的組件的名稱。
keyPath
(Python:key_path
)-
要訂閱之組態值的金鑰路徑。指定清單,其中每個項目都是組態物件中單一層級的索引鍵。例如,指定
["mqtt", "port"]
以取得下列組態port
中的值。{ "mqtt": { "port": 443 } }
若要訂閱元件組態中所有值的更新,請指定空白清單。
回應
此作業的回應包含下列資訊:
messages
-
通知訊息串流。此物件
ConfigurationUpdateEvents
包含下列資訊:configurationUpdateEvent
(Python:configuration_update_event
)-
組態更新事件。此物件
ConfigurationUpdateEvent
包含下列資訊:componentName
(Python:component_name
)-
元件的名稱。
keyPath
(Python:key_path
)-
更新之組態值的索引鍵路徑。
SubscribeToValidateConfigurationUpdates
訂閱以在此元件的組態更新之前接收通知。這可讓元件驗證自己組態的更新。使用此SendConfigurationValidityReport作業告訴核心組態是否有效。
重要
本機部署不會通知更新元件。
此作業是訂閱作業,您可以在其中訂閱事件訊息串流。若要使用此作業,請定義具有處理事件訊息、錯誤和資料流結束之函數的串流回應處理常式。如需詳細資訊,請參閱 訂閱IPC事件串流。
事件訊息類型:ValidateConfigurationUpdateEvents
請求
此操作的請求沒有任何參數。
回應
此作業的回應包含下列資訊:
messages
-
通知訊息串流。此物件
ValidateConfigurationUpdateEvents
包含下列資訊:validateConfigurationUpdateEvent
(Python:validate_configuration_update_event
)-
組態更新事件。此物件
ValidateConfigurationUpdateEvent
包含下列資訊:deploymentId
(Python:deployment_id
)-
更新元件的AWS IoT Greengrass部署識別碼。
configuration
-
包含新組態的物件。
SendConfigurationValidityReport
告訴核心對此元件的組態更新是否有效。如果您告訴核心新設定無效,則部署會失敗。使用此SubscribeToValidateConfigurationUpdates作業來訂閱以驗證組態更新。
如果元件未回應驗證組態更新通知,則核心會等待您在部署的組態驗證原則中指定的時間量。在該逾時之後,核心會繼續進行部署。預設元件驗證逾時為 20 秒。如需詳細資訊,請參閱建立部署和呼叫CreateDeployment作業時可提供的DeploymentConfigurationValidationPolicy物件。
請求
此操作的請求具有以下參數:
configurationValidityReport
(Python:configuration_validity_report
)-
告知核心組態更新是否有效的報告。此物件
ConfigurationValidityReport
包含下列資訊:status
-
有效性狀態。此枚舉具有以下值:
ConfigurationValidityStatus
-
ACCEPTED
— 配置有效,細胞核可以將其應用於此組件。 -
REJECTED
— 設定無效且部署失敗。
-
deploymentId
(Python:deployment_id
)-
要求組態更新的AWS IoT Greengrass部署識別碼。
message
-
(選擇性) 報告設定為何無效的訊息。
回應
此操作在其響應中不提供任何信息。