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.
Sie können eine Bereitstellung erstellen, die auf ein Ding oder eine Dinggruppe abzielt.
Wenn Sie eine Bereitstellung erstellen, konfigurieren Sie die Softwarekomponenten, die bereitgestellt werden sollen, und die Art und Weise, wie der Bereitstellungsauftrag auf den Zielgeräten ausgeführt wird. Sie können die Bereitstellung in der JSON-Datei definieren, die Sie dem zur Verfügung stellen AWS CLI.
Das Bereitstellungsziel bestimmt die Geräte, auf denen Sie Ihre Komponenten ausführen möchten. Um die Bereitstellung auf einem Kerngerät durchzuführen, geben Sie eine Sache an. Um die Bereitstellung auf mehreren Kerngeräten durchzuführen, geben Sie eine Dinggruppe an, die diese Geräte umfasst. Weitere Informationen zur Konfiguration von Dinggruppen finden Sie unter Statische Dinggruppen und Dynamische Dinggruppen im AWS IoT Entwicklerhandbuch.
Folgen Sie den Schritten in diesem Abschnitt, um eine Bereitstellung für ein Ziel zu erstellen. Weitere Informationen zum Aktualisieren der Softwarekomponenten auf einem Ziel, das über eine Bereitstellung verfügt, finden Sie unterBereitstellungen überarbeiten.
Warnung
Bei CreateDeploymentdiesem Vorgang können Komponenten von Kerngeräten deinstalliert werden. Wenn eine Komponente in der vorherigen Bereitstellung und nicht in der neuen Bereitstellung vorhanden ist, deinstalliert das Kerngerät diese Komponente. Um die Deinstallation von Komponenten zu vermeiden, überprüfen Sie anhand des ListDeploymentsVorgangs zunächst, ob das Ziel für die Bereitstellung bereits über eine vorhandene Bereitstellung verfügt. Verwenden Sie dann den GetDeploymentVorgang, um mit dieser vorhandenen Bereitstellung zu beginnen, wenn Sie eine neue Bereitstellung erstellen.
Um eine Bereitstellung zu erstellen (AWS CLI)
-
Erstellen Sie eine Datei mit dem Namen
deployment.json
und kopieren Sie dann das folgende JSON-Objekt in die Datei.targetArn
Ersetzen Sie es durch den ARN des Dings AWS IoT oder der Dinggruppe, auf die die Bereitstellung ausgerichtet werden soll. Ding und Dinggruppe ARNs haben das folgende Format:-
Objekt:
arn:aws:iot:
region
:account-id
:thing/thingName
-
Objektgruppe:
arn:aws:iot:
region
:account-id
:thinggroup/thingGroupName
{ "targetArn": "
targetArn
" } -
-
Prüfen Sie, ob das Bereitstellungsziel über eine bestehende Bereitstellung verfügt, die Sie überarbeiten möchten. Gehen Sie wie folgt vor:
-
Führen Sie den folgenden Befehl aus, um die Bereitstellungen für das Bereitstellungsziel aufzulisten. Ersetze es
targetArn
durch den ARN der AWS IoT Zielsache oder der Ziel-Dinggruppe.aws greengrassv2 list-deployments --target-arn
targetArn
Die Antwort enthält eine Liste mit der neuesten Bereitstellung für das Ziel. Wenn die Antwort leer ist, verfügt das Ziel nicht über eine bestehende Bereitstellung, und Sie können zu wechselnSchritt 3. Andernfalls kopieren Sie die
deploymentId
aus der Antwort, um sie im nächsten Schritt zu verwenden.Anmerkung
Sie können auch eine andere Bereitstellung als die neueste Version für das Ziel überarbeiten. Geben Sie das
--history-filter ALL
Argument an, um alle Bereitstellungen für das Ziel aufzulisten. Kopieren Sie dann die ID der Bereitstellung, die Sie überarbeiten möchten. -
Führen Sie den folgenden Befehl aus, um die Details der Bereitstellung abzurufen. Zu diesen Details gehören Metadaten, Komponenten und Auftragskonfiguration.
deploymentId
Ersetzen Sie es durch die ID aus dem vorherigen Schritt.aws greengrassv2 get-deployment --deployment-id
deploymentId
Die Antwort enthält die Details der Bereitstellung.
-
Kopieren Sie eines der folgenden Schlüssel-Wert-Paare aus der Antwort des vorherigen Befehls in.
deployment.json
Sie können diese Werte für die neue Bereitstellung ändern.-
deploymentName
— Der Name der Bereitstellung. -
components
— Die Komponenten der Bereitstellung. Um eine Komponente zu deinstallieren, entfernen Sie sie aus diesem Objekt. -
deploymentPolicies
— Die Richtlinien der Bereitstellung. -
iotJobConfiguration
— Die Jobkonfiguration der Bereitstellung. -
tags
— Die Tags der Bereitstellung.
-
-
-
(Optional) Definieren Sie einen Namen für die Bereitstellung.
deploymentName
Ersetzen Sie ihn durch den Namen der Bereitstellung.{ "targetArn": "
targetArn
", "deploymentName": "deploymentName
" } -
Fügen Sie jede Komponente hinzu, um die Zielgeräte bereitzustellen. Fügen Sie dazu dem
components
Objekt Schlüssel-Wert-Paare hinzu, wobei der Schlüssel der Komponentenname und der Wert ein Objekt ist, das die Details für diese Komponente enthält. Geben Sie für jede Komponente, die Sie hinzufügen, die folgenden Details an:-
version
— Die bereitzustellende Komponentenversion. -
configurationUpdate
— Das bereitzustellende Konfigurationsupdate. Das Update ist ein Patch-Vorgang, der die bestehende Konfiguration der Komponente auf jedem Zielgerät oder die Standardkonfiguration der Komponente ändert, falls sie auf dem Zielgerät nicht vorhanden ist. Sie können die folgenden Konfigurationsupdates angeben:-
Updates zurücksetzen (
reset
) — (Optional) Eine Liste von JSON-Zeigern, die die Konfigurationswerte definieren, die auf dem Zielgerät auf ihre Standardwerte zurückgesetzt werden sollen. Die AWS IoT Greengrass Core-Software wendet Reset-Updates an, bevor sie Merge-Updates anwendet. Weitere Informationen finden Sie unter Updates zurücksetzen. -
Updates zusammenführen (
merge
) — (Optional) Ein JSON-Dokument, das die Konfigurationswerte definiert, die auf dem Zielgerät zusammengeführt werden sollen. Sie müssen das JSON-Dokument als Zeichenfolge serialisieren. Weitere Informationen finden Sie unter Updates zusammenführen.
-
-
runWith
— (Optional) Die Systemprozessoptionen, die die AWS IoT Greengrass Core-Software verwendet, um die Prozesse dieser Komponente auf dem Core-Gerät auszuführen. Wenn Sie einen Parameter imrunWith
Objekt weglassen, verwendet die AWS IoT Greengrass Core-Software die Standardwerte, die Sie für die Greengrass Nucleus-Komponente konfigurieren.Sie können eine der folgenden Optionen angeben:
-
posixUser
— Der POSIX-Systembenutzer und optional die Gruppe, die verwendet werden sollen, um diese Komponente auf Linux-Kerngeräten auszuführen. 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
— Der Windows-Benutzer, der für die Ausführung 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 Passwort müssen in der Credentials Manager-Instanz des LocalSystem Kontos gespeichert sein. Weitere Informationen finden Sie unter Konfigurieren Sie den Benutzer, der die Komponenten ausführt.Diese Funktion ist für Version 2.5.0 und höher der Greengrass Nucleus-Komponente verfügbar.
-
systemResourceLimits
— Die Systemressourcenlimits, die für die Prozesse dieser Komponente gelten 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.Sie können eine der folgenden Optionen angeben:
-
cpus
— Die maximale Menge an CPU-Zeit, die die Prozesse dieser Komponente auf dem Kerngerä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 festlegen,2
um die Prozesse dieser Komponente auf 50 Prozent der Auslastung jedes CPU-Kerns zu beschränken. Auf einem Gerät mit einem CPU-Kern können Sie diesen Wert auf festlegen,0.25
um die Prozesse dieser Komponente auf 25 Prozent der CPU-Auslastung zu beschränken. Wenn Sie diesen Wert auf eine Zahl festlegen, die größer als die Anzahl der CPU-Kerne ist, begrenzt die AWS IoT Greengrass Core-Software die CPU-Auslastung der Komponente nicht. -
memory
— Die maximale Menge an RAM (in Kilobyte), die die Prozesse dieser Komponente auf dem Kerngerät verwenden können.
Diese Funktion ist für Version 2.4.0 und höher der Greengrass Nucleus-Komponente verfügbar. AWS IoT Greengrass unterstützt diese Funktion derzeit nicht auf Windows Core-Geräten.
-
-
Beispiel für ein Update der Grundkonfiguration
Das folgende
components
Beispielobjekt gibt an, dass eine Komponente bereitgestellt werden sollcom.example.PythonRuntime
, die einen Konfigurationsparameter mit dem Namen erwartetpythonVersion
.{ "targetArn": "
targetArn
", "deploymentName": "deploymentName
", "components": { "com.example.PythonRuntime": { "componentVersion": "1.0.0", "configurationUpdate": { "merge": "{\"pythonVersion\":\"3.7\"}" } } } }Beispiel für ein Konfigurationsupdate mit Updates zum Zurücksetzen und Zusammenführen
Stellen Sie sich ein Beispiel für eine industrielle Dashboard-Komponente vor
com.example.IndustrialDashboard
, die die folgende Standardkonfiguration hat.{ "name": null, "mode": "REQUEST", "network": { "useHttps": true, "port": { "http": 80, "https": 443 }, }, "tags": [] }
Das folgende Konfigurationsupdate spezifiziert die folgenden Anweisungen:
-
Setzen Sie die HTTPS-Einstellung auf ihren Standardwert zurück (
true
). -
Setzt die Liste der Industrietags auf eine leere Liste zurück.
-
Führen Sie eine Liste von Industriekennzeichnungen zusammen, die Temperatur- und Druckdatenströme für zwei Kessel identifizieren.
{ "reset": [ "/network/useHttps", "/tags" ], "merge": { "tags": [ "/boiler/1/temperature", "/boiler/1/pressure", "/boiler/2/temperature", "/boiler/2/pressure" ] } }
Das folgende
components
Beispielobjekt gibt an, dass diese industrielle Dashboard-Komponente und das Konfigurationsupdate bereitgestellt werden sollen.{ "targetArn": "
targetArn
", "deploymentName": "deploymentName
", "components": { "com.example.IndustrialDashboard": { "componentVersion": "1.0.0", "configurationUpdate": { "reset": [ "/network/useHttps", "/tags" ], "merge": "{\"tags\":[\"/boiler/1/temperature\",\"/boiler/1/pressure\",\"/boiler/2/temperature\",\"/boiler/2/pressure\"]}" } } } } -
-
(Optional) Definieren Sie Bereitstellungsrichtlinien für die Bereitstellung. Sie können konfigurieren, wann Kerngeräte eine Bereitstellung sicher anwenden können oder was zu tun ist, wenn ein Kerngerät die Bereitstellung nicht anwendet. Fügen Sie dazu ein
deploymentPolicies
Objekt hinzudeployment.json
und führen Sie dann einen der folgenden Schritte aus:-
(Optional) Geben Sie die Richtlinie für das Komponenten-Update an (
componentUpdatePolicy
). Diese Richtlinie definiert, ob die Bereitstellung es Komponenten ermöglicht, ein Update aufzuschieben, bis sie zur Aktualisierung bereit sind. Beispielsweise müssen Komponenten möglicherweise Ressourcen bereinigen oder wichtige Aktionen abschließen, bevor sie neu gestartet werden können, um ein Update zu installieren. Diese Richtlinie legt auch fest, wie lange Komponenten Zeit haben, um auf eine Aktualisierungsbenachrichtigung zu reagieren.Diese Richtlinie ist ein Objekt mit den folgenden Parametern:
-
action
— (Optional) Ob Komponenten benachrichtigt und darauf gewartet werden sollen, dass sie melden, wenn sie zur Aktualisierung bereit sind. Wählen Sie aus den folgenden Optionen aus:-
NOTIFY_COMPONENTS
– Die Bereitstellung benachrichtigt jede Komponente, bevor diese Komponente gestoppt und aktualisiert wird. Komponenten können den SubscribeToComponentUpdates IPC-Vorgang verwenden, um diese Benachrichtigungen zu empfangen. -
SKIP_NOTIFY_COMPONENTS
– Die Bereitstellung benachrichtigt die Komponenten nicht und wartet nicht darauf, dass sie sicher aktualisiert werden können.
Standardeinstellung:
NOTIFY_COMPONENTS
. -
-
timeoutInSeconds
Die Zeit in Sekunden, die jede Komponente benötigt, um auf eine Aktualisierungsbenachrichtigung mit dem DeferComponentUpdate IPC-Vorgang zu reagieren. Wenn die Komponente innerhalb dieser Zeit nicht reagiert, wird die Bereitstellung auf dem Kerngerät fortgesetzt.Die Standardeinstellung ist 60 Sekunden.
-
-
(Optional) Geben Sie die Richtlinie zur Konfigurationsvalidierung an (
configurationValidationPolicy
). Diese Richtlinie definiert, wie lange jede Komponente Zeit hat, um ein Konfigurationsupdate aus einer Bereitstellung zu validieren. Komponenten können den SubscribeToValidateConfigurationUpdates IPC-Vorgang verwenden, um Benachrichtigungen für ihre eigenen Konfigurationsupdates zu abonnieren. Anschließend können die Komponenten den SendConfigurationValidityReport IPC-Vorgang verwenden, um der AWS IoT Greengrass Core-Software mitzuteilen, ob das Konfigurationsupdate gültig ist. Wenn das Konfigurationsupdate nicht gültig ist, schlägt die Bereitstellung fehl.Diese Richtlinie ist ein Objekt mit dem folgenden Parameter:
-
timeoutInSeconds
(Optional) Die Zeit in Sekunden, die jeder Komponente zur Verfügung steht, um ein Konfigurationsupdate zu validieren. Wenn die Komponente innerhalb dieser Zeit nicht reagiert, wird die Bereitstellung auf dem Kerngerät fortgesetzt.Die Standardeinstellung ist 30 Sekunden.
-
-
(Optional) Geben Sie die Richtlinie zur Fehlerbehandlung an (
failureHandlingPolicy
). Diese Richtlinie ist eine Zeichenfolge, die definiert, ob Geräte zurückgesetzt werden sollen, falls die Bereitstellung fehlschlägt. Wählen Sie aus den folgenden Optionen aus:-
ROLLBACK
— Wenn die Bereitstellung auf einem Kerngerät fehlschlägt, setzt die AWS IoT Greengrass Core-Software dieses Kerngerät auf die vorherige Konfiguration zurück. -
DO_NOTHING
— Wenn die Bereitstellung auf einem Kerngerät fehlschlägt, behält die AWS IoT Greengrass Core-Software die neue Konfiguration bei. Dies kann zu defekten Komponenten führen, wenn die neue Konfiguration nicht gültig ist.
Standardeinstellung:
ROLLBACK
. -
Ihre Bereitstellung in
deployment.json
könnte dem folgenden Beispiel ähneln:{ "targetArn": "
targetArn
", "deploymentName": "deploymentName
", "components": { "com.example.IndustrialDashboard": { "componentVersion": "1.0.0", "configurationUpdate": { "reset": [ "/network/useHttps", "/tags" ], "merge": "{\"tags\":[\"/boiler/1/temperature\",\"/boiler/1/pressure\",\"/boiler/2/temperature\",\"/boiler/2/pressure\"]}" } } }, "deploymentPolicies": { "componentUpdatePolicy": { "action": "NOTIFY_COMPONENTS", "timeoutInSeconds": 30 }, "configurationValidationPolicy": { "timeoutInSeconds": 60 }, "failureHandlingPolicy": "ROLLBACK" } } -
-
(Optional) Definieren Sie, wie die Bereitstellung beendet, eingeführt oder wie das Timeout abläuft. AWS IoT Greengrass verwendet AWS IoT Core Jobs, um Bereitstellungen an Kerngeräte zu senden, sodass diese Optionen mit den Konfigurationsoptionen für AWS IoT Core Jobs identisch sind. Weitere Informationen finden Sie unter Job-Rollout und Konfiguration abbrechen im AWS IoT Developer Guide.
Um die Joboptionen zu definieren, fügen Sie ein
iotJobConfiguration
Objekt hinzu.deployment.json
Definieren Sie dann die zu konfigurierenden Optionen.Ihre Bereitstellung in
deployment.json
könnte dem folgenden Beispiel ähneln:{ "targetArn": "
targetArn
", "deploymentName": "deploymentName
", "components": { "com.example.IndustrialDashboard": { "componentVersion": "1.0.0", "configurationUpdate": { "reset": [ "/network/useHttps", "/tags" ], "merge": "{\"tags\":[\"/boiler/1/temperature\",\"/boiler/1/pressure\",\"/boiler/2/temperature\",\"/boiler/2/pressure\"]}" } } }, "deploymentPolicies": { "componentUpdatePolicy": { "action": "NOTIFY_COMPONENTS", "timeoutInSeconds": 30 }, "configurationValidationPolicy": { "timeoutInSeconds": 60 }, "failureHandlingPolicy": "ROLLBACK" }, "iotJobConfiguration": { "abortConfig": { "criteriaList": [ { "action": "CANCEL", "failureType": "ALL", "minNumberOfExecutedThings": 100, "thresholdPercentage": 5 } ] }, "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": 5, "incrementFactor": 2, "rateIncreaseCriteria": { "numberOfNotifiedThings": 10, "numberOfSucceededThings": 5 } }, "maximumPerMinute": 50 }, "timeoutConfig": { "inProgressTimeoutInMinutes": 5 } } } -
(Optional) Fügen Sie Tags (
tags
) für die Bereitstellung hinzu. Weitere Informationen finden Sie unter Kennzeichnen Sie Ihre AWS IoT Greengrass Version 2 Ressourcen. -
Führen Sie den folgenden Befehl aus, um die Bereitstellung von zu erstellen
deployment.json
.aws greengrassv2 create-deployment --cli-input-json file://deployment.json
Die Antwort enthält eine
deploymentId
, die diese Bereitstellung identifiziert. Sie können die Bereitstellungs-ID verwenden, um den Status der Bereitstellung zu überprüfen. Weitere Informationen finden Sie unter Überprüfen Sie den Bereitstellungsstatus.