当前位置: 首页 > 知识库问答 >
问题:

Amazon LambdaJavaSDK,不同意服务名称

云慈
2023-03-14

我试图通过AWSJavaSDK调用AWS Lambda代码,但它产生了一个奇怪的错误,我只在谷歌上发现了一个缺陷,应该是不久前修复的。


The service name : "BackplaneExecutionService" identified from the payload does not agree with the service name : "AWSLambda" specified in the transport header (Service: AWSLambda; Status Code: 403; Error Code: AccessDeniedException; Request ID: c40b5e2e-807b-11e5-88d6-6f0496ed99c7)
com.amazonaws.AmazonServiceException: The service name : "BackplaneExecutionService" identified from the payload does not agree with the service name : "AWSLambda" specified in the transport header (Service: AWSLambda; Status Code: 403; Error Code: AccessDeniedException; Request ID: c40b5e2e-807b-11e5-88d6-6f0496ed99c7)
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:710)
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:385)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:196)
    at com.amazonaws.services.lambda.AWSLambdaClient.invoke(AWSLambdaClient.java:387)
    at com.amazonaws.services.lambda.AWSLambdaClient.invoke(AWSLambdaClient.java:322)
    at .....

我的调用代码如下所示:

    BasicAWSCredentials androidClientCredentials = new BasicAWSCredentials(
            "cccccccc",
            "ccc+cc/cc"
    );
    AWSLambdaClient lambdaClient = new AWSLambdaClient(androidClientCredentials);
    lambdaClient.setRegion(Region.getRegion(Regions.US_EAST_1));
    lambdaClient.setEndpoint("https://cc.execute-api.us-east-1.amazonaws.com/prod/asdf");
    lambdaClient.setServiceNameIntern("execute-api");
    InvokeRequest request = new InvokeRequest();
    request.setInvocationType(InvocationType.RequestResponse);
    request.setFunctionName("arn:aws:lambda:us-east-1:1234:asdf:$LATEST");
    Map<String,String> payload = new HashMap<>(4);
    payload.put("username",U);
    payload.put("password", P);
    request.setPayload(ByteBuffer.wrap(new JSONObject(payload).toString().getBytes()));
    InvokeResult result = lambdaClient.invoke(request);

有什么想法或方向吗?

共有1个答案

车明贤
2023-03-14

感谢@jarmod,此错误是由于我对如何使Lambda函数可访问感到困惑。从我需要创建“APIendpoint”的UI来看。在阅读了更多关于通过AWS创建API的信息后,这似乎是一个用于创建自定义endpointURL的特殊功能(我还没有完全理解该功能)。

我了解到您不需要“APIendpoint”,并且我能够删除setEndpoint和setServiceNameInter方法调用

 类似资料:
  • 我有这样Apache Cxf maven插件配置: 我基本上有两个问题,也许有人可以回答:

  • 本文向大家介绍Nginx实现不同域名输出不同的服务器头信息方法,包括了Nginx实现不同域名输出不同的服务器头信息方法的使用技巧和注意事项,需要的朋友参考一下 大家或许会有这种奇葩的需求... 要是同一台主机上, 需要针对不同的域名输出不同的Server头, 怎么实现呢? 我们需要用到ngx_headers_more模块 像上面这样, 我们就可以来实现这功能了. 但这样靠谱吗? 靠谱, 但是不满足

  • 因此,活动将运行并停止服务,该服务将运行并停止服务。 我的问题是创建了的多个实例,该活动还创建了的多个实例。 因此,我希望将这两个作为运行,但我不确定如何这样做。 如果有必要,我可以发布一些我所拥有的示例代码,但我真正寻找的是一个操作方法。

  • 问题内容: 我最近将SQLServer从2005年升级到了2014年(链接服务器),并且我注意到调用exec命令以在升级的链接服务器上执行存储过程的存储过程之一因错误而失败。 在sys.servers中找不到服务器“服务器名称”。验证是否指定了正确的服务器名称。如有必要,执行存储过程sp_addlinkedserver将服务器添加到sys.servers。 问题是链接服务器存在,并且我已经进行了测

  • 问题内容: 我目前正在使用在Oreo中崩溃的startWakefulService函数。我意识到我要么必须切换到startForegroundService()并使用前台服务,要么切换到JobIntentService,但是基于下面的代码,我不确定该怎么做。(对不起,我是android新手)。正确方向的任何观点将不胜感激。 这是在Android 8.x上运行时遇到的当前错误 致命异常:java.l

  • 这是在Android8.x上运行时出现的当前错误 致命异常:java.lang.RuntimeException无法启动接收方com.heyjude.heyjudeapp.gcm.gcmbroadcastreceiver:java.lang.illegalstateException:不允许启动服务意图{act=com.google.android.c2dm.Intent.receive flg=