@softchef/cdk-iot-device-management
v2.0.0
Published
IoT device management is composed of things, thing types, thing groups, jobs, files API services. The constructs can be used independently, that are based on full-managed service to create an API Gateway & Lambda function.
Downloads
204
Maintainers
Readme
CDK Construct - IoT Device Management
IoT device management is composed of things, thing types, thing groups, jobs, files API services. The constructs can be used independently, that are based on full-managed service to create an API Gateway & Lambda function.
Installation
npm install @softchef/cdk-iot-device-management
or
yarn add @softchef/cdk-iot-device-management
Why
- Integrate RestAPI and AWS IoT core to implement access control.
- Manage device firmware information.
- Manage device, such as create an OTA jobs.
This construct library provides five constructs:
- Thing Type API construct - Create and modify thing types' information.
- Thing API construct - Create and modify things' information.
- Thing Group construct - Create and modify thing groups' information.
- Job API construct - Create and modify thing's jobs.
- File API construct - Integrate API Gateway and DynamoDB to store device firmware information.
Constructs
Thing Type API construct
Use thing type API to manage thing types.
import { ThingTypeApi } from '@softchef/cdk-iot-device-management'
const thingTypeApi = new ThingTypeApi(scope, id, {
authorizationType?: apigateway.AuthorizationType;
authorizer?: apigateway.IAuthorizer
})
Thing API construct
Use thing API to manage things' information.
import { ThingApi } from '@softchef/cdk-iot-device-management'
const thingApi = new ThingApi(scope, id, {
authorizationType?: apigateway.AuthorizationType;
authorizer?: apigateway.IAuthorizer
})
Thing Group API construct
Use thing API to manage thing groups' information.
import { ThingGroupApi } from '@softchef/cdk-iot-device-management'
const thingGroupApi = new ThingGroupApi(scope, id, {
authorizationType?: apigateway.AuthorizationType;
authorizer?: apigateway.IAuthorizer
})
Job API construct
Use job API to manage jobs' information.
import { JobApi } from '@softchef/cdk-iot-device-management'
const jobApi = new JobApi(scope, id, {
authorizationType?: apigateway.AuthorizationType;
authorizer?: apigateway.IAuthorizer;
scheduleFunction: ScheduleFunction
})
The ScheduleFunction is support to custom create job by schedule time.
File API construct
Use File API to manage IoT devices firmware. File API contains category and file.
import { fileApi } from '@softchef/cdk-iot-device-management'
const FileApi = new FileApi(scope, id, {
authorizationType?: apigateway.AuthorizationType;
authorizer?: apigateway.IAuthorizer;
})
Category Table Schema
| Name | Schema | Primary Index | GSI(Query By ParentId) | | ----------- | ------ | ------------- | ---------------------- | | categoryId | String | Partition Key | | | parentId | String | | Partition Key | | name | String | | | | description | String | | |
File Table Schema
| Name | Schema | Primary Index | GSI(Query By CategoryId And Locale) | GSI(Get File By Checksum And Version) | | ------------ | ------ | ------------- | ----------------------------------- | ------------------------------------- | | fileId | String | Partition Key | | | | categoryId | String | | Partition Key | | | checksum | String | | | Partition Key | | version | String | | | Sort Key | | checksumType | String | | | | | location | String | | | | | locale | String | | Sort Key | | | summary | String | | | | | description | String | | | | | updatedAt | Number | | | | | createdAt | Number | | | |
License
This code is licensed under the Apache License 2.0. See the LICENSE file.