我不相信(或者至少在文档中没有看到任何地方)您可以将 Cloud Functions 指向 GitHub 存储库。话虽如此,您可以执行以下操作:
确保已安装 ibmcloud CLI,并且您还安装了 Cloud Functions 插件 ibmcloud plugin install cloud-functions
-
ibmcloud login - 您需要 CLI 中的有效会话,或者使用具有正确 IAM 访问权的 IBM Cloud API 密钥或服务 ID 密钥部署到 IBM Cloud ibmcloud login --apikey "YOUR_API_KEY" 中的 Cloud Function 名称空间。
-
ibmcloud target -r eu-gb - 您需要定位云函数所在的正确区域。
-
ibmcloud target -g test-resource-group - 登录后,您需要确保定位到将推送云功能的正确资源组。
如果你像我一样懒惰,那么你可以像这样将上述所有 3 个命令合并为 1 个:ibmcloud login --apikey "YOUR_API_KEY" -r "eu-gb" -g "test-resource-group"
-
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 部署到云端。