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次下载
18KB
336 行
cargo aws-lambda
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