创建没有名称前缀的HTTP函数

时间:2018-03-15 16:49:16

标签: azure kotlin azure-functions

我想设置以下端点:

@FunctionName("/network-map/hello")
fun hello(@HttpTrigger(name = "", methods = ["get"], authLevel = AuthorizationLevel.ANONYMOUS)
          @BindingName("name") name: String?,
          @BindingName("item") item: String?,
          context: ExecutionContext): String {
    return "Hello $name"
}

@FunctionName("/network-map/publish")
fun postNodeInfo(@HttpTrigger(name = "", methods = ["post"], authLevel = AuthorizationLevel.ANONYMOUS, dataType = "binary")
                 input: ByteArray): String {
    val deSerializedNode = input.deserialize<SignedNodeInfo>()
    deSerializedNode.verified()
    deSerializedNode.raw.hash
    return "ok";
}

@FunctionName("/network-map")
fun getNetworkMap(@HttpTrigger(name = "", methods = ["get"], authLevel = AuthorizationLevel.ANONYMOUS) token: String?): ByteArray {
    return ByteArray(0)
}

我在创建/ network-map时遇到问题,因为我无法弄清楚如何创建没有前缀或后缀的端点。我正在通过下面的注释

进行配置
[15/03/2018 16:46:20] Job host started
[15/03/2018 16:46:20] The following 1 functions are in error:
[15/03/2018 16:46:20] network-map: The binding name  is invalid. Please assign a valid name to the binding.
[15/03/2018 16:46:20] 

它快乐地建立,但在运行中:

{{1}}

我很高兴直接使用JSON配置来实现这一目标,但我无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:1)

FunctionName属性用于将可读标签应用于您的函数,它不应该用于附加路由信息。当您没有明确提供路由信息时,它将用作后备值。

您可以通过添加其他参数@HttpTrigger来指定route = "network-map/publish"注释中的路由信息​​。