Java 如何从AWS API向AWS lambda函数传递字符串参数? 公共字符串handleRequest(字符串输入,上下文){ context.getLogger().log(“输入:”+Input); @抑制警告(“串行”) 哈希表htAWSServices= 新哈希表(){{ put(“Compute”,“对于Compute-请插入类似Compute1/../Compute6”); put(“Compute1”、“AWS Lambda(Compute)”); put(“Compute2”、“AWS EC2(Compute)”); put(“Compute3”、“AWS EC2容器服务(Compute)”); put(“Compute4”、“AWS Lightsail(Compute)”); put(“Compute5”、“AWS弹性豆茎(Compute)”); put(“Compute6”、“AWS批处理(计算)”); put(“分析”,“用于分析-请插入类似分析1/../Analytics8”); put(“分析1”,“AWS雅典娜(分析)”); put(“Analytics2”、“AWS EMR(分析)”); put(“Analytics3”、“AWS云搜索(分析)”); put(“Analytics4”、“AWS弹性搜索服务(分析)”); put(“分析5”,“AWS运动(分析)”); put(“Analytics6”、“AWS数据管道(分析)”); put(“Analytics7”、“AWS QuickSight(分析)”); put(“Analytics8”、“AWS胶水(分析)”); }}; 字符串stOutput=“”; 字符串stValue=htAWSServices.get(输入); if(stValue==null) stOutput=“你好,来自Lambda!”,“+input+”!”; 其他的 stOutput=“你好,AWS有”+stValue+“!”; 回输; }
现在我是否将键值从API网关传递到Lambda函数?Lambda接受事件、上下文和回调。当点击API网关时,您可以在url中添加参数,这些值将成为事件。一个例子是Java 如何从AWS API向AWS lambda函数传递字符串参数? 公共字符串handleRequest(字符串输入,上下文){ context.getLogger().log(“输入:”+Input); @抑制警告(“串行”) 哈希表htAWSServices= 新哈希表(){{ put(“Compute”,“对于Compute-请插入类似Compute1/../Compute6”); put(“Compute1”、“AWS Lambda(Compute)”); put(“Compute2”、“AWS EC2(Compute)”); put(“Compute3”、“AWS EC2容器服务(Compute)”); put(“Compute4”、“AWS Lightsail(Compute)”); put(“Compute5”、“AWS弹性豆茎(Compute)”); put(“Compute6”、“AWS批处理(计算)”); put(“分析”,“用于分析-请插入类似分析1/../Analytics8”); put(“分析1”,“AWS雅典娜(分析)”); put(“Analytics2”、“AWS EMR(分析)”); put(“Analytics3”、“AWS云搜索(分析)”); put(“Analytics4”、“AWS弹性搜索服务(分析)”); put(“分析5”,“AWS运动(分析)”); put(“Analytics6”、“AWS数据管道(分析)”); put(“Analytics7”、“AWS QuickSight(分析)”); put(“Analytics8”、“AWS胶水(分析)”); }}; 字符串stOutput=“”; 字符串stValue=htAWSServices.get(输入); if(stValue==null) stOutput=“你好,来自Lambda!”,“+input+”!”; 其他的 stOutput=“你好,AWS有”+stValue+“!”; 回输; },java,amazon-web-services,aws-lambda,aws-api-gateway,Java,Amazon Web Services,Aws Lambda,Aws Api Gateway,现在我是否将键值从API网关传递到Lambda函数?Lambda接受事件、上下文和回调。当点击API网关时,您可以在url中添加参数,这些值将成为事件。一个例子是www.myendpoint.com/?input=myInput。我建议创建自定义请求类,并提及该类中的所有字段。像公共类RequestClass{private String Compute;}一样,将所有值设置为此类,而不是传入键值Thank@John。现在问题来了,当我点击带有参数的URL时。正如您所说,我使用了该模式,但它表示
www.myendpoint.com/?input=myInput
。我建议创建自定义请求类,并提及该类中的所有字段。像公共类RequestClass{private String Compute;}一样,将所有值设置为此类,而不是传入键值Thank@John。现在问题来了,当我点击带有参数的URL时。正如您所说,我使用了该模式,但它表示{“errorMessage”:“JSON解析期间发生错误”,“errorType”:“java.lang.RuntimeException”,“stackTrace”:[],谢谢@Vaibs。这次它可以在没有自定义类的情况下工作。@BhaskarPal你能将其标记为已应答吗?Lambda接受一个事件、一个上下文和一个回调。当点击API网关时,你可以在url中添加参数,这些值就成为事件。例如www.myendpoint.com/?input=myInput
。我建议创建custom请求类并提到了该类中的所有字段。与公共类RequestClass{private String Compute;}一样,将所有值设置到此类,而不是传入键值Thank@John。现在,当我用参数点击URL时,问题出现了。我使用了您所说的模式,但它显示{“errorMessage”:“JSON解析过程中出现错误”,“errorType:”java.lang.RuntimeException”,“stackTrace:”[],谢谢@Vaibs。这次它在没有自定义类的情况下工作。@BhaskarPal您能将其标记为已回答吗?
public String handleRequest(String input, Context context) {
context.getLogger().log("Input: " + input);
@SuppressWarnings("serial")
Hashtable<String, String> htAWSServices =
new Hashtable <String, String> (){{
put("Compute","For Compute - please insert like Compute1/.../Compute6");
put("Compute1","AWS Lambda(Compute)");
put("Compute2","AWS EC2(Compute)");
put("Compute3","AWS EC2 Container Service(Compute)");
put("Compute4","AWS Lightsail(Compute)");
put("Compute5","AWS Elastic Beanstalk(Compute)");
put("Compute6","AWS Batch(Compute)");
put("Analytics","For Analytics - please insert like Analytics1/.../Analytics8");
put("Analytics1","AWS Athena(Analytics)");
put("Analytics2","AWS EMR(Analytics)");
put("Analytics3","AWS CloudSearch(Analytics)");
put("Analytics4","AWS Elasticsearch Service(Analytics)");
put("Analytics5","AWS Kinesis(Analytics)");
put("Analytics6","AWS Data Pipeline(Analytics)");
put("Analytics7","AWS QuickSight(Analytics)");
put("Analytics8","AWS Glue(Analytics)");
}};
String stOutput = "";
String stValue = htAWSServices.get(input);
if (stValue == null)
stOutput = "Hello from Lambda!, "+input+"!";
else
stOutput = "Hello AWS has "+stValue+"!";
return stOutput;
}