のAWSのiotデモ
8058 ワード
建築
デモ
demo react web 私たちがテスト/TestCountパブからデータを公表する必要があるので、ここでリアルタイムでありません.パイ
CDK
増幅する
チャールス
IOTと証明書
トピックルール
チェックAWSサービスエンドポイント
aws iot describe-endpoint --region ap-southeast-1
ダウンロードリンク
https://www.amazontrust.com/repository/AmazonRootCA1.pem \
https://www.amazontrust.com/repository/AmazonRootCA2.pem \
https://www.amazontrust.com/repository/AmazonRootCA3.pem \
https://www.amazontrust.com/repository/AmazonRootCA4.pem \
openssl genrsa -out root_CA_key_filename.key 2048
openssl req -x509 -new -nodes \
-key root_CA_key_filename.key \
-sha256 -days 1024 \
-out root_CA_cert_filename.pem
キーと証明書
aws iot create-keys-and-certificate \
--set-as-active \
--certificate-pem-outfile esp-certificate.crt \
--public-key-outfile esp-public.key \
--private-key-outfile esp-private.key \
--region ap-southeast-1
テキストとしてAWS CLI出力を構成する
aws iot describe-certificate --certificate-id
証明書、X 509証明書、およびポリシー
IOTがAWS IOTコアにデータを書き込むことができるようにするためには、X 509証明書を物理的なIOTデバイスに接続する必要があります.また、ACTでX 509証明書にポリシーをアタッチする必要があります.
const policy = new aws_iot.CfnPolicy(
this,
'PolicyForDemoDevice',
{
policyName: 'PolicyForDemoDevice',
policyDocument: new aws_iam.PolicyDocument(
{
statements: [
new aws_iam.PolicyStatement(
{
actions: ['iot:*'],
resources: ['*'],
effect: aws_iam.Effect.ALLOW
}
)
]
}
)
}
)
const attachPolicy = new aws_iot.CfnPolicyPrincipalAttachment(
this,
'AttachPolicyForDemoDevice',
{
policyName: policy.policyName!.toString(),
principal: props.certificateArn
}
)
attachPolicy.addDependsOn(
policy
)
const attachCert = new aws_iot.CfnThingPrincipalAttachment(
this,
'AttachCertificiateToThing',
{
thingName: thing.thingName!.toString(),
principal: props.certificateArn
}
)
attachCert.addDependsOn(
thing
)
IOT規則と役割
IOSルールをS 3、DynamoDB、FireSomeのような他のサービスに配信するためには、各ルールにロールをアタッチする必要があります.
const role = new aws_iam.Role(
this,
'RoleForIoTCoreToAccessS3',
{
roleName: 'RoleForIoTCoreToAccessS3',
assumedBy: new aws_iam.ServicePrincipal('iot.amazonaws.com')
}
)
role.attachInlinePolicy(
new aws_iam.Policy(
this,
'PolicyForIoTcoreToAccessS3',
{
policyName: 'PolicyForIoTcoreToAccessS3',
statements: [
new aws_iam.PolicyStatement(
{
actions: ['s3:*'],
resources: ['arn:aws:s3:::bucketName/*']
}
),
new aws_iam.PolicyStatement(
{
actions: ['firehose:*'],
resources: ['*']
}
),
new aws_iam.PolicyStatement(
{
actions: ['dynamodb:*'],
resources: ['*']
}
)
]
}
)
)
const topicRule = new aws_iot.CfnTopicRule(
this,
'TopicRuleDemo',
{
ruleName: 'TopicRuleDemo',
topicRulePayload: {
actions: [
{
firehose: {
deliveryStreamName: firehoseDeilvery.deliveryStreamName,
roleArn: role.roleArn
}
},
{
s3: {
bucketName: 'bucketName',
key: 'iot-one',
roleArn: role.roleArn
},
},
{
dynamoDb: {
hashKeyField: 'id',
hashKeyValue: 'device01',
hashKeyType: 'STRING',
rangeKeyField: 'timestamp',
rangeKeyValue: '${timestamp()}',
rangeKeyType: 'STRING',
roleArn: role.roleArn,
tableName: table.tableName
}
}
],
sql: `SELECT *, cast(timestamp() as STRING) AS timestamp FROM 'topic/subtopic'`
}
}
)
増幅、認知とAWS IOTポリシー
Amplifyを使用するには、AWSのIOTトピックを購読するには、Conigto IDにポリシーを添付する必要があります.
import Amplify, { Auth, PubSub } from 'aws-amplify';
Auth.currentCredentials().then(creds => console.log(creds));
The Cognito ID can be found from the creds log
aws iot attach-policy --policy-name 'PolicyForDemoDevice' --target ap-southeast-1:41f19265-5ecd-4c86-8b34-cc58dee6c2f0
aws iot attach-policy --policy-name 'PolicyForDemoDevice' --target ap-southeast-1:2d1afbd5-2d7d-43ec-b906-a40ac2416c10
Reference
この問題について(のAWSのiotデモ), 我々は、より多くの情報をここで見つけました https://dev.to/entest/aws-iot-demo-with-cdk-and-amplify-1i69テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol