![](/img/trans.png)
[英]How to set isSessionsEnabled = true in function.json?
[英]azure function in java configure using function.json
我正在嘗試創建用Java編寫並使用function.json文件(而不是使用注釋)進行配置的Azure函數。
首先,我遵循了MS 教程 (可以正常運行)。
接下來,我想修改類刪除功能注釋和補充指示的function.json 這里的部分“同樣的功能沒有寫注釋”。
該類源代碼現在為:
public class Function {
public static String hello(String req, ExecutionContext context) {
return String.format("Hi, %s!", req);
}
}
我的function.json文件是
{
"scriptFile": "ServiceBusQueueMsgToLogWriter-1.0-SNAPSHOT.jar",
"entryPoint": "com.oneadvanced.adv365.mgdsvc.azure.func.test1.Function.hello",
"bindings": [
{
"type": "httpTrigger",
"name": "req",
"direction": "in",
"authLevel": "anonymous",
"methods": [ "post" ]
},
{
"type": "http",
"name": "$return",
"direction": "out"
}
]
}
運行命令的輸出:
mvn clean package
包括輸出:
AI: INFO 12-10-2017 21:50, 1: Configuration file has been successfully found as resource
AI: INFO 12-10-2017 21:51, 1: Configuration file has been successfully found as resource
[INFO]
[INFO] Step 1 of 6: Searching for Azure Function entry points
[INFO] Reflections took 33 ms to scan 1 urls, producing 0 keys and 0 values
[INFO] 0 Azure Function entry point(s) found.
[INFO]
[INFO] Step 2 of 6: Generating Azure Function configurations
[INFO] No Azure Functions found. Skip configuration generation.
這讓我想知道function.json文件是否不在正確的位置...
是否有人知道將Java寫的Azure函數的function.json文件放在正確的位置?
我試過了:
在每種情況下相同的結果:(
如果有任何關於我應該做什么的指示,我將不勝感激。
謝謝,安迪
給定功能應用程序中所有功能的代碼都位於一個根文件夾中,該文件夾包含一個主機配置文件和一個或多個子文件夾,每個子文件夾都包含一個單獨功能的代碼。
示例結構 :
wwwroot
| - host.json
| - mynodefunction
| | - function.json
| | - index.js
| | - node_modules
| | | - ... packages ...
| | - package.json
| - mycsharpfunction
| | - function.json
| | - run.csx
您可以從官方文檔中找到上述說明。
但是,我注意到您的function.json
文件未設置disabled
屬性。 將disabled
屬性設置為false
以啟用此處提到的功能。
{
"bindings": [
{
"name": "myBlob",
"type": "blobTrigger",
"direction": "in",
"path": "jaygong/test",
"connection": "AzureWebJobsStorage"
}
],
"disabled": false
}
更新答案:
我嘗試通過配置function.json
提供的步驟創建自己的azure函數,並重現了您的問題!
我的功能代碼:
package cn.gjj;
public class Function {
public static String hello(String in) {
return in;
}
}
我的功能測試代碼:
package cn.gjj;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* Unit test for Function class.
*/
public class FunctionTest {
/**
* Unit test for hello method.
*/
@Test
public void testHello() throws Exception {
final Function function = new Function();
final String ret = function.hello("function");
assertEquals("function", ret);
}
}
我的function.json文件:
{
"scriptFile": "JayGongTestAzureFunction-1.0-SNAPSHOT.jar",
"entryPoint": "cn.gjj.Function.echo",
"bindings": [
{
"type": "httpTrigger",
"name": "req",
"direction": "in",
"authLevel": "anonymous",
"methods": [ "post" ]
},
{
"type": "http",
"name": "$return",
"direction": "out"
}
]
}
當我運行命令mvn clean package
,日志顯示為與您相同。
AI: INFO 17-10-2017 14:07, 1: Configuration file has been successfully found as resource
AI: INFO 17-10-2017 14:07, 1: Configuration file has been successfully found as resource
[INFO]
[INFO] Step 1 of 6: Searching for Azure Function entry points
[INFO] Reflections took 31 ms to scan 1 urls, producing 0 keys and 0 values
[INFO] 0 Azure Function entry point(s) found.
[INFO]
[INFO] Step 2 of 6: Generating Azure Function configurations
[INFO] No Azure Functions found. Skip configuration generation.
[INFO]
[INFO] Step 3 of 6: Validating generated configurations
[INFO] No configurations found. Skip validation.
[INFO]
[INFO] Step 4 of 6: Saving empty host.json
[INFO] Successfully saved to E:\TestAzureFunction\JayGongTestAzureFunction\target\azure-functions\jaygongtestazurefunction-20171017132623892\host.json
[INFO]
[INFO] Step 5 of 6: Saving configurations to function.json
[INFO] No configurations found. Skip save.
[INFO]
[INFO] Step 6 of 6: Copying JARs to staging directory E:\TestAzureFunction\JayGongTestAzureFunction\target\azure-functions\jaygongtestazurefunction-20171017132623892
經過對function.json
配置方式和annotations
方式的仔細比較,我發現Project/target/azure-functions/functionName/
文件夾的目錄不同。
annotations
方式:
function.json
配置方式:
請注意,如果在mvn compile
后未找到function.json
文件,請在pom.xml
文件中添加以下關鍵行。
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>host.json</include>
<include>local.settings.json</include>
**<include>function.json</include>**
</includes>
</resource>
</resources>
解:
創建一個工作文件夾並將您的function.json
文件移到其中,然后它對我function.json
。
請試一試。
希望對您有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.