繁体   English   中英

基于 Java 的 Azure 函数的服务总线输出绑定不起作用 - 没有错误

Service Bus Output binding for Java based Azure Function is not working - No errors

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我尝试构建由 HTTP 触发的基于 Java 的 Azure 函数并将数据发送到服务总线的主题。 这是基于示例代码。 HTTP 触发器工作正常(返回 Hello 名称),但我没有收到任何发送到服务总线的数据。 而且我没有收到错误消息。 我已经使用基于 C# 的函数测试了 local.settings.json 中的“queueconstring”是正确的。

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus-output?tabs=java

/* 20.3.2020 HTTP Trigger and Topic output binding*/
package com.function;

import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;

/**
 * Azure Functions with HTTP Trigger.
 */
public class HttpTriggerSBOutputJava {
    /**
     * This function listens at endpoint "/api/HttpTriggerSBOutputJava". Two ways to invoke it using 
   "curl" command in bash:
     * 1. curl -d "HTTP Body" {your host}/api/HttpTriggerSBOutputJava
     * 2. curl {your host}/api/HttpTriggerSBOutputJava?name=HTTP%20Query
     */


    @FunctionName("HttpTriggerSBOutputJava")
    public HttpResponseMessage run(
            @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,
        @ServiceBusTopicOutput(name = "message", topicName = "ContactInformationChanged", subscriptionName = "Playground", connection = "queueconstring") OutputBinding<String> message,
        final ExecutionContext context) {

        String name = request.getBody().orElse("Azure Functions");

        message.setValue(name);
        return request.createResponseBuilder(HttpStatus.OK).body("Hello, " + name).build();

    }

}

1 个回复

您可以使用以下代码,它在我这边工作正常:

函数.java

package com.function;

import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;

/**
 * Azure Functions with HTTP Trigger.
 */
public class Function {
    /**
     * This function listens at endpoint "/api/HttpExample". Two ways to invoke it using "curl" command in bash:
     * 1. curl -d "HTTP Body" {your host}/api/HttpExample
     * 2. curl "{your host}/api/HttpExample?name=HTTP%20Query"
     */
    @FunctionName("HttpExample")
    @ServiceBusTopicOutput(name = "message", topicName = "test", subscriptionName = "test", connection = "ServiceBusConnection")
    public HttpResponseMessage run(
            @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context) {
        context.getLogger().info("Java HTTP trigger processed a request.");

        // Parse query parameter
        String query = request.getQueryParameters().get("name");
        String name = request.getBody().orElse(query);

        if (name == null) {
            return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body("Please pass a name on the query string or in the request body").build();
        } else {
            return request.createResponseBuilder(HttpStatus.OK).body("Hello, " + name).build();
        }
    }
}

本地设置.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "java",
    "ServiceBusConnection":"Endpoint=sb://bowmantest.servicebus.windows.net/;SharedAccessKeyName=test;SharedAccessKey=xxxxxxxxx"
  }
}
1 Azure 函数 v3 - Twilio 输出绑定不起作用

我正在尝试使用 TwilioSms 输出绑定在 .net Core 3.1 上创建一个 azure 函数 (v3)。 我也参考了微软官方文档 我的功能看起来像: 我希望该方法异步运行并在一次调用中触发消息列表,因此,使用输出绑定而不是 return 语句 在尝试了一切之后,我仍然收到错误: ...

2 如何在使用输出绑定到服务总线的 azure 函数中记录错误?

我有一个 azure 函数,它使用输出绑定将消息发送到服务总线主题。 如果消息无法添加到服务总线,我需要记录自定义数据,但只有在内置重试失败之后。 问题是,我不确定在哪里写这样的日志语句? 以下是否可以接受? 我的猜测是这会在重试策略失败之前记录错误,所以如果发生暂时性错误,下面的日志语句将在每次重 ...

4 如何通过服务总线消息触发 Azure 函数并将消息输出到单个 Azure 函数中的服务总线

我需要根据服务总线消息触发一个 Azure 函数,该函数将执行一些逻辑并将一些消息写回服务总线,这些消息可能会触发另一个 Azure 函数等。 我不了解如何以标准方式正确地做到这一点。 基于本文档Azure 函数的 Azure 服务总线触发器,我们可以做第一部分:通过服务总线消息触发 azure ...

5 为什么当有两个辅助角色访问时,Azure服务总线不起作用?

我正在使用服务总线在Web角色和辅助角色之间进行通信,但是它给了我一些不稳定的结果。 我已经将我的云项目部署到了​​蔚蓝。 令人惊讶的是,当我只运行已部署的项目时,服务总线运行良好,但是当我也在使用该服务总线的本地仿真器上运行相同的项目时,服务总线也会出现故障,因为所有消息都将变成死信或没有 ...

9 如何使用 Azure 函数绑定发送预定的服务总线队列消息?

我有一个用 node.js 编写的 Azure 函数,它使用输出绑定成功地将消息发送到 Azure 服务总线队列。 如何仍使用绑定语法将预定消息发送到同一个队列? 如果可能的话,我宁愿在不安装 node.js sdk 的情况下执行此操作。 绑定文档没有提到预定的消息。 然而,有趣的是,这个评论 ...

10 图片上传不起作用,没有错误

这是我的HTML表单: 和build.php : ZipArchive()函数的效果很好,在build.php中显示的东西上面有创建install.plist的东西,它工作得很好,.plist是在正确的目录下创建的,并编译为zip。 选择要上传的图片时,在/zips/uploa ...

2018-02-26 03:48:15 1 36   php
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM