Как подключить software amazon awsconstructs services iotlambda
Перейти к содержимому

Как подключить software amazon awsconstructs services iotlambda

  • автор:

aws-iot-lambda-dynamodb

This AWS Solutions Construct implements an AWS IoT topic rule, an AWS Lambda function and Amazon DynamoDB table with the least privileged permissions.

Here is a minimal deployable pattern definition:

 import  Construct > from 'constructs'; import  Stack, StackProps > from 'aws-cdk-lib'; import  IotToLambdaToDynamoDBProps, IotToLambdaToDynamoDB > from '@aws-solutions-constructs/aws-iot-lambda-dynamodb'; import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: IotToLambdaToDynamoDBProps =  lambdaFunctionProps:  code: lambda.Code.fromAsset(`lambda`), runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' >, iotTopicRuleProps:  topicRulePayload:  ruleDisabled: false, description: "Processing of DTC messages from the AWS Connected Vehicle Solution.", sql: "SELECT * FROM 'connectedcar/dtc/#'", actions: [] > > >; new IotToLambdaToDynamoDB(this, 'test-iot-lambda-dynamodb-stack', constructProps); 
 from aws_solutions_constructs.aws_iot_lambda_dynamodb import IotToLambdaToDynamoDB from aws_cdk import ( aws_iot as iot, aws_lambda as _lambda, Stack ) from constructs import Construct IotToLambdaToDynamoDB(self, 'test-iot-lambda-dynamodb-stack', lambda_function_props=_lambda.FunctionProps( code=_lambda.Code.from_asset('lambda'), runtime=_lambda.Runtime.PYTHON_3_9, handler='index.handler' ), iot_topic_rule_props=iot.CfnTopicRuleProps( topic_rule_payload=iot.CfnTopicRule.TopicRulePayloadProperty( rule_disabled=False, description="Processing of DTC messages from the AWS Connected Vehicle Solution.", sql="SELECT * FROM 'connectedcar/dtc/#'", actions=[] ) )) 
 import software.constructs.Construct; import java.util.List; import software.amazon.awscdk.Stack; import software.amazon.awscdk.StackProps; import software.amazon.awscdk.services.lambda.*; import software.amazon.awscdk.services.lambda.Runtime; import software.amazon.awscdk.services.iot.*; import software.amazon.awscdk.services.iot.CfnTopicRule.TopicRulePayloadProperty; import software.amazon.awsconstructs.services.iotlambdadynamodb.*; new IotToLambdaToDynamoDB(this, "test-iot-lambda-dynamodb-stack", new IotToLambdaToDynamoDBProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) .iotTopicRuleProps(new CfnTopicRuleProps.Builder() .topicRulePayload(new TopicRulePayloadProperty.Builder() .ruleDisabled(false) .description("Processing of DTC messages from the AWS Connected Vehicle Solution.") .sql("SELECT * FROM 'connectedcar/dtc/#'") .actions(List.of()) .build()) .build()) .build()); 

Pattern Construct Props

Name Type Description
existingLambdaObj? lambda.Function Existing instance of Lambda Function object, providing both this and lambdaFunctionProps will cause an error.
lambdaFunctionProps? lambda.FunctionProps User provided props to override the default props for the Lambda function.
iotTopicRuleProps iot.CfnTopicRuleProps User provided props to override the default props
dynamoTableProps? dynamodb.TableProps Optional user provided props to override the default props for DynamoDB Table
tablePermissions? string Optional table permissions to grant to the Lambda function. One of the following may be specified: All , Read , ReadWrite , Write .
existingTableObj? dynamodb.Table Existing instance of DynamoDB table object, providing both this and dynamoTableProps will cause an error.
tableEnvironmentVariableName? string Optional Name for the Lambda function environment variable set to the name of the DynamoDB table. Default: DDB_TABLE_NAME
existingVpc? ec2.IVpc An optional, existing VPC into which this pattern should be deployed. When deployed in a VPC, the Lambda function will use ENIs in the VPC to access network resources and a Gateway Endpoint will be created in the VPC for Amazon DynamoDB. If an existing VPC is provided, the deployVpc property cannot be true . This uses ec2.IVpc to allow clients to supply VPCs that exist outside the stack using the ec2.Vpc.fromLookup() method.
vpcProps? ec2.VpcProps Optional user-provided properties to override the default properties for the new VPC. enableDnsHostnames , enableDnsSupport , natGateways and subnetConfiguration are set by the pattern, so any values for those properties supplied here will be overridden. If deployVpc is not true then this property will be ignored.
deployVpc? boolean Whether to create a new VPC based on vpcProps into which to deploy this pattern. Setting this to true will deploy the minimal, most private VPC to run the pattern:

Pattern Properties

Name Type Description
iotTopicRule iot.CfnTopicRule Returns an instance of iot.CfnTopicRule created by the construct
lambdaFunction lambda.Function Returns an instance of lambda.Function created by the construct
dynamoTable dynamodb.Table Returns an instance of dynamodb.Table created by the construct
vpc? ec2.IVpc Returns an interface on the VPC used by the pattern (if any). This may be a VPC created by the pattern or the VPC supplied to the pattern constructor.

Default settings

Out of the box implementation of the Construct without any override will set the following defaults:

Amazon IoT Rule

  • Configure least privilege access IAM role for Amazon IoT

AWS Lambda Function

  • Configure limited privilege access IAM role for Lambda function
  • Enable reusing connections with Keep-Alive for NodeJs Lambda function
  • Enable X-Ray Tracing
  • Set Environment Variables
  • AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x and higher functions)

Amazon DynamoDB Table

  • Set the billing mode for DynamoDB Table to On-Demand (Pay per request)
  • Enable server-side encryption for DynamoDB Table using AWS managed KMS Key
  • Creates a partition key called «id» for DynamoDB Table
  • Retain the Table when deleting the CloudFormation stack
  • Enable continuous backups and point-in-time recovery

aws-iot-lambda

This AWS Solutions Construct implements an AWS IoT MQTT topic rule and an AWS Lambda function pattern.

Here is a minimal deployable pattern definition:

 import  Construct > from 'constructs'; import  Stack, StackProps > from 'aws-cdk-lib'; import  IotToLambdaProps, IotToLambda > from '@aws-solutions-constructs/aws-iot-lambda'; import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: IotToLambdaProps =  lambdaFunctionProps:  code: lambda.Code.fromAsset(`lambda`), runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' >, iotTopicRuleProps:  topicRulePayload:  ruleDisabled: false, description: "Processing of DTC messages from the AWS Connected Vehicle Solution.", sql: "SELECT * FROM 'connectedcar/dtc/#'", actions: [] > > >; new IotToLambda(this, 'test-iot-lambda-integration', constructProps); 
 from aws_solutions_constructs.aws_iot_lambda import IotToLambdaProps, IotToLambda from aws_cdk import ( aws_iot as iot, aws_lambda as _lambda, Stack ) from constructs import Construct IotToLambda(self, 'test_iot_lambda', lambda_function_props=_lambda.FunctionProps( code=_lambda.Code.from_asset('lambda'), runtime=_lambda.Runtime.PYTHON_3_9, handler='index.handler' ), iot_topic_rule_props=iot.CfnTopicRuleProps( topic_rule_payload=iot.CfnTopicRule.TopicRulePayloadProperty( rule_disabled=False, description="Sends data to kinesis data stream", sql="SELECT * FROM 'solutions/construct'", actions=[] ) )) 
 import software.constructs.Construct; import java.util.List; import software.amazon.awscdk.Stack; import software.amazon.awscdk.StackProps; import software.amazon.awscdk.services.lambda.*; import software.amazon.awscdk.services.lambda.Runtime; import software.amazon.awscdk.services.iot.*; import software.amazon.awscdk.services.iot.CfnTopicRule.TopicRulePayloadProperty; import software.amazon.awsconstructs.services.iotlambda.*; new IotToLambda(this, "test-iot-lambda-integration", new IotToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) .iotTopicRuleProps(new CfnTopicRuleProps.Builder() .topicRulePayload(new TopicRulePayloadProperty.Builder() .ruleDisabled(false) .description("Processing of DTC messages from the AWS Connected Vehicle Solution.") .sql("SELECT * FROM 'connectedcar/dtc/#'") .actions(List.of()) .build()) .build()) .build()); 

Pattern Construct Props

Name Type Description
existingLambdaObj? lambda.Function Existing instance of Lambda Function object, providing both this and lambdaFunctionProps will cause an error.
lambdaFunctionProps? lambda.FunctionProps User provided props to override the default props for the Lambda function.
iotTopicRuleProps? iot.CfnTopicRuleProps User provided CfnTopicRuleProps to override the defaults

Pattern Properties

Name Type Description
iotTopicRule iot.CfnTopicRule Returns an instance of iot.CfnTopicRule created by the construct
lambdaFunction lambda.Function Returns an instance of lambda.Function created by the construct

Default settings

Out of the box implementation of the Construct without any override will set the following defaults:

Amazon IoT Rule

  • Configure least privilege access IAM role for Amazon IoT

AWS Lambda Function

  • Configure limited privilege access IAM role for Lambda function
  • Enable reusing connections with Keep-Alive for NodeJs Lambda function
  • Enable X-Ray Tracing
  • Set Environment Variables
  • AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x and higher functions)

Начало работы с AWS IoT Core

Существует несколько способов начать работу с AWS IoT Core в зависимости от конкретного примера использования и выбранного способа интеграции сервиса. Консоль управления AWS представляет собой веб-интерфейс, который можно использовать для доступа ко всем ресурсам AWS IoT и управления ими. Программный доступ к AWS IoT Core осуществляется через интерфейс командной строки AWS и AWS SDK. Также можно воспользоваться эталонной реализацией AWS IoT Device Client.

Для подключения аппаратного устройства, датчика, мобильного приложения или вещи используйте SDK AWS IoT для устройств и выберите один из готовых стартовых наборов AWS для подключения к AWS IoT Core. Кроме того, работу с сервисом AWS IoT Core поддерживает множество сторонних инструментов и шлюзов.

Консоль управления AWS

Консоль управления AWS – это веб-интерфейс для доступа к ресурсам AWS IoT Core и управления ими. Используя Консоль управления AWS, можно легко и безопасно создать вещь, привязать сертификат, опубликовать сообщения и задать действия.

AWS SDK

AWS SDK упрощает написание программного кода, предоставляя API для различных сервисов AWS, включая AWS IoT Core. Все пакеты AWS SDK можно использовать для IoT Core. Пакет с кодом библиотеки, образцами кода и документацией доступен для загрузки.

SDK AWS IoT для устройств

Пакет SDK AWS IoT для устройств позволяет просто и быстро подключить аппаратное или мобильное устройство к AWS IoT Core. Он предлагает расширенные возможности, благодаря чему можно просто взаимодействовать со шлюзом устройств и тенью устройства. Это позволяет быстро начать разработку. SDK для устройств поддерживает различные типы устройств: от устройств начального уровня до аппаратных устройств промышленного уровня.

AWS IoT Device Client

AWS IoT Device Client – это свободная модульная эталонная реализация с открытым исходным кодом на стороне устройства. С помощью этого ПО можно легко подключать устройства к AWS IoT Core и использовать функции AWS IoT Device Management и AWS IoT Device Defender по умолчанию. Оно написано на C++ и может быть скомпилировано и установлено на IoT-устройствах с ОС Embedded Linux.

Чтобы пользоваться им на своем устройстве, загрузите исходный код AWS IoT Device Client с GitHub и ознакомьтесь с подробной информацией, приведенной в файле README.

Как это работает – AWS IoT Device Client

Советник по настройке устройства (ознакомительная версия)

Советник по настройке устройства – это полностью управляемая возможность тестирования на основе облачных технологий, предназначенная для проверки устройств IoT во время разработки. Советник по настройке устройства упрощает тестирование надежности и безопасности подключения устройств IoT к AWS IoT Core. Он предоставляет предварительно созданные тесты, чтобы помочь проверить устройства IoT. Вы сможете выявить наиболее распространенные проблемы ПО устройств и решить их до того, как развертывать устройства при любом масштабе. Подробную информацию см. в разделе руководства пользователя Советник по настройке устройств.

AWS Partner Device Catalog

В каталоге устройств партнеров AWS перечислены устройства IoT, совместимые с сервисами AWS IoT. Здесь можно выбрать комплекты средств разработки и встроенные системы для создания новых устройств, а также готовые устройства, такие как шлюзы, периферийные серверы, датчики и камеры для использования в своих проектах IoT.

Использование оборудования с поддержкой технологий AWS из каталога устройств партнеров упрощает реализацию проектов IoT, так как вы получаете возможность использовать опыт и экспертные знания партнеров APN по оборудованию. Вы можете приобрести у партнеров устройства для оценки, создания прототипов и работы с опытными образцами.

Узнайте, какие устройства IoT совместимы с AWS IoT Core, в AWS Partner Device Catalog.

Узнайте больше о том, как партнеры могут сертифицировать IoT-оборудование для использования в AWS IoT Core согласно программе квалификации устройств AWS IoT Core с помощью советника по настройке устройств для самостоятельной сертификации устройств IoT и внесения их в Каталог устройств партнеров AWS.

AWS IoT Core для LoRaWAN

Чтобы начать работать с AWS IoT Core для LoRaWAN, клиенты могут найти сертифицированные шлюзы LoRaWAN в Каталоге устройств партнеров AWS и выбрать сертифицированные устройства LoRaWAN на консоли управления AWS клиенты смогут зарегистрировать эти шлюзы в AWS IoT Core, указав уникальный идентификатор шлюза (который предоставил поставщик шлюза) и выбрав радиочастоту LoRa. Что касается регистрируемых устройств, клиенты могут ввести данные для доступа к устройствам (идентификаторы и ключи контроля доступа, которые предоставил поставщик устройств) на консоли и следовать справочным значениям по умолчанию для уточнения конфигурации устройств.

Информацию о том, как подключить шлюзы и устройства LoRaWAN и управлять ими, см. в Руководстве пользователя AWS IoT Core для LoRaWAN.

LoRaWAN – это знак, используемый по лицензии, полученной от LoRa Alliance.

AWS IoT Core для Amazon Sidewalk

Чтобы приступить к созданию прототипа устройства с поддержкой Sidewalk, вы можете приобрести готовый комплект для разработки оборудования и загрузить SDK. Подробнее см. в технической документации. Эти наборы для разработки предварительно снабжены сертификатами безопасности, необходимыми для установки зашифрованного соединения с AWS IoT Core и дальнейшей разработки бизнес-приложений с помощью сервисов AWS.

AWS IoT 1-Click

Создавайте решения с помощью функций AWS Lambda на базе ваших устройств AWS IoT 1-Click для создания действий в облаке или в локальной сети.

Предварительная комплектация сертификатами для безопасного подключения поддерживаемых устройств к AWS. Нет необходимости устанавливать или управлять специальным встроенным ПО или сертификатами.

Управляйте устройствами с помощью консоли или мобильного приложения. Система группирует их по функциям или местоположению, а затем создает действия на всех устройствах.

Как это работает

Устройства AWS IoT 1-Click безопасно подключаются к AWS IoT Core без дополнительной настройки, поэтому их можно развертывать без управления сертификатами.

На схеме показано, как можно настроить простые устройства на реализацию таких функций AWS Lambda, как рассылка уведомлений службы технической поддержки, мониторинг активов или пополнение запасов.

Нажмите для увеличения

Примеры использования

Повторный заказ товаров и услуг с помощью функций AWS Lambda

Создавайте функции Lambda, которые совершают вызовы API для размещения заказов в онлайн-магазинах одним щелчком мышью.

Оптимизация управления гостиничным бизнесом и объектами

Запрашивайте услуги, заполняйте заказы и собирайте отзывы с помощью устройств, работающих по методу 1-Click, в таких помещениях, как офисные здания, гостиницы, конференц-залы или аэропорты.

Сокращение эксплуатационных затрат на предприятии

Отправляйте отчеты и запросы на обслуживание оборудования с потенциальным сокращением эксплуатационных затрат на миллионы долларов и избавляясь от необходимости в инспектировании производства.

Получение поддержки нажатием кнопки

Автоматизация поддержки клиентов с помощью созданных партнерами устройств, которые можно настроить для вызова
действий, таких как текстовая поддержка, когда нужна помощь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *