无法通过带有python的amazon lambda使用amazon ses发送电子邮件
我有一个python脚本,它使用boto3通过AmazonSES发送邮件,在我的pc上运行良好 但我在amazon aws lambda中运行了它,但它没有连接到amazon ses 我在云监视中没有发现任何错误 请帮忙。boto3只是记录无法通过带有python的amazon lambda使用amazon ses发送电子邮件,python,email,amazon-web-services,aws-lambda,amazon-ses,Python,Email,Amazon Web Services,Aws Lambda,Amazon Ses,我有一个python脚本,它使用boto3通过AmazonSES发送邮件,在我的pc上运行良好 但我在amazon aws lambda中运行了它,但它没有连接到amazon ses 我在云监视中没有发现任何错误 请帮忙。boto3只是记录 "Starting new HTTPS connection (1): email.us-east-1.amazonaws.com" "Starting new HTTPS connection (2): email.us-east-1.amazonaws.
"Starting new HTTPS connection (1): email.us-east-1.amazonaws.com"
"Starting new HTTPS connection (2): email.us-east-1.amazonaws.com"
"Starting new HTTPS connection (3): email.us-east-1.amazonaws.com"
有什么问题?为什么boto3不连接到ses
这是我的lambda功能的角色
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"ec2:CreateNetworkInterface",
"ec2:DescribeNetworkInterfaces",
"ec2:DeleteNetworkInterface"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ses:*"
],
"Resource": "*"
}
]
“版本”:“2012-10-17”,
“声明”:[
{
“效果”:“允许”,
“行动”:[
“日志:CreateLogGroup”,
“日志:CreateLogStream”,
“日志:PutLogEvents”,
“ec2:CreateNetworkInterface”,
“ec2:DescribeNetworkInterfaces”,
“ec2:DeleteNetworkInterface”
],
“资源”:“*”
},
{
“效果”:“允许”,
“行动”:[
“ses:*”
],
“资源”:“*”
}
]
下面是发送电子邮件的代码
response = boto3_client.send_email(Source=EMAIL_SENDER,
Destination={'ToAddresses': desti, 'BccAddresses' : ['micorreo@gmail.com']
},
Message={
'Subject': {
'Data': self.notificacion.get_asunto(),
'Charset': 'UTF-8'
},
'Body': {
'Html': {
'Data': self._get_filled_template(),
'Charset': 'UTF-8'
}
}
}
)
响应=boto3\u客户端。发送电子邮件(来源=电子邮件发送者,
Destination={'toaddress':desti'bccadireds':['micorreo@gmail.com']
},
信息={
“主题”:{
“数据”:self.notification.get_asunto(),
“字符集”:“UTF-8”
},
“身体”:{
“Html”:{
“数据”:self.\u获取\u填充的\u模板(),
“字符集”:“UTF-8”
}
}
}
)
Cloudwatch日志
[INFO] 2016-05-23T17:47:13.54Z Script start
2016-05-23 17:47:13 UTC
Starting new HTTPS connection (1): email.us-east-1.amazonaws.com
2016-05-23 17:47:28 UTC
[INFO] 2016-05-23T17:48:15.63Z Starting new HTTPS connection (2): email.us-east-1.amazonaws.com
2016-05-23 17:48:15 UTC
2016-05-23 17:49:15 UTC
[INFO] 2016-05-23T17:49:15.651Z Starting new HTTPS connection (3): email.us-east-1.amazonaws.com
2016-05-23 17:49:15 UTC
2016-05-23 17:49:57 UTC
END RequestId: 583a67cd-210e-11e6-bd17-530da7dced22
2016-05-23 17:49:57 UTC
2016-05-23 17:49:57 UTC
REPORT RequestId: 583a67cd-210e-11e6-bd17-530da7dced22 Duration: 170003.43 ms Billed Duration: 170000 ms Memory Size: 128 MB Max Memory
[信息]2016-05-23T17:47:13.54Z脚本开始
2016-05-23 17:47:13 UTC
启动新的HTTPS连接(1):email.us-east-1.amazonaws.com
2016-05-23 17:47:28 UTC
[信息]2016-05-23T17:48:15.63Z启动新的HTTPS连接(2):email.us-east-1.amazonaws.com
2016-05-23 17:48:15 UTC
2016-05-23 17:49:15 UTC
[信息]2016-05-23T17:49:15.651Z启动新的HTTPS连接(3):email.us-east-1.amazonaws.com
2016-05-23 17:49:15 UTC
2016-05-23 17:49:57 UTC
结束请求ID:583a67cd-210e-11e6-bd17-530da7dced22
2016-05-23 17:49:57 UTC
2016-05-23 17:49:57 UTC
报告请求ID:583a67cd-210e-11e6-bd17-530da7dced22持续时间:170003.43毫秒计费持续时间:170000毫秒内存大小:最大内存128 MB
您是否考虑过lambda函数根本无法访问Internet的可能性?如果连接到VPC,它需要位于通过NAT实例或NAT网关访问Internet的私有子网上。您的lambda角色需要“ses:SendEmail”、“ses:SendRawEmail”来发送电子邮件权限。@Shibashis我已经检查了我的电子邮件权限,我觉得它很好
{“效果”:“允许”,“操作”:[“ses:*”],“资源”:“*”}米迦勒SqLBOT我没有考虑这个可能性,因为SES是Amazon Service LaRDS,我可以连接到RDS。这就是为什么我没有考虑,但是我会检查它,我会告诉你这是不是问题。顺便说一句,这是一个好消息。point@Michael-实际上,sqlbot的答案是正确的。我没有一个带有NAT ga的私有子网让lambda访问internet连接的方式