AWS IoT SiteWise - AWS IoT Core

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á.

AWS IoT SiteWise

A ação AWS IoT SiteWise (iotSiteWise) envia dados de uma mensagem MQTT para as propriedades do ativo em AWS IoT SiteWise.

Você pode seguir um tutorial que mostra como ingerir dados de AWS IoT coisas. Para obter mais informações, consulte o tutorial Como ingerir dados a AWS IoT SiteWise partir de AWS IoT coisas ou a seção Como ingerir dados usando regras AWS IoT básicas no Guia do AWS IoT SiteWise usuário.

Requisitos

Esta ação de regra tem os seguintes requisitos:

  • Uma função do IAM que AWS IoT você pode assumir para realizar a iotsitewise:BatchPutAssetPropertyValue operação. Para ter mais informações, consulte Conceder a uma AWS IoT regra o acesso que ela exige.

    Você pode anexar o exemplo de política de confiança a seguir à função.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*" } ] }

    Para melhorar a segurança, você pode especificar um caminho AWS IoT SiteWise de hierarquia de ativos na Condition propriedade. O exemplo a seguir é uma política de confiança que especifica um caminho de hierarquia de ativos.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*", "Condition": { "StringLike": { "iotsitewise:assetHierarchyPath": [ "/root node asset ID", "/root node asset ID/*" ] } } } ] }
  • Quando você envia dados para AWS IoT SiteWise com essa ação, seus dados devem atender aos requisitos da BatchPutAssetPropertyValue operação. Para obter mais informações, consulte BatchPutAssetPropertyValor na referência AWS IoT SiteWise da API.

Parâmetros

Ao criar uma AWS IoT regra com essa ação, você deve especificar as seguintes informações:

putAssetPropertyValueEntries

Uma lista de entradas de valor de propriedade de ativo, cada uma contendo as seguintes informações:

propertyAlias

(Opcional) O alias da propriedade associado à propriedade do seu ativo. É necessário especificar um propertyAlias, ou ambos um assetId e um propertyId. Para obter mais informações sobre alias de propriedade, consulte Como realizar o mapeamento de fluxos de dados industriais para propriedades de ativos no AWS IoT SiteWise Guia do usuário .

Compatível com modelos de substituição: Sim

assetId

(Opcional) O ID do AWS IoT SiteWise ativo. É necessário especificar um propertyAlias, ou ambos um assetId e um propertyId.

Compatível com modelos de substituição: Sim

propertyId

(Opcional) A ID de uma propriedade de ativo. É necessário especificar um propertyAlias, ou ambos um assetId e um propertyId.

Compatível com modelos de substituição: Sim

entryId

(Opcional) Um identificador exclusivo para essa entrada. Você pode definir o entryId para controlar melhor qual mensagem causou um erro em caso de falha. O padrão é um novo UUID.

Compatível com modelos de substituição: Sim

propertyValues

Uma lista de valores de propriedade a serem inseridos, em que cada um contém carimbo de data/hora, qualidade e valor (TQV) no seguinte formato:

timestamp

Uma estrutura de carimbo de data/hora que contém as seguintes informações:

timeInSeconds

Uma string que contém o tempo em segundos no horário do Unix epoch. Se a carga de mensagem não tiver um carimbo de data/hora, você poderá usar timestamp(), que retorna a hora atual em milissegundos. Para converter essa hora em segundos, você pode usar o seguinte modelo de substituição: ${floor(timestamp() / 1E3)}.

Compatível com modelos de substituição: Sim

offsetInNanos

(Opcional) Uma string que contém o deslocamento de tempo em nanossegundos da hora em segundos. Se a carga de mensagem não tiver um carimbo de data/hora, você poderá usar timestamp(), que retorna a hora atual em milissegundos. Para calcular o deslocamento em nanossegundos a partir dessa hora, é possível usar o seguinte modelo de substituição: ${(timestamp() % 1E3) * 1E6}.

Compatível com modelos de substituição: Sim

Em relação ao Unix epoch time, AWS IoT SiteWise aceita somente entradas que tenham um timestamp de até 7 dias no passado e até 5 minutos no futuro.

quality

(Opcional) Uma string que descreve a qualidade do valor. Valores válidos: GOOD, BAD, UNCERTAIN.

Compatível com modelos de substituição: Sim

value

Uma estrutura de valor que contém um dos seguintes campos de valor, dependendo do tipo de dados da propriedade do ativo:

booleanValue

(Opcional) Uma string que contém o valor booleano da entrada de valor.

Compatível com modelos de substituição: Sim

doubleValue

(Opcional) Uma string que contém o valor duplo da entrada de valor.

Compatível com modelos de substituição: Sim

integerValue

(Opcional) Uma string que contém o valor inteiro da entrada de valor.

Compatível com modelos de substituição: Sim

stringValue

(Opcional) O valor da string da entrada do valor.

Compatível com modelos de substituição: Sim

roleArn

O ARN da função do IAM que concede AWS IoT permissão para enviar um valor de propriedade do ativo para. AWS IoT SiteWise Para ter mais informações, consulte Requisitos.

Compatível com modelos de substituição: Não

Exemplos

O exemplo de JSON a seguir define uma ação básica de SiteWise IoT em AWS IoT uma regra.

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotSiteWise": { "putAssetPropertyValueEntries": [ { "propertyAlias": "/some/property/alias", "propertyValues": [ { "timestamp": { "timeInSeconds": "${my.payload.timeInSeconds}" }, "value": { "integerValue": "${my.payload.value}" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sitewise" } } ] } }

O exemplo de JSON a seguir define uma ação de SiteWise IoT em AWS IoT uma regra. Esse exemplo usa o tópico como o alias da propriedade e a função timestamp(). Por exemplo, se você publicar dados em /company/windfarm/3/turbine/7/rpm, essa ação enviará os dados para a propriedade do ativo com um alias da propriedade igual ao tópico especificado.

{ "topicRulePayload": { "sql": "SELECT * FROM '/company/windfarm/+/turbine/+/+'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotSiteWise": { "putAssetPropertyValueEntries": [ { "propertyAlias": "${topic()}", "propertyValues": [ { "timestamp": { "timeInSeconds": "${floor(timestamp() / 1E3)}", "offsetInNanos": "${(timestamp() % 1E3) * 1E6}" }, "value": { "doubleValue": "${my.payload.value}" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sitewise" } } ] } }

Consulte também