#aws-lambda #lambda #部署 #aws #打包 #aws访问 #docker镜像

app cargo-aws-lambda

使用cargo aws-lambda,仅依赖docker即可交叉编译、打包并部署AWS Lambda函数

6个版本

0.3.0 2021年10月26日
0.2.0 2020年1月13日
0.1.3 2019年11月18日
0.1.2 2019年10月28日

#1533开发工具 中排名

每月 26次下载

Apache-2.0/MIT

18KB
336

cargo aws-lambda

crates.io

Node.js和其他依赖的cargo子命令,用于快速交叉编译、打包并部署代码到AWS Lambda。使用softprops/lambda-rust:latest docker镜像,因此需要PATH中的docker,但这就足够了。

安装

运行cargo install cargo-aws-lambda

用法

转到您的项目目录并运行cargo aws-lambda <ARN> <BIN>将代码部署到AWS Lambda,其中ARN是Lambda函数的完整ARN(例如arn:aws:lambda:eu-north-1:123456789123:function:MyLambdaFuncDev)和BIN二进制文件的名称(例如mylambdafunc,如果您的项目中有一个名为src/bin/mylambdafunc.rs的文件,其中包含一个main函数)。

    cargo aws-lambda arn:aws:lambda:eu-north-1:123456789123:function:MyLambdaFuncDev mylambdafunc

可选。 如果您不想在命令行中传递函数ARN,您可以将键传递给在项目根目录中名为Lambda.toml的文件中定义的函数(例如示例)。

# Lambda.toml
[arns]
dev = "arn:aws:lambda:eu-north-1:1234:function:MyLambdaFuncDev"
prod = "arn:aws:lambda:eu-north-1:1234:function:MyLambdaFuncProd"

现在,您可以运行以下命令将代码部署到第一个定义的ARN。

cargo aws-lambda dev mylambdafunc

您可以在示例目录中找到完整的项目示例。

凭证的搜索方法如此处所述。如果您已经配置了AWS CLI,则大多数情况下无需额外配置即可正常工作。如果您想将AWS访问密钥和秘密作为参数传递,可以自行承担风险,使用--access-key--secret-key参数。在这种情况下,系统中的其他进程可以轻松地嗅探凭证,并且它们被捕获在shell历史记录中。

所有可用的配置选项都可以使用--help开关列出。

有问题吗?

在Windows上,您必须为位于其中的项目所在的驱动器启用共享驱动器功能。

它是如何工作的?

它将您的项目目录和~/.cargo/registry挂载到AWS Lambda rust docker镜像中,并为目标架构和系统在那里构建它。在构建并从可执行文件中删除符号后,所有内容都被打包成一个zip文件。然后,将zip文件部署到您提供的AWS Lambda函数ARN。部署还将指示AWS发布已部署的版本。在docker中生成的构建工件可以在您的项目目录的target/lambda/release目录中找到。

依赖关系

~20MB
~346K SLoC