【发布时间】:2020-04-14 00:17:12
【问题描述】:
我使用 EC2 实例来托管我的网站,我目前(尝试)使用 webhook 库和 Github Webhooks 设置自动部署管道。我正在关注 webhook 的 repo 以及 this blogpost 上的指南(我知道它是用于数字海洋的东西,但我认为同样的东西通常适用)。
我能够在我的 EC2 实例上设置正确的配置文件——我必须指定 webhook 库从实例的 私有 IP 地址提供/使用内容,该 IP 地址是(基于我的理解)由分配给实例的弹性 IP 自动进行 NAT。这是我当前的hooks.json 文件:
[{
"id": "autodeploy",
"execute-command": "/home/ubuntu/webhooks/autodeploy/deploy.sh",
"command-working-directory": "/home/ubuntu/site",
"response-message": "Executing deploy script..."
}]
根据文档,这告诉 webhook,当某个端点被GET/POST 请求命中时,execute-command 表示的路径处的脚本将被执行。要实际启动服务器以接收这些 GET/POST 请求,我运行以下命令(并获得以下输出):
ubuntu@ip-xxx-xx-xx-xxx:~/webhooks$ webhook -hooks hooks.json -ip "xxx-xx-xx-xxx" -verbose
[webhook] 2019/12/22 08:30:48 version 2.5.0 starting
[webhook] 2019/12/22 08:30:48 setting up os signal watcher
[webhook] 2019/12/22 08:30:48 attempting to load hooks from hooks.json
[webhook] 2019/12/22 08:30:48 found 1 hook(s) in file
[webhook] 2019/12/22 08:30:48 loaded: autodeploy
[webhook] 2019/12/22 08:30:48 serving hooks on http://xxx-xx-xx-xxx:9000/hooks/{id}
[webhook] 2019/12/22 08:30:48 os signal watcher ready
现在,xxx-xx-xx-xxx 是 webhook 服务器绑定的私有 IP。我已将弹性/公共 IP 与 EC2 实例相关联,但每当我向 http://XX-XXX-XXX-XX:9000/hooks/autodeploy 发送 GET 请求时,我都没有收到回复(其中 XX-XXX-XXX-XX 表示实例的弹性 IP);此外,当我尝试使用 Github Webhooks 自动向该端点发送 POST 请求时,我收到“无法传递到端点”错误。
关于这可能是什么的任何想法?
【问题讨论】:
标签: amazon-web-services amazon-ec2 webhooks