我非常高兴有机会通过Cloud Native Limited Availability Program来测试Oracle功能。 去年,当我上次尝试在Oracle Groundbreaker APAC巡回赛中在Oracle Cloud中运行无服务器功能时,有两种选择。 您可以在虚拟机中运行我自己的Fn服务器,也可以在托管的Kubernetes集群中进行设置。 现在,第三个选项可用!
Oracle Functions是基于Oracle Cloud Infrastructure( OCI )构建的,并为Fn项目提供了托管环境。 这意味着您不必自己手动管理Fn群集。 这也意味着在Oracle Functions上运行的任何功能也将在任何Fn服务器上运行,这为您提供了充分的灵活性。
Fn项目支持用Go , Java , Node.js , Python或Ruby编写的功能。 我在此测试中使用的fn-duke函数当然是用Java编写的。
package eu.agilejava.fn;public class HelloFunction {public String handleRequest(String input) {String configuredName = System.getenv("name");String name = (input == null || input.isEmpty()) ? configuredName : input;return "Hello, " + name + "\n";}
}
通过指向您要包含功能的功能应用程序来完成部署。
fn deploy --app FunctionDuke
可以通过func.yaml文件或使用fn CLI工具配置该功能,如下所示:
fn config function FunctionDuke fn-duke name World
然后,配置的属性将显示在Oracle Cloud Function仪表板的详细信息视图中。
可以使用Fn CLI工具来调用该功能
fn invoke FunctionDuke fn-duke
或者使用Oracle提供的名为oci-curl的便利脚本发送签名的请求 。
oci-curl "x3vzdahhy3a.us-phoenix-1.functions.oci.oraclecloud.com" get "/t/fn-duke-trigger" -d 'Duke'
结论
在投资Fn项目并将其用作Oracle Functions平台的基础时,Oracle是一个不错的选择。 它与Fn的集成非常好,并且不需要任何额外的工具即可开始。
翻译自: https://www.javacodegeeks.com/2019/02/first-look-oracle-functions.html