Verwalten von lokalen Bereitstellungen und Komponenten - AWS IoT Greengrass

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwalten von lokalen Bereitstellungen und Komponenten

Anmerkung

Diese Funktion ist für v2.6.0 und höher der Greengrass-Kernkomponente verfügbar.

Verwenden Sie den Greengrass CLI IPC-Service, um lokale Bereitstellungen und Greengrass-Komponenten auf dem Core-Gerät zu verwalten.

Um diese IPC-Operationen zu verwenden, fügen Sie Version 2.6.0 oder höher der Greengrass-CLI-Komponente als Abhängigkeit in Ihre benutzerdefinierte Komponente ein. Sie können dann IPC-Operationen in Ihren benutzerdefinierten Komponenten verwenden, um Folgendes zu tun:

  • Erstellen Sie lokale Bereitstellungen, um Greengrass-Komponenten auf dem Core-Gerät zu ändern und zu konfigurieren.

  • Starten und stoppen Sie Greengrass-Komponenten auf dem Core-Gerät neu.

  • Generieren Sie ein Passwort, mit dem Sie sich bei der lokalen Debug-Konsole anmelden können.

SDK-Mindestversionen

In der folgenden Tabelle sind die Mindestversionen von aufgeführtAWS IoT Device SDK, die Sie für die Interaktion mit dem Greengrass CLI IPC-Service verwenden müssen.

Autorisierung

Um den Greengrass CLI IPC-Service in einer benutzerdefinierten Komponente zu verwenden, müssen Sie Autorisierungsrichtlinien definieren, die es Ihrer Komponente ermöglichen, lokale Bereitstellungen und Komponenten zu verwalten. Informationen zum Definieren von Autorisierungsrichtlinien finden Sie unter Autorisieren Sie Komponenten zur Ausführung von Vorgängen IPC.

Autorisierungsrichtlinien für die Greengrass-CLI haben die folgenden Eigenschaften.

IPC-Service-ID: aws.greengrass.Cli

Operation Beschreibung Ressourcen

aws.greengrass#CreateLocalDeployment

Ermöglicht einer Komponente das Erstellen einer lokalen Bereitstellung auf dem Core-Gerät.

*

aws.greengrass#ListLocalDeployments

Ermöglicht einer Komponente, lokale Bereitstellungen auf dem Core-Gerät aufzulisten.

*

aws.greengrass#GetLocalDeploymentStatus

Ermöglicht einer Komponente, den Status einer lokalen Bereitstellung auf dem Core-Gerät abzurufen.

Eine lokale Bereitstellungs-ID oder , * um den Zugriff auf alle lokalen Bereitstellungen zu ermöglichen.

aws.greengrass#ListComponents

Ermöglicht einer Komponente das Auflisten von Komponenten auf dem Core-Gerät.

*

aws.greengrass#GetComponentDetails

Ermöglicht es einer Komponente, Details zu einer Komponente auf dem Core-Gerät abzurufen.

Ein Komponentenname, z. B. oder com.example.HelloWorld, * um den Zugriff auf alle Komponenten zu ermöglichen.

aws.greengrass#RestartComponent

Ermöglicht einer Komponente den Neustart einer Komponente auf dem Core-Gerät.

Ein Komponentenname, z. B. oder com.example.HelloWorld, * um den Zugriff auf alle Komponenten zu ermöglichen.

aws.greengrass#StopComponent

Ermöglicht einer Komponente, eine Komponente auf dem Core-Gerät zu stoppen.

Ein Komponentenname, z. B. oder com.example.HelloWorld, * um den Zugriff auf alle Komponenten zu ermöglichen.

aws.greengrass#CreateDebugPassword

Ermöglicht es einer Komponente, ein Passwort zu generieren, mit dem sie sich bei der lokalen Debug-Konsolenkomponente anmeldet.

*

Beispiel für eine Autorisierungsrichtlinie

Die folgenden Beispielautorisierungsrichtlinien ermöglichen es einer Komponente, lokale Bereitstellungen zu erstellen, alle lokalen Bereitstellungen und Komponenten anzuzeigen und eine Komponente mit dem Namen neu zu starten und zu stoppencom.example.HelloWorld.

{ "accessControl": { "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:1": { "policyDescription": "Allows access to create local deployments and view deployments and components.", "operations": [ "aws.greengrass#CreateLocalDeployment", "aws.greengrass#ListLocalDeployments", "aws.greengrass#GetLocalDeploymentStatus", "aws.greengrass#ListComponents", "aws.greengrass#GetComponentDetails" ], "resources": [ "*" ] } }, "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:2": { "policyDescription": "Allows access to restart and stop the Hello World component.", "operations": [ "aws.greengrass#RestartComponent", "aws.greengrass#StopComponent" ], "resources": [ "com.example.HelloWorld" ] } } } }

CreateLocalDeployment

Erstellen oder aktualisieren Sie eine lokale Bereitstellung mit bestimmten Komponentenrezepten, Artefakten und Laufzeitargumenten.

Dieser Vorgang bietet die gleiche Funktionalität wie der Befehl „create“ für die Bereitstellung in der Greengrass-CLI.

Anforderung

Die Anforderung dieser Operation hat die folgenden Parameter:

recipeDirectoryPath (Python: recipe_directory_path)

(Optional) Der absolute Pfad zu dem Ordner, der Komponentenrezeptdateien enthält.

artifactDirectoryPath (Python: artifact_directory_path)

(Optional) Der absolute Pfad zu dem Ordner, der die Artefaktdateien enthält, die in die Bereitstellung aufgenommen werden sollen. Der Ordner Artefakte muss die folgende Ordnerstruktur enthalten:

/path/to/artifact/folder/component-name/component-version/artifacts
rootComponentVersionsToAdd (Python: root_component_versions_to_add)

(Optional) Die Komponentenversionen, die auf dem Core-Gerät installiert werden sollen. Dieses Objekt, ComponentToVersionMap, ist eine Zuordnung, die die folgenden Schlüssel-Wert-Paare enthält:

key

Der Name der Komponente.

value

Die Version der Komponente.

rootComponentsToRemove (Python: root_components_to_remove)

(Optional) Die Komponenten, die vom Core-Gerät deinstalliert werden sollen. Geben Sie eine Liste an, in der jeder Eintrag der Name einer Komponente ist.

componentToConfiguration (Python: component_to_configuration)

(Optional) Die Konfiguration wird für jede Komponente in der Bereitstellung aktualisiert. Dieses Objekt, ComponentToConfiguration, ist eine Zuordnung, die die folgenden Schlüssel-Wert-Paare enthält:

key

Der Name der Komponente.

value

Das Konfigurations-Update-JSON-Objekt für die Komponente. Das JSON-Objekt muss das folgende Format haben.

{ "MERGE": { "config-key": "config-value" }, "RESET": [ "path/to/reset/" ] }

Weitere Informationen zu Konfigurationsaktualisierungen finden Sie unter Komponentenkonfigurationen aktualisieren.

componentToRunWithInfo (Python: component_to_run_with_info)

(Optional) Die Laufzeitkonfiguration für jede Komponente in der Bereitstellung. Diese Konfiguration umfasst den Systembenutzer, der die Prozesse jeder Komponente besitzt, und die Systemlimits, die für jede Komponente gelten sollen. Dieses Objekt, ComponentToRunWithInfo, ist eine Zuordnung, die die folgenden Schlüssel-Wert-Paare enthält:

key

Der Name der Komponente.

value

Die Laufzeitkonfiguration für die Komponente. Wenn Sie einen Laufzeitkonfigurationsparameter weglassen, verwendet die -AWS IoT GreengrassCore-Software die Standardwerte, die Sie für den Greengrass-Kern konfigurieren. Dieses Objekt, RunWithInfo, enthält die folgenden Informationen:

posixUser (Python: posix_user)

(Optional) Der POSIX-Systembenutzer und optional die Gruppe, die zum Ausführen dieser Komponente auf Linux-Core-Geräten verwendet werden sollen. Der Benutzer und die Gruppe, falls angegeben, müssen auf jedem Linux-Core-Gerät vorhanden sein. Geben Sie den Benutzer und die Gruppe durch einen Doppelpunkt (:) getrennt im folgenden Format an: user:group. Die Gruppe ist optional. Wenn Sie keine Gruppe angeben, verwendet die AWS IoT Greengrass Core-Software die primäre Gruppe für den Benutzer. Weitere Informationen finden Sie unter Konfigurieren Sie den Benutzer, der die Komponenten ausführt.

windowsUser (Python: windows_user)

(Optional) Der Windows-Benutzer, der zum Ausführen dieser Komponente auf Windows-Core-Geräten verwendet werden soll. Der Benutzer muss auf jedem Windows-Core-Gerät vorhanden sein und sein Name und sein Passwort müssen in der Credentials Manager-Instance des LocalSystem Kontos gespeichert werden. Weitere Informationen finden Sie unter Konfigurieren Sie den Benutzer, der die Komponenten ausführt.

systemResourceLimits (Python: system_resource_limits)

(Optional) Die Systemressourcenlimits, die auf die Prozesse dieser Komponente angewendet werden sollen. Sie können Systemressourcenlimits auf generische und nicht containerisierte Lambda-Komponenten anwenden. Weitere Informationen finden Sie unter Konfigurieren Sie die Systemressourcenlimits für Komponenten.

AWS IoT Greengrass unterstützt diese Funktion derzeit nicht auf Windows-Core-Geräten.

Dieses Objekt, SystemResourceLimits, enthält die folgenden Informationen:

cpus

(Optional) Die maximale CPU-Zeit, die die Prozesse dieser Komponente auf dem Core-Gerät verwenden können. Die gesamte CPU-Zeit eines Core-Geräts entspricht der Anzahl der CPU-Kerne des Geräts. Auf einem Core-Gerät mit 4 CPU-Kernen können Sie diesen Wert beispielsweise auf setzen, 2 um die Prozesse dieser Komponente auf eine Auslastung von 50 Prozent jedes CPU-Kerns zu beschränken. Auf einem Gerät mit 1 CPU-Kern können Sie diesen Wert auf setzen, 0.25 um die Prozesse dieser Komponente auf eine CPU-Auslastung von 25 Prozent zu beschränken. Wenn Sie diesen Wert auf eine Zahl festlegen, die größer als die Anzahl der CPU-Kerne ist, schränkt die AWS IoT Greengrass Core-Software die CPU-Auslastung der Komponente nicht ein.

memory

(Optional) Die maximale Menge an RAM (in Kilobyte), die die Prozesse dieser Komponente auf dem Core-Gerät verwenden können.

groupName (Python: group_name)

(Optional) Der Name der Objektgruppe, auf die mit dieser Bereitstellung abgezielt werden soll.

Antwort

Die Antwort dieser Operation enthält die folgenden Informationen:

deploymentId (Python: deployment_id)

Die ID der lokalen Bereitstellung, die die Anforderung erstellt hat.

ListLocalDeployments

Ruft den Status der letzten 10 lokalen Bereitstellungen ab.

Dieser Vorgang bietet die gleiche Funktionalität wie der Bereitstellungslistenbefehl in der Greengrass-CLI.

Anforderung

Die Anforderung dieser Operation hat keine Parameter.

Antwort

Die Antwort dieser Operation enthält die folgenden Informationen:

localDeployments (Python: local_deployments)

Die Liste der lokalen Bereitstellungen. Jedes Objekt in dieser Liste ist ein LocalDeployment Objekt, das die folgenden Informationen enthält:

deploymentId (Python: deployment_id)

Die ID der lokalen Bereitstellung.

status

Der Status der lokalen Bereitstellung. Diese Aufzählung, DeploymentStatus, hat die folgenden Werte:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

GetLocalDeploymentStatus

Ruft den Status einer lokalen Bereitstellung ab.

Dieser Vorgang bietet die gleiche Funktionalität wie der Bereitstellungsstatusbefehl in der Greengrass-CLI.

Anforderung

Die Anforderung dieser Operation hat die folgenden Parameter:

deploymentId (Python: deployment_id)

Die ID der lokalen Bereitstellung, die abgerufen werden soll.

Antwort

Die Antwort dieser Operation enthält die folgenden Informationen:

deployment

Die lokale Bereitstellung. Dieses Objekt, LocalDeployment, enthält die folgenden Informationen:

deploymentId (Python: deployment_id)

Die ID der lokalen Bereitstellung.

status

Der Status der lokalen Bereitstellung. Diese Aufzählung, DeploymentStatus, hat die folgenden Werte:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

ListComponents

Ruft den Namen, die Version, den Status und die Konfiguration jeder Root-Komponente auf dem Core-Gerät ab. Eine Stammkomponente ist eine Komponente, die Sie in einer Bereitstellung angeben. Diese Antwort enthält keine Komponenten, die als Abhängigkeiten anderer Komponenten installiert sind.

Diese Operation bietet die gleiche Funktionalität wie der Komponentenlistenbefehl in der Greengrass-CLI.

Anforderung

Die Anforderung dieser Operation hat keine Parameter.

Antwort

Die Antwort dieser Operation enthält die folgenden Informationen:

components

Die Liste der Root-Komponenten auf dem Core-Gerät. Jedes Objekt in dieser Liste ist ein ComponentDetails Objekt, das die folgenden Informationen enthält:

componentName (Python: component_name)

Der Name der Komponente.

version

Die Version der Komponente.

state

Der Status der Komponente. Dieser Status kann einer der folgenden sein:

  • BROKEN

  • ERRORED

  • FINISHED

  • INSTALLED

  • NEW

  • RUNNING

  • STARTING

  • STOPPING

configuration

Die Konfiguration der Komponente als JSON-Objekt.

GetComponentDetails

Ruft die Version, den Status und die Konfiguration einer Komponente auf dem Core-Gerät ab.

Diese Operation bietet die gleiche Funktionalität wie der Komponentendetailbefehl in der Greengrass-CLI.

Anforderung

Die Anforderung dieser Operation hat die folgenden Parameter:

componentName (Python: component_name)

Der Name der Komponente, die abgerufen werden soll.

Antwort

Die Antwort dieser Operation enthält die folgenden Informationen:

componentDetails (Python: component_details)

Die Details der Komponente. Dieses Objekt, ComponentDetails, enthält die folgenden Informationen:

componentName (Python: component_name)

Der Name der Komponente.

version

Die Version der Komponente.

state

Der Status der Komponente. Dieser Status kann einer der folgenden sein:

  • BROKEN

  • ERRORED

  • FINISHED

  • INSTALLED

  • NEW

  • RUNNING

  • STARTING

  • STOPPING

configuration

Die Konfiguration der Komponente als JSON-Objekt.

RestartComponent

Startet eine Komponente auf dem Core-Gerät neu.

Anmerkung

Sie können zwar jede Komponente neu starten, wir empfehlen jedoch, nur generische Komponenten neu zu starten.

Dieser Vorgang bietet die gleiche Funktionalität wie der Befehl zum Neustart der Komponente in der Greengrass-CLI.

Anforderung

Die Anforderung dieser Operation hat die folgenden Parameter:

componentName (Python: component_name)

Der Name der Komponente.

Antwort

Die Antwort dieser Operation enthält die folgenden Informationen:

restartStatus (Python: restart_status)

Der Status der Neustartanforderung. Der Anforderungsstatus kann einer der folgenden sein:

  • SUCCEEDED

  • FAILED

message

Eine Meldung darüber, warum die Komponente nicht neu gestartet werden konnte, falls die Anforderung fehlgeschlagen ist.

StopComponent

Stoppt die Prozesse einer Komponente auf dem Core-Gerät.

Anmerkung

Sie können zwar jede Komponente anhalten, wir empfehlen jedoch, nur generische Komponenten anzuhalten.

Diese Operation bietet die gleiche Funktionalität wie der Befehl zum Stoppen von Komponenten in der Greengrass-CLI.

Anforderung

Die Anforderung dieser Operation hat die folgenden Parameter:

componentName (Python: component_name)

Der Name der Komponente.

Antwort

Die Antwort dieser Operation enthält die folgenden Informationen:

stopStatus (Python: stop_status)

Der Status der Stopp-Anforderung. Der Anforderungsstatus kann einer der folgenden sein:

  • SUCCEEDED

  • FAILED

message

Eine Meldung darüber, warum die Komponente nicht gestoppt werden konnte, falls die Anforderung fehlgeschlagen ist.

CreateDebugPassword

Generiert ein zufälliges Passwort, mit dem Sie sich bei der lokalen Debug-Konsolenkomponente anmelden können. Das Passwort läuft 8 Stunden nach seiner Generierung ab.

Diese Operation bietet die gleiche Funktionalität wie der get-debug-password Befehl in der Greengrass-CLI.

Anforderung

Die Anforderung dieser Operation hat keine Parameter.

Antwort

Die Antwort dieser Operation enthält die folgenden Informationen:

username

Der Benutzername, der für die Anmeldung verwendet werden soll.

password

Das Passwort, das für die Anmeldung verwendet werden soll.

passwordExpiration (Python: password_expiration)

Der Zeitpunkt, zu dem das Passwort abläuft.

certificateSHA256Hash (Python: certificate_sha256_hash)

Der SHA-256-Fingerabdruck für das selbstsignierte Zertifikat, das die lokale Debug-Konsole verwendet, wenn HTTPS aktiviert ist. Wenn Sie die lokale Debug-Konsole öffnen, verwenden Sie diesen Fingerabdruck, um zu überprüfen, ob das Zertifikat berechtigt und die Verbindung sicher ist.

certificateSHA1Hash (Python: certificate_sha1_hash)

Der SHA-1-Fingerabdruck für das selbstsignierte Zertifikat, das die lokale Debug-Konsole verwendet, wenn HTTPS aktiviert ist. Wenn Sie die lokale Debug-Konsole öffnen, verwenden Sie diesen Fingerabdruck, um zu überprüfen, ob das Zertifikat berechtigt und die Verbindung sicher ist.