【问题标题】:How can I create an ibm cloud function that deploy from code on a github repo?如何创建从 github 存储库上的代码部署的 ibm 云功能?
【发布时间】:2021-11-16 08:11:48
【问题描述】:

我想在 IBM Cloud Functions 中为触发器创建一个操作,但我不想只在控制台中添加代码,而是希望从 github 存储库上的代码部署该操作。我该怎么做?

提前致谢。

【问题讨论】:

  • “从 GitHub 获取代码”与“从 GitHub 部署”一样吗?
  • 是的,我就是这个意思
  • 您可以使用持续交付服务。或者,如果它只是一个脚本/手动命令来获取代码并使用 CLI 部署它。

标签: ibm-cloud ibm-cloud-functions


【解决方案1】:

我不相信(或者至少在文档中没有看到任何地方)您可以将 Cloud Functions 指向 GitHub 存储库。话虽如此,您可以执行以下操作:

确保已安装 ibmcloud CLI,并且您还安装了 Cloud Functions 插件 ibmcloud plugin install cloud-functions

  1. ibmcloud login - 您需要 CLI 中的有效会话,或者使用具有正确 IAM 访问权的 IBM Cloud API 密钥或服务 ID 密钥部署到 IBM Cloud ibmcloud login --apikey "YOUR_API_KEY" 中的 Cloud Function 名称空间。
  2. ibmcloud target -r eu-gb - 您需要定位云函数所在的正确区域。
  3. ibmcloud target -g test-resource-group - 登录后,您需要确保定位到将推送云功能的正确资源组。

如果你像我一样懒惰,那么你可以像这样将上述所有 3 个命令合并为 1 个:ibmcloud login --apikey "YOUR_API_KEY" -r "eu-gb" -g "test-resource-group"

  1. ibmcloud functions namespace target test-function-namespace - 最后,登录后,您需要使用 cloud-functions 插件来定位将推送 Cloud Function 的正确命名空间。

部署云功能有多种方式。例如,使用 CLI 推送云功能或使用manifest.yml 文件作为配置。

使用 IBM Cloud CLI

假设 test-action 已创建,则创建触发器。

ibmcloud functions trigger create test-trigger --feed test-action

使用清单文件

以下示例使用云函数触发器每 15 分钟触发一次test-action 云函数。

manifest.yaml

project:
  namespace: _
  packages:
    test-package:
      actions:
        test-action:
          function: ./src/actions/action.js
          runtime: nodejs:12
      
      triggers:
        test-trigger:
          feed: /whisk.system/alarms/interval
          inputs:
            minutes: 15

      rules:
        rile-test-trigger:
          trigger: test-trigger
          action: test-action

要部署它,您基本上只需:

ibmcloud functions deploy -m ./manifest.yaml

这两个选项基本上都可以连接到像 Travis 或 Jenkins 这样的 CD 工具中,并且可以自动将最新的更改从 GitHub 部署到云端。

【讨论】:

    猜你喜欢
    • 2019-01-10
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2023-04-01
    • 2014-03-23
    相关资源
    最近更新 更多