gpt4 book ai didi

java - IBM Cloud Functions CORS 支持的性能差异

转载 作者:行者123 更新时间:2023-12-02 11:35:14 24 4
gpt4 key购买 nike

我正在向我的 OpenWhisk/IBM Cloud 功能添加 CORS 支持。但在对函数进行修改( -a web-custom-options true )后,我注意到性能有所下降。为了隔离问题,我创建了一个简单的函数,如下所示:

public static JsonObject main(JsonObject args) throws IOException {


String method = args.get("__ow_method").getAsString();
System.out.println(method+" handle");
if (method.equalsIgnoreCase("OPTIONS")) {
JsonObject responseJSON = new JsonObject();
//add CORS headers

JsonObject headers = new JsonObject();
headers.addProperty("Access-Control-Allow-Headers", "*");
headers.addProperty("Access-Control-Allow-Origin", "https://mjonker.github.io");
headers.addProperty("Access-Control-Allow-Credentials", "true");

responseJSON.add("headers", headers);
responseJSON.addProperty("statusCode", 200);

return responseJSON;
} else {

JsonObject responseJSON = new JsonObject();
JsonObject headers = new JsonObject();
headers.addProperty("Access-Control-Allow-Headers", "*");
headers.addProperty("Access-Control-Allow-Origin", "https://mjonker.github.io");
headers.addProperty("Access-Control-Allow-Credentials", "true");
headers.addProperty("Content-Type", "application/json");
responseJSON.add("headers", headers);
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");
JsonObject answerJSON=new JsonObject();
JsonArray timeArray = new JsonArray();
timeArray.add( "It is "+sdf.format(now));
answerJSON.add("text",timeArray);
responseJSON.add("body",answerJSON );
responseJSON.addProperty("statusCode", 200);
return responseJSON;

}
}

有两种情况1. .http 端点和 web-custom-options true2. .json 端点和 web-custom-options false

从截图中可以看出,OPTIONS 的差异很大,而且 POST 回复的差异也很显着。我可以做些什么来获得 CORS 支持并获得一定的性能吗?我在 JAVA 代码中做错了什么吗?

enter image description here enter image description here

最佳答案

当您使用自定义选项响应创建网络操作时,相应的函数将执行并生成选项响应。但是,如果您允许默认 OPTIONS 响应生效,则不会执行任何函数,并且默认响应由 API 主机提供。

默认响应如下所示:https://github.com/apache/incubator-openwhisk/blob/master/docs/webactions.md#options-requests

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: OPTIONS, GET, DELETE, POST, PUT, HEAD, PATCH
Access-Control-Allow-Headers: Authorization, Content-Type

由于您正在执行 Java 操作,因此启动时间可以解释您所看到的性能。我看到初始化时间为 313 毫秒,执行冷启动的持续时间为 342 毫秒(当然,这绝不是代表)。

关于java - IBM Cloud Functions CORS 支持的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48991463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com