【问题标题】:Webhooks with Amazon EC2使用 Amazon EC2 的 Webhook
【发布时间】: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


    【解决方案1】:

    好吧,我完全是个白痴,没有创建允许我的实例在端口 9000 访问的安全规则。完全是假动作。

    (要设置此规则,请转到网络和安全 > 安全组并添加一个打开端口 9000 以供 TCP 访问的新安全组,然后将此规则关联到您正在使用的 EC2 实例。)

    【讨论】:

    • 想避免向世界开放,但这是有道理的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    相关资源
    最近更新 更多