gpt4 book ai didi

amazon-web-services - AWS IoT Core 多环境

转载 作者:行者123 更新时间:2023-12-04 12:25:51 27 4
gpt4 key购买 nike

假设我想要一个临时环境和一个生产环境。该应用程序通过添加主题规则来工作,并使用 AWS lambda 处理摄取。

在 AWS IoT Core 中拥有多个环境的最佳方式是什么?

我想过这样做:

  • 设置两个帐户(在我的项目中不可能)
  • 按主题前缀拆分环境,如 dev/*prod/*
  • 意味着设备需要提前知道它属于哪里
  • 将设备添加到组并执行基于规则的过滤
  • 是否有任何指导如何做到这一点?我知道我可以调用 lambda 函数,但这似乎是个坏主意。拥有基于组的过滤器会很棒,但现在无法访问设备的组或属性

  • 我非常喜欢 3. 因为它允许我也使用生产设备进行测试。 1. 和 2. 都可以,但不是很灵活。

    也许有一些最佳实践?

    最佳答案

    我们已经在我们的项目中体验了阶段主题前缀方法几个月了。我认为我们一直在这样做,但我在下面提到了一些副作用。
    舞台作为主题前缀
    大多数情况下,消息将路由到 IoTCore 规则并触发一些 AWS 服务,例如 Lambda/S3/Dynamo 等。如果您使用的是无服务器,这可以通过 env 变量实现,如下所示

    ...
    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但是有一些问题:
  • 正如你所说的这种方法,endnodes 应该知道前缀值。
  • AWS 将您的主题级别限制为 8 -最大 7 个正斜杠 (/) - 因此,通过为所有主题添加 stage 作为前缀,您基本上可以将限制减少到 7 AWS IoT Core Quotas
  • 您仍然需要检查 thingName 冲突。您不能同时在多个环境中使用相同的 thingName 并且您不想处理它。为事物名称添加阶段前缀可以解决混淆。类似“DEV-Thing1”的东西

  • 您还可以考虑使用 basic ingest降低成本
    作为区域的舞台
    还可以在 AWS 区域之间拆分整个应用程序环境,无冲突,无副作用。但是你应该几乎把所有的东西都分开,在你晚上不好的时候睡个好觉。因为访问不同区域的实体可能会造成很大的困惑。
    定制应用
    构建您自己的 IoT 核心。好吧,如果你做到了这一点。不仅使用它,而且出售它。

    关于amazon-web-services - AWS IoT Core 多环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52078820/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com