让我说,我希望有一个分期环境和生产环境。应用程序通过添加主题规则来工作,并使用AWS处理吞食。
在AWS IoT内核中拥有多个环境的最佳方法是什么?
我想过这样做:
dev/*或prod/* )拆分环境
我非常喜欢3,因为它允许我也使用生产设备进行测试。1.和2.没事,但不太灵活。
也许有一些最佳做法?
发布于 2020-10-20 21:27:55
我们已经在我们的项目中经历了几个月的阶段主题前缀方法。我认为我们会继续这样做,但我在下面已经提到了一些副作用。
阶段作为主题前缀
大多数时间消息将被路由到IoTCore规则,并将触发一些AWS服务,如Lambda/S3/Dynamo等。
...
custom:
myStage: ${opt:stage, self:provider.stage}
STAGES:
- dev
- prod
provider:
name: aws
runtime: nodejs12.x
region: eu-central-1
environment:
STAGE: ${self:custom.myStage}
functions:
someLambdaFunction:
timeout: 180
handler: someLambdaFunction.handler
events:
- iot:
name: "iotRuleName_${self:custom.myStage}"
sqlVersion: "2016-03-23"
sql: "SELECT * as data , topic() as topicName FROM '${self:custom.myStage}/room/+/temperature'"因此,当您部署到开发环境中的无服务器应用程序时,规则名将是iotRuleName_dev,规则sql将类似于dev/room/+/temperature。
但也有一些问题:
您还需要考虑使用基本摄食来降低成本
阶段为区域
还可以将整个应用程序环境划分为AWS区域,没有冲突,没有副作用。但是你应该把所有的东西都平分,好让你在晚上睡得好。因为访问不同区域的实体会造成很大的混乱。
自定义应用
构建您自己的IoT核心。如果你能做到这一点。不仅要用,还要卖。
https://stackoverflow.com/questions/52078820
复制相似问题