IBM Cloud Functions:如何使用 Terraform 创建安全的 Web 操作

问题描述

我可以create a new IBM Cloud Functions action using the Terraform provider

resource "ibm_function_action" "sendEmail" {
  name      = "${ibm_function_package.cloudmailer.name}/sendEmail"
  namespace = ibm_function_namespace.namespace.name

  exec {
    kind = "nodejs:12"
    code = file("smtp_email.js")
  }
  publish = true
  user_defined_parameters = var.server_config
}

如何将上述操作转换为 web action?如何指定密码保护的配置?

解决方法

这可以使用 annotations argument 来实现。它保存这些 documented action annotations 的键/值对。

resource "ibm_function_action" "sendEmail" {
  name      = "${ibm_function_package.cloudmailer.name}/sendEmail"
  namespace = ibm_function_namespace.namespace.name

  exec {
    kind = "nodejs:12"
    code = file("smtp_email.js")
  }
  publish = true
  user_defined_parameters = var.server_config
  user_defined_annotations =  <<EOF
    [
      {
        "key": "web-export","value": true
      },{
        "key": "require-whisk-auth","value": "your-web-secret"
      }
    ]
EOF

}

上面的 web-export 将操作转换为 Web 操作,require-whisk-auth 启用身份验证以确保安全,其值设置密码。我已经把它变成了 working sample

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...