我正在使用node.js上的Google Dialogflow开发一个聊天机器人项目,并希望使用Amazon SES,但由于某种原因它失败了,我使用的代码如下:
var aws = require('aws-sdk');
var ses = new aws.SES(
{
"accessKeyId": functions.config().aws.key,
"secretAccessKey": functions.config().aws.secret,
"region": "eu-west-1" ,
});
var eParams = {
Destination: {
ToAddresses: ["[email protected]"]
},
Message: {
Body: {
Text: {
Data: "Hey! What is up?"
}
},
Subject: {
Data: "Email Subject!!!"
}
},
Source: "[email protected]"
};
var email = ses.sendEmail(eParams, function(err, data){
if(err) console.log(err);
else {
console.log("===EMAIL SENT===");
console.log(data);
}
});
我在查看Firebase函数中的日志时得到的错误是:dialogflowFirebaseFulfillment {UnknownEndpoint:Inaccessible host:email.us-standard.amazonaws.com'. This service may not be available in the
eu-west-1` region。在Request.ENOTFOUND_ERROR(/user_code/node_modules/aws-sdk/lib/event_listeners.js:456:46)
我正在使用免费的Firebase层,这有什么关系吗?
Cloud Functions for Firebase的免费(“Spark”)层不允许在Google之外进行网络连接。
但是,您可以升级到“Blaze”计划,它允许网络连接。即使有付费等级,仍然有一个“免费等级”,允许合理的开发和使用水平,不会产生任何费用。
来自https://firebase.google.com/pricing/(将鼠标悬停在Cloud Functions旁边的问号上):
在Blaze计划中,云功能提供永久免费套餐。每月免费提供前2,000,000次调用,400,000 GB-sec,200,000 CPU-sec和5 GB Internet出口流量。您只需支付超过此免费分配的使用费。