Aws lambda 我们可以将kafka consumer与Ballerina一起用作AWS Lambda函数吗?

Aws lambda 我们可以将kafka consumer与Ballerina一起用作AWS Lambda函数吗?,aws-lambda,cloud,integration,ballerina,ballerina-kafka,Aws Lambda,Cloud,Integration,Ballerina,Ballerina Kafka,我正在试用ballerina,想知道我们是否可以有一个ballerina程序,它是一个卡夫卡消费者,可以作为AWS Lambda函数公开。AWS Lambda函数需要从某个地方触发(不作为侦听器工作)。在这种情况下,你将无法暴露芭蕾舞演员卡夫卡与亚马逊AWS的消费者 不能将Kafka侦听器创建为AWS lambda,但可以将非侦听器类型的Kafka使用者创建为AWS lambda函数 @awslambda:Function function kafkaConsumerService(awslam

我正在试用ballerina,想知道我们是否可以有一个ballerina程序,它是一个卡夫卡消费者,可以作为AWS Lambda函数公开。

AWS Lambda函数需要从某个地方触发(不作为侦听器工作)。在这种情况下,你将无法暴露芭蕾舞演员卡夫卡与亚马逊AWS的消费者

不能将Kafka侦听器创建为AWS lambda,但可以将非侦听器类型的Kafka使用者创建为AWS lambda函数

@awslambda:Function
function kafkaConsumerService(awslambda:Context ctx, json inputs) returns json|error {

  kafka:ConsumerConfig consumerConfig = {
    // Consumer configs
  };

  kafka:SimpleConsumer kafkaConsumer = new(consumerConfig);

  // You can implement Kafka consume functionalities here.
  // For an example, you can poll consumer using kafkaConsumer->poll(<duration>);
  var results = kafkaConsumer->poll(1000);

  if (results is error) {
    // Handle error
  } else {
    // Handle records received
  }
}
您可以编写ballerina函数来处理Kafka
SimpleConsumer
对象的函数(当前的ballerina By Guide for Kafka将Kafka consumer视为服务侦听器),并使用该函数创建AWS lambda

WSO2 Kafka connector提供了各种手动处理Kafka消费者的功能。有关更多信息,请阅读文档,网址为

您可以通过在函数顶部添加AWS lambda注释来生成AWS lambda

@awslambda:Function
function kafkaConsumerService(awslambda:Context ctx, json inputs) returns json|error {

  kafka:ConsumerConfig consumerConfig = {
    // Consumer configs
  };

  kafka:SimpleConsumer kafkaConsumer = new(consumerConfig);

  // You can implement Kafka consume functionalities here.
  // For an example, you can poll consumer using kafkaConsumer->poll(<duration>);
  var results = kafkaConsumer->poll(1000);

  if (results is error) {
    // Handle error
  } else {
    // Handle records received
  }
}
@awslambda:函数
函数kafkaConsumerService(awslambda:Context ctx,json inputs)返回json |错误{
卡夫卡:消费者配置消费者配置={
//消费者配置
};
卡夫卡:简单消费者卡夫卡消费者=新(消费者配置);
//您可以在此处实现卡夫卡消费功能。
//例如,您可以使用kafkaConsumer->poll()轮询消费者;
var结果=卡夫卡消费者->投票(1000);
如果(结果为错误){
//处理错误
}否则{
//处理收到的记录
}
}

然后,您可以按照AWS Lambdas上的Ballerina文档生成AWS Lambdas。

根据我的回答,这是不可能的。你能解释一下你想实施的具体案例吗?然后我们可以找到另一种实现方法。我通过导入wso2/kafka尝试了echo Lambda函数,但Lambda函数在测试时无法解决它,它抛出了一个错误,说“本机函数不可用wso2/kafka:0.0.0:SimpleConsumer.registerListener”。你能告诉我我应该在这里做什么吗?@Prabakaranthodithembiyan看起来你有两个卡夫卡连接器版本在同一个芭蕾舞发行版中。检查
/bre/lib/
目录中是否有两个或更多
wso2 kafka-*.jar
文件。拆下它们,然后重新安装
Ballerina Kafka
接头。(或者只需删除以前版本的JAR,保留最新版本并继续)我将ballerina函数公开为Lambda,在调用Lambda函数时,出现了上述错误。另外,我在bre/lib中只有一个版本的wso2-kafka-*.jar。@prabakaranthodithembiyan您需要将kafka连接器jar(
wso2-kafka-*.jar
)放在生成的lambda zip文件中,放在根目录的“lib”目录中。您需要在zip文件中创建此目录。否则连接器功能将无法工作。Hi Thisaru,当我使用您共享的代码(与我的kafka consumer配置)时,我面临以下错误。“此处不允许客户端对象声明,请在函数顶部或模块级别声明”-在“kafka:SimpleConsumer kafkaConsumer=new(consumerConfig);”您能帮助解决此问题吗?