Teilen über


Azure IoT Orchestrator (Preview) – Manifeste

Wichtig

Die von Azure Arc aktivierte Azure IoT Operations Preview befindet sich derzeit in der VORSCHAU. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.

Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Der Azure IoT Orchestrator (Preview)-Dienst erweitert die Ressourcenverwaltungsfunktionen von Azure über die Cloud hinaus. Über den Orchestrierungsdienst können Kunden ihre Edgeinfrastruktur mithilfe der gleichen Arm-Manifestdateien definieren und verwalten, die sie heute zum Verwalten von Cloudressourcen verwenden. Es gibt zwei Haupttypen von Ressourcen, die für die Orchestrierung verwendet werden: Ziele und Lösungen. Zusammen definieren diese Ressourcen den gewünschten Zustand einer Edgeumgebung.

Ziel

Ein Ziel ist eine bestimmte Bereitstellungsumgebung, z. B. ein Kubernetes-Cluster oder ein Edgegerät. Sie beschreibt Infrastrukturkomponenten, d. h. Komponenten, die einmal auf einem Gerät installiert werden, wie PowerShell oder Azure IoT-Datenprozessor (Preview). Jedes Ziel verfügt über eigene Konfigurationseinstellungen, die an die spezifischen Anforderungen der Bereitstellungsumgebung angepasst werden können. Außerdem werden Anbieterbindungen angegeben, die definieren, welche Ressourcentypen für das Ziel verwaltet werden sollen (z. B. Helm, PowerShell-Skripts, K8s, CRs oder Bash-Skripts).

Um eine Zielressource für einen Arc-fähigen K8s-Cluster zu erstellen, fügen Sie der Azure Resource Manager-Vorlage die JSON der Ressourcendefinition hinzu. Das folgende Beispiel erstellt eine Zielressource, die mehrere Komponenten und Bindungen definiert.

{
  "type": "Microsoft.IoTOperationsOrchestrator/Targets",
  "name": "myTarget",
  "location": "eastus",
  "apiVersion": "2023-10-04-preview",
  "extendedLocation": { ... },
  "tags": {},
  "properties": {
    "version": "1.0.0",
    "scope": "myNamespace",
    "components": [
      {
        "name": "myHelmChart",
        "type": "helm.v3",
        "properties": {
          "chart": {
            "repo": "oci://azureiotoperations.azurecr.io/simple-chart",
            "version": "0.1.0"
          },
          "values": {}
        },
        "dependencies": []
      },
      {
        "name": "myCustomResource",
        "type": "yaml.k8s",
        "properties": {
          "resource": {
            "apiVersion": "v1",
            "kind": "ConfigMap",
            "data": {
                "key": "value"
            }
          }
        },
        "dependencies": ["myHelmChart"]
      }
    ],
    "topologies": [
      {
        "bindings": [
          {
            "role": "instance",
            "provider": "providers.target.k8s",
            "config": {
              "inCluster": "true"
            }
          },
          {
            "role": "helm.v3",
            "provider": "providers.target.helm",
            "config": {
              "inCluster": "true"
            }
          },
          {
            "role": "yaml.k8s",
            "provider": "providers.target.kubectl",
            "config": {
              "inCluster": "true"
            }
          }
        ]
      }
    ],
    "reconciliationPolicy": {
      "type": "periodic",
      "interval": "20m"
    }
  }
}

Zielparameter

Parameter Beschreibung
Typ Ressourcentyp: Microsoft.IoTOperationsOrchestrator/Targets.
name Name für die Zielressource.
location Name der Region, in der die Zielressource erstellt werden wird.
apiVersion Ressourcen-API-Version 2023-10-04-preview.
extendedLocation Eine Abstraktion eines Namespaces, der sich im ARC-fähigen Cluster befindet. Zum Erstellen von Ressourcen im ARC-fähigen Cluster muss zuerst ein benutzerdefinierter Speicherort erstellt werden.
Tags Optionale Ressourcentags.
properties Liste der Eigenschaften für die Zielressource. Weitere Informationen finden Sie in der folgenden Eigenschaftenparametertabelle.

Zieleigenschaftenparameter

Eigenschaftenparameter Beschreibung
version Optionales Metadatenfeld zum Nachverfolgen von Zielversionen.
scope Namespace des Clusters.
komponenten Liste der Komponenten und ihrer Details, die während der Bereitstellung verwendet werden. Weitere Informationen finden Sie unter Anbieter und Komponenten.
topologies Liste der Bindungen, die eine Gruppe von Geräten oder Zielen mit einer Rolle verbinden. Weitere Informationen finden Sie in der folgenden topologies.bindings-Parametertabelle.
reconciliationPolicy Ein Intervallzeitraum, wie häufig der Orchestrator-Ressourcenmanager nach einem aktualisierten gewünschten Zustand sucht. Der Mindestzeitraum beträgt eine Minute.

Ziel-topologies.bindings-Parameter

Der Parameter Topologien eines Ziels enthält ein Bindungsobjekt, das Details zum Herstellen einer Verbindung mit verschiedenen Zielen bereitstellt. In der folgenden Tabelle werden Objektparameter für Bindungen beschrieben:

Properties.topologies.bindings-Parameter Beschreibung
role Rolle des Ziels, das verbunden wird.

Die gleiche Entität wie ein Ziel oder ein Gerät kann unterschiedliche Rollen in verschiedenen Kontexten annehmen, was bedeutet, dass mehrere Bindungen für unterschiedliche Zwecke definiert werden können. Beispielsweise könnte ein Ziel ein Helm-Diagramm für Nutzdatenbereitstellungen und ADU für Geräteupdates verwenden. In solchen Fällen werden zwei Bindungen erstellt: eine für die Rolle Bereitstellung und eine für die Rolle Update mit entsprechenden Anbieterkonfigurationen.
Anbieter Name des Anbieters, der die spezifische Verbindung behandelt.
config Konfigurationsdetails, die verwendet werden, um eine Verbindung mit einem bestimmten Ziel herzustellen. Die Konfiguration unterscheidet sich je nach Anbietertyp. Weitere Informationen finden Sie unter Anbieter und Komponenten.

Lösung

Eine Lösung ist eine Vorlage, welche die Anwendungsworkload definiert, die auf einem oder mehreren Zielen bereitgestellt werden kann. Daher beschreibt eine Lösung Anwendungskomponenten (z. B. Dinge, welche die infrastrukturellen Komponenten verwenden, die im Ziel definiert sind, z. B. PowerShell-Skripts oder Azure IoT-Datenprozessorpipelines).

Um eine Lösungsressource zu erstellen, fügen Sie der Azure Resource Manager-Vorlage die JSON der Ressourcendefinition hinzu. Im folgenden Beispiel wird eine Lösungsressource erstellt, die zwei Komponenten definiert, von denen eine von der anderen abhängig ist.

{
  "type": "Microsoft.IoTOperationsOrchestrator/Solutions",
  "name": "mySolution",
  "location": "eastus",
  "apiVersion": "2023-10-04-preview",
  "extendedLocation": { ... },
  "tags": {},
  "properties": {
    "version": "1.0.0",
    "components": [
      {
        "name": "myHelmChart",
        "type": "helm.v3",
        "properties": {
          "chart": {
            "repo": "oci://azureiotoperations.azurecr.io/simple-chart",
            "version": "0.1.0"
          },
          "values": {}
        },
        "dependencies": []
      },
      {
        "name": "myCustomResource",
        "type": "yaml.k8s",
        "properties": {
          "resource": {
            "apiVersion": "v1",
            "kind": "ConfigMap",
            "data": {
                "key": "value"
            }
          }
        },
        "dependencies": ["myHelmChart"]
      }
    ]
  }
}

Lösungsparameter

Parameter Beschreibung
Typ Ressourcentyp: Microsoft.IoTOperationsOrchestrator/Solutions.
name Name für die Lösungsressource.
location Name der Region, in der die Lösungsressource erstellt werden wird.
apiVersion Ressourcen-API-Version 2023-10-04-preview.
extendedLocation Eine Abstraktion eines Namespaces, der sich im ARC-fähigen Cluster befindet. Zum Erstellen von Ressourcen im ARC-fähigen Cluster muss zuerst ein benutzerdefinierter Speicherort erstellt werden.
Tags Optionale Ressourcentags.
properties Liste der Eigenschaften für die Lösungsressource. Weitere Informationen finden Sie in der folgenden Eigenschaftenparametertabelle.

Parameter für Lösungseigenschaften

Eigenschaftenparameter Beschreibung
version Optionales Metadatenfeld zum Nachverfolgen von Lösungsversionen.
komponenten Liste der in der Bereitstellung erstellen Komponenten und ihrer Details. Weitere Informationen finden Sie unter Anbieter und Komponenten.

Instanz

Eine Instanz ist eine bestimmte Bereitstellung einer Lösung für ein Ziel. Sie kann als Instanz einer Lösung betrachtet werden.

Um eine Instanzenressource zu erstellen, fügen Sie der Azure Resource Manager-Vorlage die JSON der Ressourcendefinition hinzu. Das folgende Beispiel zeigt eine Instanz, die eine Lösung namens *mySolution im Zielcluster mit dem Namen myTarget bereitstellt:

{
  "type": "Microsoft.IoTOperationsOrchestrator/Instances",
  "name": "myInstance",
  "location": "eastus",
  "apiVersion": "2023-10-04-preview",
  "extendedLocation": { ... },
  "tags": {},
  "properties": {
    "version": "1.0.0",
    "scope": "myNamespace",
    "solution": "mySolution",
    "target": {
      "name": "myTarget"
    },
    "reconciliationPolicy": {
      "type": "periodic",
      "interval": "1h"
    }
  }
}

Instanzenparameter

Parameter Beschreibung
Typ Ressourcentyp: Microsoft.IoTOperationsOrchestrator/Instances.
name Name für die Instanzenressource.
location Name der Region, in der die Instanzenressource erstellt wird.
apiVersion Ressourcen-API-Version 2023-10-04-preview.
extendedLocation Eine Abstraktion eines Namespaces, der sich im ARC-fähigen Cluster befindet. Zum Erstellen von Ressourcen im ARC-fähigen Cluster muss zuerst ein benutzerdefinierter Speicherort erstellt werden.
Tags Optionale Ressourcentags.
properties Liste der Eigenschaften für die Instanzenressource. Weitere Informationen finden Sie in der folgenden Eigenschaftenparametertabelle.

Parameter für Instanzeneigenschaften

Eigenschaftenparameter Beschreibung
version Optionales Metadatenfeld zum Nachverfolgen von Instanzenversionen.
scope Namespace des Clusters.
Lösung Name der Lösung, die für die Bereitstellung verwendet wird.
target Name des Ziels oder der Ziele, für welche(s) die Lösung bereitgestellt wird.
reconciliationPolicy Ein Intervallzeitraum, wie häufig der Orchestrator-Ressourcenmanager nach einem aktualisierten gewünschten Zustand sucht. Der Mindestzeitraum beträgt eine Minute.

Komponenten

Komponenten sind alle Ressourcen, die vom Orchestrator verwaltet werden können. Komponenten werden in Manifesten sowohl für die Lösung wie auch das Ziel referenziert. Wenn eine Komponente in einer Lösung wiederverwendet wird, z. B. als Teil einer Pipeline, sollten Sie diese in das Lösungsmanifest einschließen. Wenn eine Komponente einmal als Teil des Setup einer Umgebung bereitgestellt wird, sollten Sie diese in das Zielmanifest einschließen.

Parameter Beschreibung
name Der Name der Komponente.
Typ Typ der Komponente. Beispielsweise helm.v3 oder yaml.k8s.
properties Details zur verwalteten Komponente.
Abhängigkeiten Liste aller Komponenten, von denen diese aktuelle Komponente abhängig ist.

Die Eigenschaften einer bestimmten Komponente hängen vom verwalteten Komponententyp ab. Weitere Informationen zu den verschiedenen Komponententypen finden Sie unter Anbieter und Komponenten.