Conector de integração ServiceNow MetricBase - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Conector de integração ServiceNow MetricBase

Atenção

Esse conector passou para a fase de vida útil estendida e AWS IoT Greengrass não lançará atualizações que forneçam atributos, aprimoramentos para atributos existentes, patches de segurança ou correções de erros. Para obter mais informações, consulte Política de manutenção do AWS IoT Greengrass Version 1.

O conector de integração ServiceNow MetricBase publica métricas de séries temporais de Dispositivos Greengrass para o ServiceNow MetricBase. Isso permite que você armazene, analise e visualize dados de séries temporais do ambiente do núcleo do Greengrass e atue em eventos locais.

Esse conector recebe dados de séries temporais em um tópico MQTT e publica os dados na API do ServiceNow em intervalos regulares.

Você pode usar esse conector para oferecer suporte a cenários, como:

  • Crie alertas baseados em limites e alarmes baseados em dados de séries temporais coletados em Dispositivos Greengrass.

  • Use os dados de serviços temporais de Dispositivos Greengrass com aplicativos personalizados criados na plataforma ServiceNow.

Esse conector tem as seguintes versões.

Versão

ARN

4

arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/4

3

arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/3

2

arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/2

1

arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/1

Para obter informações sobre alterações de versão, consulte o Changelog.

Requisitos

Esse conector tem os seguintes requisitos:

Version 3 - 4
  • Software AWS IoT Greengrass Core v1.9.3 ou posterior. O AWS IoT Greengrass deve ser configurado para oferecer suporte a segredos locais, conforme descrito em Requisitos de segredos.

    nota

    Este requisito inclui permitir o acesso aos seus segredos do Secrets Manager. Se você estiver usando o perfil de serviço padrão do Greengrass, o Greengrass terá permissão para obter os valores de segredos com nomes que começam com greengrass-.

  • Python, versão 3.7 ou 3.8, instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.

    nota

    Para usar o Python 3.8, execute o comando a seguir para criar um symblink da pasta de instalação padrão do Python 3.7 para os binários instalados do Python 3.8.

    sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7

    Isso configura seu dispositivo para atender ao requisito Python para AWS IoT Greengrass.

  • Uma conta do ServiceNow com uma assinatura ativada para o MetricBase. Além disso, uma métrica e tabela de métrica devem ser criadas na conta. Para obter mais informações, consulte MetricBase na documentação do ServiceNow.

  • Um segredo de tipo de texto no AWS Secrets Manager que armazena o nome de usuário e a senha para fazer login na sua instância do ServiceNow com autenticação básica. O segredo deve conter chaves "user" e "password" com valores correspondentes. Para obter mais informações, consulte Criar um segredo básico no Guia do usuário do AWS Secrets Manager.

  • Um recurso de segredo no grupo do Greengrass que faz referência ao segredo do Secrets Manager. Para obter mais informações, consulte Implantar segredos no núcleo do AWS IoT Greengrass.

Versions 1 - 2
  • Software AWS IoT Greengrass Core v1.7 ou posterior. O AWS IoT Greengrass deve ser configurado para oferecer suporte a segredos locais, conforme descrito em Requisitos de segredos.

    nota

    Este requisito inclui permitir o acesso aos seus segredos do Secrets Manager. Se você estiver usando o perfil de serviço padrão do Greengrass, o Greengrass terá permissão para obter os valores de segredos com nomes que começam com greengrass-.

  • Python versão 2.7 instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.

  • Uma conta do ServiceNow com uma assinatura ativada para o MetricBase. Além disso, uma métrica e tabela de métrica devem ser criadas na conta. Para obter mais informações, consulte MetricBase na documentação do ServiceNow.

  • Um segredo de tipo de texto no AWS Secrets Manager que armazena o nome de usuário e a senha para fazer login na sua instância do ServiceNow com autenticação básica. O segredo deve conter chaves "user" e "password" com valores correspondentes. Para obter mais informações, consulte Criar um segredo básico no Guia do usuário do AWS Secrets Manager.

  • Um recurso de segredo no grupo do Greengrass que faz referência ao segredo do Secrets Manager. Para obter mais informações, consulte Implantar segredos no núcleo do AWS IoT Greengrass.

Parâmetros do conector

Esse conector oferece os seguintes parâmetros:

Version 4
PublishInterval

O número máximo de segundos de espera entre a publicação de eventos no ServiceNow. O valor máximo é 900.

O conector publica no ServiceNow quando PublishBatchSize é alcançado ou quando PublishInterval expira.

Nome de exibição no console AWS IoT: Intervalo de publicação em segundos

Obrigatório: true

Digite: string

Valores válidos: 1 - 900

Padrão válido: [1-9]|[1-9]\d|[1-9]\d\d|900

PublishBatchSize

O número máximo de valores de métrica que podem ser armazenados em lote antes de serem publicados no ServiceNow.

O conector publica no ServiceNow quando PublishBatchSize é alcançado ou quando PublishInterval expira.

Nome de exibição no console AWS IoT: Tamanho do lote de publicação

Obrigatório: true

Digite: string

Padrão válido: ^[0-9]+$

InstanceName

O nome da instância usada para se conectar ao ServiceNow.

Nome de exibição no console AWS IoT: Nome da instância do ServiceNow

Obrigatório: true

Digite: string

Padrão válido: .+

DefaultTableName

O nome da tabela que contém o GlideRecord associado ao banco de dados de séries temporais do MetricBase. A propriedade table na carga da mensagem de entrada pode ser usada para substituir esse valor.

Nome de exibição no console AWS IoT: Nome da tabela que conterá a métrica

Obrigatório: true

Digite: string

Padrão válido: .+

MaxMetricsToRetain

O número máximo de métricas a serem salvas na memória antes de serem substituídas por novas métricas.

Esse limite aplica-se quando não há conexão com a Internet, e o conector começa a armazenar as métricas em buffer para publicar posteriormente. Quando o buffer está cheio, as métricas mais antigas são substituídas por novas métricas.

nota

As métricas não são salvas se o processo de host do conector é interrompido. Por exemplo, isso pode ocorrer durante a implantação do grupo ou quando o dispositivo é reiniciado.

Esse valor deve ser maior do que o tamanho do lote e grande o suficiente para armazenar mensagens com base na taxa de entrada de mensagens MQTT.

Nome de exibição no console AWS IoT: Máximo de métricas a serem retidas na memória

Obrigatório: true

Digite: string

Padrão válido: ^[0-9]+$

AuthSecretArn

O segredo no AWS Secrets Manager que armazena o nome de usuário e a senha do ServiceNow. Ele deve ser um segredo de tipo de texto. O segredo deve conter chaves "user" e "password" com valores correspondentes.

Nome de exibição no console AWS IoT: ARN do segredo de autenticação

Obrigatório: true

Digite: string

Padrão válido: arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+

AuthSecretArn-ResourceId

O recurso de segredo no grupo que faz referência ao segredo do Secrets Manager para as credenciais do ServiceNow.

Nome de exibição no console AWS IoT: Recurso do token de autenticação

Obrigatório: true

Digite: string

Padrão válido: .+

IsolationMode

O modo de conteinerização para este conector. O padrão é GreengrassContainer, o que significa que o conector é executado em um ambiente de runtime isolado dentro do contêiner do AWS IoT Greengrass.

nota

A configuração padrão de conteinerização para o grupo não se aplica aos conectores.

Nome de exibição no console do AWS IoT: Modo de isolamento de contêiner

Obrigatório: false

Digite: string

Valores válidos: GreengrassContainer ou NoContainer

Padrão válido: ^NoContainer$|^GreengrassContainer$

Version 1 - 3
PublishInterval

O número máximo de segundos de espera entre a publicação de eventos no ServiceNow. O valor máximo é 900.

O conector publica no ServiceNow quando PublishBatchSize é alcançado ou quando PublishInterval expira.

Nome de exibição no console AWS IoT: Intervalo de publicação em segundos

Obrigatório: true

Digite: string

Valores válidos: 1 - 900

Padrão válido: [1-9]|[1-9]\d|[1-9]\d\d|900

PublishBatchSize

O número máximo de valores de métrica que podem ser armazenados em lote antes de serem publicados no ServiceNow.

O conector publica no ServiceNow quando PublishBatchSize é alcançado ou quando PublishInterval expira.

Nome de exibição no console AWS IoT: Tamanho do lote de publicação

Obrigatório: true

Digite: string

Padrão válido: ^[0-9]+$

InstanceName

O nome da instância usada para se conectar ao ServiceNow.

Nome de exibição no console AWS IoT: Nome da instância do ServiceNow

Obrigatório: true

Digite: string

Padrão válido: .+

DefaultTableName

O nome da tabela que contém o GlideRecord associado ao banco de dados de séries temporais do MetricBase. A propriedade table na carga da mensagem de entrada pode ser usada para substituir esse valor.

Nome de exibição no console AWS IoT: Nome da tabela que conterá a métrica

Obrigatório: true

Digite: string

Padrão válido: .+

MaxMetricsToRetain

O número máximo de métricas a serem salvas na memória antes de serem substituídas por novas métricas.

Esse limite aplica-se quando não há conexão com a Internet, e o conector começa a armazenar as métricas em buffer para publicar posteriormente. Quando o buffer está cheio, as métricas mais antigas são substituídas por novas métricas.

nota

As métricas não são salvas se o processo de host do conector é interrompido. Por exemplo, isso pode ocorrer durante a implantação do grupo ou quando o dispositivo é reiniciado.

Esse valor deve ser maior do que o tamanho do lote e grande o suficiente para armazenar mensagens com base na taxa de entrada de mensagens MQTT.

Nome de exibição no console AWS IoT: Máximo de métricas a serem retidas na memória

Obrigatório: true

Digite: string

Padrão válido: ^[0-9]+$

AuthSecretArn

O segredo no AWS Secrets Manager que armazena o nome de usuário e a senha do ServiceNow. Ele deve ser um segredo de tipo de texto. O segredo deve conter chaves "user" e "password" com valores correspondentes.

Nome de exibição no console AWS IoT: ARN do segredo de autenticação

Obrigatório: true

Digite: string

Padrão válido: arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+

AuthSecretArn-ResourceId

O recurso de segredo no grupo que faz referência ao segredo do Secrets Manager para as credenciais do ServiceNow.

Nome de exibição no console AWS IoT: Recurso do token de autenticação

Obrigatório: true

Digite: string

Padrão válido: .+

Exemplo de criação de conector (AWS CLI)

O seguinte comando da CLI cria um ConnectorDefinition com uma versão inicial que contém o conector de integração ServiceNow MetricBase.

aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyServiceNowMetricBaseIntegrationConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/4", "Parameters": { "PublishInterval" : "10", "PublishBatchSize" : "50", "InstanceName" : "myinstance", "DefaultTableName" : "u_greengrass_app", "MaxMetricsToRetain" : "20000", "AuthSecretArn" : "arn:aws:secretsmanager:region:account-id:secret:greengrass-secret-hash", "AuthSecretArn-ResourceId" : "MySecretResource", "IsolationMode" : "GreengrassContainer" } } ] }'
nota

A função do Lambda nesse conector tem um ciclo de vida longo.

No console do AWS IoT Greengrass, você pode adicionar um conector na página Conectores do grupo. Para obter mais informações, consulte Conceitos básicos de conectores do Greengrass (console).

Dados de entrada

Esse conector aceita métricas de séries temporais em um tópico MQTT e publica as métricas no ServiceNow. As mensagens de entrada devem estar no formato JSON.

Filtro de tópico na assinatura

servicenow/metricbase/metric

Propriedades de mensagens
request

As informações sobre a tabela, o registro e a métrica. Essa solicitação representa o objeto seriesRef em uma solicitação POST de séries temporais. Para obter mais informações, consulte API - POST de séries temporais Clotho.

Obrigatório: true

Tipo: object que inclui as seguintes propriedades:

subject

O sys_id do registro específico na tabela.

Obrigatório: true

Digite: string

metric_name

O nome do campo da métrica.

Obrigatório: true

Digite: string

table

O nome da tabela na qual armazenar o registro. Especifique esse valor para substituir o parâmetro DefaultTableName.

Obrigatório: false

Digite: string

value

O valor do ponto de dados individual.

Obrigatório: true

Digite: float

timestamp

O timestamp do ponto de dados individual. O valor padrão é o horário atual.

Obrigatório: false

Digite: string

Exemplo de entrada
{ "request": { "subject":"ef43c6d40a0a0b5700c77f9bf387afe3", "metric_name":"u_count", "table": "u_greengrass_app" "value": 1.0, "timestamp": "2018-10-14T10:30:00" } }

Dados de saída

O conector publica informações de status como dados de saída em um tópico MQTT.

Filtro de tópico na assinatura

servicenow/metricbase/metric/status

Exemplo de resultado: sucesso
{ "response": { "metric_name": "Errors", "table_name": "GliderProd", "processed_on": "2018-10-14T10:35:00", "response_id": "khjKSkj132qwr23fcba", "status": "success", "values": [ { "timestamp": "2016-10-14T10:30:00", "value": 1.0 }, { "timestamp": "2016-10-14T10:31:00", "value": 1.1 } ] } }
Exemplo de resultado: falha
{ "response": { "error": "InvalidInputException", "error_message": "metric value is invalid", "status": "fail" } }
nota

Se o conector detectar um erro que pode ser repetido (por exemplo, erros de conexão), ele tentará publicar novamente no próximo lote.

Exemplo de uso

Use as seguintes etapas de alto nível para configurar um exemplo de função do Lambda Python 3.7 que pode ser usado para testar o conector.

nota
  1. Certifique-se de cumprir os requisitos para o conector.

  2. Crie e publique uma função do Lambda que envie dados de entrada para o conector.

    Salve o código de exemplo como arquivo PY. Baixe e descompacte o AWS IoT GreengrassSDK do Core para Python. Crie então um pacote zip que contenha o arquivo PY e a pasta greengrasssdk no nível raiz. Este pacote zip é o pacote de implantação que você transfere por upload para o AWS Lambda.

    Depois de criar a função do Lambda Python 3.7, publique uma versão de função e crie um alias.

  3. Configure o grupo do Greengrass.

    1. Adicione a função do Lambda pelo seu alias (recomendado). Configure o ciclo de vida do Lambda como de longa duração (ou "Pinned": true na CLI).

    2. Adicione o recurso de segredode segredo necessário e conceda acesso de leitura à função do Lambda.

    3. Adicione o conector e configure seus parâmetros.

    4. Adicione assinaturas que permitam que o conector receba dados de entrada e envie dados de saída em filtros de tópico compatíveis.

      • Defina a função do Lambda como origem, o conector como destino e use um filtro de tópico de entrada compatível.

      • Defina o conector como origem, o AWS IoT Core como destino, e use um filtro de tópico de saída compatível. Use essa assinatura para exibir mensagens de status no console do AWS IoT.

  4. Implante o grupo.

  5. No console do AWS IoT, na página Teste, assine o tópico de dados de saída para exibir mensagens de status do conector. A função de exemplo do Lambda é de longa duração e começa a enviar mensagens imediatamente após o grupo ser implantado.

    Ao finalizar o teste, você pode definir o ciclo de vida do Lambda como sob demanda (ou "Pinned": false na CLI) e implantar o grupo. Isso impede o envio de mensagens pela função.

Exemplo

O exemplo a seguir da função do Lambda envia uma mensagem de entrada para o conector.

import greengrasssdk import json iot_client = greengrasssdk.client('iot-data') SEND_TOPIC = 'servicenow/metricbase/metric' def create_request_with_all_fields(): return { "request": { "subject": '2efdf6badbd523803acfae441b961961', "metric_name": 'u_count', "value": 1234, "timestamp": '2018-10-20T20:22:20', "table": 'u_greengrass_metricbase_test' } } def publish_basic_message(): messageToPublish = create_request_with_all_fields() print("Message To Publish: ", messageToPublish) iot_client.publish(topic=SEND_TOPIC, payload=json.dumps(messageToPublish)) publish_basic_message() def lambda_handler(event, context): return

Licenças

O conector de integração ServiceNow MetricBase inclui o seguinte licenciamento/software de terceiros:

Esse conector é liberado de acordo com o Contrato de licença de software do Greengrass Core.

Changelog

A tabela a seguir descreve as alterações em cada versão do conector.

Versão

Alterações

4

Adicionado o parâmetro IsolationMode para configurar o modo de conteinerização para o conector.

3

Atualização do runtime do Lambda para Python 3.7, o que altera o requisito de runtime.

2

Corrija para reduzir o registro excessivo.

1

Versão inicial.

Um grupo do Greengrass só pode conter uma versão do conector por vez. Para obter informações sobre como fazer upgrade de uma versão do conector, consulte Atualizar a versões do conector.

Consulte também