使用 nginx 发送网格并解析 502 Bad Gateway

send grid & parse 502 Bad Gateway with nginx

我正在尝试将我的解析应用程序迁移到数字海洋并遵循此指南:

https://www.digitalocean.com/community/tutorials/how-to-migrate-a-parse-app-to-parse-server-on-ubuntu-14-04

一切正常,直到我到达最后的测试解析服务器(执行示例云代码)部分

我测试了教程中提供的示例云代码的云代码:

Parse.Cloud.define('hello', function(req, res) {
  res.success('Hi');
});

所以我在浏览器和 postman 中都收到了 Hi。 请在此处查看图片:https://cloudup.com/cH2dbBx1KTo

然后我测试使用 sendgrid 的服务发送电子邮件的功能 (http://blog.parse.com/announcements/introducing-the-sendgrid-cloud-module/),我的云代码文件如下所示:

见图:https://cloudup.com/cD6MNRP3Tft

现在我尝试 运行 来自 post 人的 post 请求,我什至在

之前工作的 hello 函数上也出现错误

见图:https://cloudup.com/cIkwJ6552_5

所以我环顾四周,发现这是我的 sendgrid 导入问题

var sendgrid = require("sendgrid"); sendgrid.initialize(“xxxxxx”, “xxxxx.”);

在这些行中。

有没有人有任何使用数字海洋云代码和发送网格电子邮件服务的经验,请帮助我,我将不胜感激,因为这是剩下的最后一步,我将完成迁移:)

干杯 坦泽尔

您必须在解析配置文件中指定服务器 URL。它是必需的,并且可能是您无法 运行 云代码的原因。

"PARSE_SERVER_URL": "http://localhost:1337/parse"

url 与您使用的相同。那个教程中的Nginx配置也有错误,我在这里解释了https://serverfault.com/questions/765627/cannot-post-get-over-ssl/766428#766428

所以我查看了 pm2 并查看实时日志命令是

pm2 logs

起初,当我 运行 命令时,我看到了一些错误,也许它们以前就在那里:

然后我尝试了 postman 应用程序中的 hello 云函数来测试它在 pm2 日志中的输出,我得到了以下信息:

接下来我尝试 运行 我的 sendMail sendgrid 函数,我发现我在我的 sendgrid 函数中使用的 api-key 抛出了一个错误 ReferenceError: XXXXXXXXXXXX is not defined

所以我回到我的云代码并在我的 api-key 参数周围使用引号并将它作为字符串传递到我的发送网格初始化函数中。然后我重试并得到

[Error: The provided authorization grant is invalid, expired, or revoked]

所以我回到我的 sendgrid 帐户并确保我使用的 api-key 是正确的,而且看起来很好。我再次测试并再次遇到相同的错误,所以我决定生成一个新的 api-key 以防万一。

所以我意识到我没有使用 api-key 而是 API KEY ID :

当我们在 sendgrid 上创建一个新的 api-key 时,他们给了我们一次实际的 api 密钥,他们要求我们将它存储在某个安全的地方:

We can only display the key above one time. Please store it somewhere safe because as soon as you navigate away from this page, we will not be able to retrieve or restore this generated token.

所以在我使用实际的 api-key 之后,我能够发送电子邮件

但是仍然存在一个小问题,我不确定是不是因为我正在使用 运行 云代码的邮递员或解析服务器或 nginx 中的某些东西仍然返回 502 Bad网关作为响应

但是当我查看解析服务器的日志时,我确实看到

parse-wrapper-0 { message: 'success' }

但是我的邮递员从来没有回复过我,而是我收到了一个 502 错误,不知道为什么,但是电子邮件发送成功:)