为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Java 中从另一个 aws lambda 调用 aws lambda 函数?

如何在 Java 中从另一个 aws lambda 调用 aws lambda 函数?

炎炎设计 2024-01-05 16:29:42
我有一个java代码,它返回一个整数值。例如:public class Hello {    public int myHandler(Object name, Context context) {        int count = 5;        return count;    }}我已将此代码上传到 AWS 上,处理程序名称为 example.Hello::myHandler,函数名称为 us-east-2 区域下的 AWSLAMBDA。现在我想用 Java 编写另一个代码,它调用早期代码的输出值(计数)。请注意,count 是一个整数。由于我在java和aws方面都是新手。请帮我解决这个问题,如果可能的话请提供一个简单的解释。
查看完整描述

2 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

  • 这是aws sdk 的代码片段示例

  • 要异步调用函数,请将 InspirationType 设置为Event

  • 要同步调用函数,请将 InitationType 设置为RequestResponse(这是默认值)。

  • 调用 lambda 应该具有具有lambda:InvokeFunction执行操作的附加策略的角色。

import com.amazonaws.regions.Regions;

import com.amazonaws.services.lambda.AWSLambda;

import com.amazonaws.services.lambda.AWSLambdaClientBuilder;

import com.amazonaws.services.lambda.model.InvokeRequest;

import com.amazonaws.services.lambda.model.InvokeResult;


AWSLambda client = AWSLambdaClientBuilder.standard().build();

InvokeRequest request = new InvokeRequest().withFunctionName("MyFunction").withInvocationType("RequestResponse").withLogType("Tail").withClientContext("MyApp")

        .withPayload(ByteBuffer.wrap("fileb://file-path/input.json".getBytes())).withQualifier("1");

InvokeResult response = client.invoke(request);


查看完整回答
反对 回复 2024-01-05
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

除了 Java 代码之外,您还需要确保附加到 Lambda 函数的策略实际上能够调用第二个 Lambda 函数。否则,Java 代码片段将失败,因为调用 Lambda 缺少调用其他函数的权限



查看完整回答
反对 回复 2024-01-05
  • 2 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信