람다 (Java 사용)의 SES를 사용하여 전자 메일을 보내려고하면 연결이 끊깁니다.AWS : Lambda의 SES를 통해 전자 메일 보내기
람다 함수와 동일한 VPC에서 EC2 인스턴스와 동일한 코드를 테스트했으며 거기에서 작동합니다 (동일한 역할이 할당되었습니다). 또한 VPC에없는 람다 함수를 실행 해 보았습니다 (그래도 어쨌든 하나에 있어야합니다). 또한 작동하지 않습니다.
여기에 코드
SendEmailRequest request = new SendEmailRequest().withSource(from)
.withDestination(destination)
.withMessage(message);
try {
System.out.println("Attempting to send an email through Amazon SES by using the AWS SDK for Java...");
if (client == null) {
client = new AmazonSimpleEmailServiceClient();
client.setRegion(Region.getRegion(Regions.EU_WEST_1));
}
client.sendEmail(request); // this is where the exception is thrown
System.out.println("Email sent!");
} catch (Exception ex) {
ex.printStackTrace();
System.err.println(ex.getMessage());
}
}
오류 메시지의 해당 비트가 시간 초과로 인해 (email.eu 서쪽-1을 위해 ...) 연결에 실패한다고합니다.
람다에서 작동하지 않는 이유는 무엇입니까?
VPC에 Lambda 기능을 배치 한 경우 VPC에 NAT 게이트웨이를 추가 할 때까지 AWS API를 비롯하여 VPC 외부의 항목에 액세스 할 수 없습니다. –
@ MarkB 나는 VPC 외부에서 시도한 것과 똑같은 방식으로 작동하지 않는다는 점에 유의한다. –
VPC를 사용하지 않고 시간 초과가 계속 발생하는 경우 시간 초과 된 SES에 대한 연결이며 람다 기능에 할당 된 시간이 부족하지 않은 것이 확실합니까? 실제 오류 메시지를 표시할까요? 코드가 로컬에서 실행됩니까? –