【问题标题】:AWS LAMBDA using java sdk SES Client times out使用 java sdk SES 客户端的 AWS LAMBDA 超时
【发布时间】:2018-01-01 02:53:19
【问题描述】:

我有一个非常基本的 lambda 函数来发送电子邮件
代码在创建 SES 客户端时挂起。我在创建客户端的语句之前和之后放置日志。

AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard().withRegion(Regions.EU_WEST_1)
          .withCredentials(new InstanceProfileCredentialsProvider(false)).build();

我也试过了

AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard().withRegion(Regions.EU_WEST_1).build();  

lambda 函数通过 AmazonSESFullAccess 承担 IAM 角色,任何人都可以指出解决方法,为什么我在这里尝试启动客户端时会超时?

【问题讨论】:

  • 您是否将 Lambda 函数放置在 VPC 中?
  • 您是否配置了非常短的超时时间 (
  • 你们给了一个很好的提示,谢谢,我尝试了 NO VPC,将超时时间从 3 秒增加到 10 秒,并将内存增加到 960MB,它起作用了。我猜默认值应该可以工作...但现在我得到code Unable to load credentials from service endpointEND code
  • 如果我的 Lambda 使用的角色具有允许 FullSESAccess 的策略,我该如何构建客户端?还是我总是必须使用密钥进行程序执行?

标签: amazon-web-services aws-lambda amazon-ses


【解决方案1】:

按照回复中的建议解决凭据创建超时的问题,我尝试了

没有 VPC,超时时间从默认的 3 秒增加到 10 秒,内存增加到 960MB

在 java 中创建服务 sdk 客户端使用 EnvironmentVariableCredentialsProvider() for LAMBDA 解决了 EC2 使用 InstanceProfileCredentialsProvider(true) 的客户端初始化问题

无法从服务端点加载凭据

AmazonSimpleEmailService 客户端 =

AmazonSimpleEmailServiceClientBuilder.standard().withRegion(Regions.EU_WEST_1) .withCredentials(new EnvironmentVariableCredentialsProvider()).build();

非常感谢您的帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-17
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多