與組件配置互動 - AWS IoT Greengrass

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

與組件配置互動

元件組態 IPC 服務可讓您執行下列作業:

  • 取得並設定元件組態參數。

  • 訂閱元件組態更新。

  • 在核心套用元件之前,先驗證零組件模型組態更新。

最低 SDK 版本

下表列出與元件組態互動AWS IoT Device SDK所必須使用的最低版本。

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

(選擇性) 報告設定為何無效的訊息。

回應

此操作在其響應中不提供任何信息。