如何基于.NET框架与AWS Lambda搭建GitHub触发的Discord Webhook
发布.NET AWS Lambda函数并配置GitHub触发器步骤
一、发布Lambda函数到AWS
1. 打包项目
切换到你的项目目录:cd /home/username/Dev
执行打包命令生成部署包:dotnet lambda package
打包完成后,部署包会生成在bin/Release/net[你的.NET版本]/publish目录下,是一个zip文件。
2. 部署到Lambda
命令行方式
直接执行部署命令,按照提示完成配置:dotnet lambda deploy-function [你的函数名称]
过程中需要选择AWS区域、指定Lambda执行角色(如果没有现成角色,可选择创建新角色,赋予Lambda基本执行权限即可)。
控制台方式
- 登录AWS控制台,进入Lambda服务页面,点击「创建函数」
- 选择「上传自」→「.zip文件」,上传刚才生成的打包文件
- 配置运行时为你使用的.NET版本,完成函数创建
- 进入函数的「配置」→「环境变量」,确认Discord Webhook URL、GitHub验证密钥等变量已正确设置
二、配置GitHub触发器(实现Issue创建时触发Lambda)
1. 为Lambda配置API Gateway端点
- 在Lambda函数页面,切换到「配置」→「触发器」,点击「添加触发器」
- 选择触发器类型为「API Gateway」,类型选「HTTP API」
- 安全选项根据需求选择(公开访问选「打开」,需要验证选「API密钥」),完成创建后复制生成的API端点URL
2. 配置GitHub仓库Webhook
- 打开你的GitHub共享仓库,进入「Settings」→「Webhooks」→「Add webhook」
- 在「Payload URL」中粘贴刚才复制的API Gateway端点URL
- 「Content type」选择
application/json - 「Secret」填写你设置的验证密钥(和Lambda环境变量中的对应,用于校验请求合法性)
- 触发事件选择「Let me select individual events」,只勾选「Issues」下的「Opened」
- 点击「Add webhook」完成配置
额外注意事项
- 请求合法性验证:在Lambda代码中,要通过GitHub请求头的
X-Hub-Signature-256字段,结合设置的Secret验证请求确实来自GitHub,避免恶意请求触发函数 - Discord消息发送:用
HttpClient调用Discord的Webhook接口,将Issue的标题、创建者、链接等信息格式化为Discord支持的消息结构后发送
内容的提问来源于stack exchange,提问作者morange
相关产品推荐
相关产品推荐

