编译静态链接的 GO 可执行文件以用于 AWS Lambda

Compile Statically Linked GO Executable for use in AWS Lambda

上下文: 我正在尝试编译一个 Go 程序(具体来说,go-sigma-rule-engine by Markus Kont) to an executable so that I can upload it to AWS Lambda (which is Amazon Linux 2 under the hood I believe, according to this post.) 和 include/execute它通过 Python Lambda 函数向规则引擎程序发出 shell/os 命令。

问题: 该程序依赖于许多依赖项,并且为了尽可能少地处理问题我想静态 link 程序并编译,然后上传到 AWS Lambda,以便所有必要的依赖项都包含在可执行文件本身中。

问题:我如何静态link然后在 Go 中编译一个程序,以便我以 AWS Lambda 为目标OS?

这可以通过 GOOS=linux go build .

完成

Go 默认构建静态链接的可执行文件,因此只要目标是正确的 OS,您将获得一个在 AWS Lambda 上运行良好的二进制文件,而无需在部署包中包含任何特定的库。