Share via


Versão prévia do Orquestrador do Azure IoT – manifestos

Importante

O recurso Pré-visualização de Operações do Azure IoT — habilitado pelo Azure Arc — está atualmente em VERSÃO PRÉVIA. Você não deve usar esse software em versão prévia em ambientes de produção.

Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

O serviço versão prévia do Orquestrador do Azure IoT estende os recursos de gerenciamento de recursos do Azure para além da nuvem. Por meio do serviço de orquestração, os clientes podem definir e gerenciar sua infraestrutura de borda usando os mesmos arquivos de manifesto do Arm que usam hoje para gerenciar recursos de nuvem. Há dois tipos principais de recursos usados para orquestração: destinos e soluções. Juntos, esses recursos definem o estado desejado de um ambiente de borda.

Destino

Um destino é um ambiente de implantação específico, como um cluster do Kubernetes ou um dispositivo de borda. Ele descreve componentes infraestruturais, que são componentes instalados uma vez em um dispositivo, como o PowerShell ou a versão prévia do Processador de Dados do Azure IoT. Cada destino tem suas próprias configurações, que podem ser personalizadas para atender às necessidades específicas do ambiente de implantação. Ele também especifica associações de provedor que definem quais tipos de recursos devem ser gerenciados no destino (por exemplo, Helm, PowerShell scripts, K8s, CRs ou scripts Bash).

Para criar um recurso de destino para um cluster K8s habilitado para Arc, adicione o JSON de definição de recurso a um modelo do Azure Resource Manager. O exemplo a seguir cria um recurso de destino que define vários componentes e associações.

{
  "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"
    }
  }
}

Parâmetros de destino

Parâmetro Descrição
tipo Tipo de recurso: Microsoft.IoTOperationsOrchestrator/Targets.
name Nome do recurso de destino.
local Nome da região em que o recurso de destino será criado.
apiVersion Versão da API do recurso: 2023-10-04-preview.
extendedLocation Uma abstração de um namespace que reside no cluster habilitado para ARC. Para criar todos os recursos no cluster habilitado para ARC, primeiro é necessário criar um local personalizado.
marcas Marcas de recurso opcionais.
properties Lista de propriedades para o recurso de destino. Para obter mais informações, consulte a tabela de parâmetros de propriedades a seguir.

Parâmetros de propriedades de destino

Parâmetro de propriedades Descrição
version Campo de metadados opcional para acompanhar as versões de destino.
scope Namespace do cluster.
components Lista de componentes usados durante a implantação e seus detalhes. Para obter mais informações, consulte Provedores e componentes.
topologies Lista de associações, que conectam um grupo de dispositivos ou destinos a uma função. Para obter mais informações, consulte a tabela de parâmetros topologies.bindings a seguir.
reconciliationPolicy Um período de intervalo para a frequência com que o gestor de recursos do Orquestrador verifica um estado desejado atualizado. O período mínimo é de um minuto.

Parâmetros de topologies.bindings de destino

O parâmetro topologies de um destino contém um objeto bindings, que fornece detalhes sobre como se conectar a destinos diferentes. A tabela a seguir descreve parâmetros de objeto bindings:

Parâmetro properties.topologies.bindings Descrição
função Função do destino que está sendo conectado.

A mesma entidade que um destino ou um dispositivo pode assumir diferentes funções em contextos diferentes, o que significa que várias associações podem ser definidas para fins diferentes. Por exemplo, um destino pode usar o gráfico do Helm para implantações de conteúdo e ADU para atualizações de dispositivo. Nesses casos, duas associações são criadas: uma para a função de implantação e outra para a função de atualização, com as configurações de provedor correspondentes.
provedor Nome do provedor que manipula a conexão específica.
config Detalhes de configuração usados para fazer uma conexão com um destino específico. A configuração difere com base no tipo do provedor. Para obter mais informações, consulte Provedores e componentes.

Solução

Uma solução é um modelo que define a carga de trabalho do aplicativo que pode ser implantada em um ou muitos destinos. Portanto, uma solução descreve os componentes do aplicativo (por exemplo, itens que usam os componentes infraestruturais definidos no destino, como scripts do PowerShell ou pipelines do Processador de Dados da Internet das Coisas do Azure).

Para criar um recurso de solução, adicione o JSON de definição de recurso a um modelo do Azure Resource Manager. O exemplo a seguir cria um recurso de solução que define dois componentes, um dos quais depende do outro.

{
  "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"]
      }
    ]
  }
}

Parâmetros da solução

Parâmetro Descrição
tipo Tipo de recurso: Microsoft.IoTOperationsOrchestrator/Solutions.
name Nome do recurso de solução.
local Nome da região em que o recurso de solução será criado.
apiVersion Versão da API do recurso: 2023-10-04-preview.
extendedLocation Uma abstração de um namespace que reside no cluster habilitado para ARC. Para criar todos os recursos no cluster habilitado para ARC, primeiro é necessário criar um local personalizado.
marcas Marcas de recurso opcionais.
properties Lista de propriedades para o recurso de solução. Para obter mais informações, consulte a tabela de parâmetros de propriedades a seguir.

Parâmetros de propriedades da solução

Parâmetro de propriedades Descrição
version Campo de metadados opcional para acompanhar as versões da solução.
components Lista de componentes criados na implantação e seus detalhes. Para obter mais informações, consulte Provedores e componentes.

Instância

Uma instância é uma implantação específica de uma solução para um destino. Ela pode ser considerado como uma instância de uma solução.

Para criar um recurso de instância, adicione o JSON de definição de recurso a um modelo do Azure Resource Manager. O exemplo a seguir mostra uma instância que implanta uma solução chamada *mySolution no cluster de destino chamado myTarget:

{
  "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": "myInstance"
    },
    "reconciliationPolicy": {
      "type": "periodic",
      "interval": "1h"
    }
  }
}

Parâmetros de instância

Parâmetro Descrição
tipo Tipo de recurso: Microsoft.IoTOperationsOrchestrator/Instances.
name Nome do recurso de instância.
local Nome da região em que o recurso de instância será criado.
apiVersion Versão da API do recurso: 2023-10-04-preview.
extendedLocation Uma abstração de um namespace que reside no cluster habilitado para ARC. Para criar todos os recursos no cluster habilitado para ARC, primeiro é necessário criar um local personalizado.
marcas Marcas de recurso opcionais.
properties Lista de propriedades para o recurso de instância. Para obter mais informações, consulte a tabela de parâmetros de propriedades a seguir.

Parâmetros de propriedades de instância

Parâmetro de propriedades Descrição
version Campo de metadados opcional para acompanhar as versões da instância.
scope Namespace do cluster.
solução Nome da solução usada para implantação.
destino Nome do destino ou destinos nos quais a solução será implantada.
reconciliationPolicy Um período de intervalo para a frequência com que o gestor de recursos do Orquestrador verifica um estado desejado atualizado. O período mínimo é de um minuto.

Componentes

Os componentes são qualquer recurso que pode ser gerenciado pelo Orchestrator. Os componentes são referenciados nos manifestos de solução e de destino. Se um componente estiver sendo reutilizado em uma solução, como parte de um pipeline, você deverá incluí-lo no manifesto da solução. Se um componente estiver sendo implantado uma vez como parte da configuração de um ambiente, você deverá incluí-lo no manifesto de destino.

Parâmetro Descrição
name Nome do componente.
tipo Tipo do componente. Por exemplo, helm.v3 ou yaml.k8s.
properties Detalhes do componente que está sendo gerenciado.
dependencies Lista de todos os componentes nos quais esse componente atual é dependente.

As propriedades de um determinado componente dependem do tipo de componente que está sendo gerenciado. Para saber mais sobre os vários tipos de componentes, consulte Provedores e componentes.