使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何在 GGV2 的组件之间导入/共享库或类?

0

【以下的问题经过翻译处理】 你好呀,

我只是想知道有没有一种方法可以在组件之间重用我的代码,有点像 lambda 层

例如:

foo
-- src
---- send_mqtt

foo2
-- src
---- send_mqtt

那么我如何使用请求 send_mqtt 呢?

感谢您的帮助

profile picture
专家
已提问 1 年前26 查看次数
1 回答
0

【以下的回答经过翻译处理】 你可以创建一个部署send_mqtt的组件,然后创建你的foofoo2组件并依赖于send_mqtt

示例看起来像:

  • send_mqtt
{
  "RecipeFormatVersion": "2020-01-25",
  "ComponentName": "my.send_mqtt",
  "ComponentVersion": "1.0.0",
  "ComponentDescription": "通过MQTT发送消息",
  "ComponentPublisher": "我自己",
  "Manifests": [
    {
      "Platform": {
        "os": "linux"
      },
      "Lifecycle": {
        "Install": "pip3 install --user -r {artifacts:decompressedPath}/send_mqtt/requirements.txt"
      },
      "Artifacts": [
        {
          "URI": "s3://MY_BUCKET/my.send_mqtt/1.0.0/send_mqtt.zip",
          "Unarchive": "ZIP"
        }
      ]
    }
  ]
}

  • foo 示例
{
  "RecipeFormatVersion": "2020-01-25",
  "ComponentName": "my.foo",
  "ComponentVersion": "1.0.0",
  "ComponentDescription": "Foo",
  "ComponentPublisher": "我自己",
  "ComponentDependencies": {
    "my.send_mqtt": {
      "VersionRequirement": "^1.0.0"
    }
  },
  "Manifests": [
    {
      "Platform": {
        "os": "linux"
      },
      "Lifecycle": {
        "Run": "export PYTHONPATH=$PYTHONPATH:{my.send_mqtt:artifacts:decompressedPath}/send_mqtt; python3 {artifacts:path}/foo.py"
      },
      "Artifacts": [
        {
          "URI": "s3://MY_BUCKET/my.foo/1.0.0/foo.py"
        }
      ]
    }
  ]
}

然后,在foo.py中,你就可以导入send_mqtt

祝好,

Philipp

profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则