5 个版本
0.0.5 | 2024年6月23日 |
---|---|
0.0.4 | 2024年6月22日 |
0.0.3 | 2024年6月22日 |
0.0.2 | 2024年6月21日 |
0.0.1 | 2024年6月21日 |
637 在 Web 编程 中
每月下载量:192
9KB
136 行
Bootstrap AWS Lambda 函数
使用此包准备 Rust 二进制文件,以便与 CDK Lambda 构造函数一起使用。CDK Lambda 构造函数期望二进制文件命名为 bootstrap
。
用法
将包安装为 CLI 工具
cargo install bootstrap_aws_lambdas
然后运行
bootstrap_aws_lambdas <source_path> <target_path>
它将在 source_path
中查找所有可执行二进制文件,并将每个二进制文件复制到 <target_path>/<binary_name>/bootstrap
。
示例
创建 Rust 应用程序并构建二进制文件(例如 aws_lambdas_workspace
应用程序,该应用程序将构建 bin_one
和 bin_two
二进制文件)。
运行
bootstrap_aws_lambdas ./target/debug ./build
此包将发现可执行二进制文件 bin_one
和 bin_two
,并将它们从 ./target/debug
复制到 ./build/<binary_name>/bootstrap
aws_lambdas_workspace/target/debug
├── bin_one
├── bin_one.d
├── bin_two
├── bin_two.d
├── build
├── deps
├── examples
└── incremental
到
aws_lambdas_workspace/build
├── bin_one
│ └── bootstrap
└── bin_two
└── bootstrap
现在您可以准备使用任何可以与二进制文件一起工作的 AWS CDK Lambda 构造函数。以下是一个 TypeScript 示例
import * as cdk from "aws-cdk-lib";
import { Construct } from "constructs";
import * as lambda from "aws-cdk-lib/aws-lambda";
import path = require("node:path");
export class CdkTypescriptStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// Define the path to the Rust project
const rustProjectPath = path.join(__dirname, "..", "lambdas");
const binOneLambda = new lambda.Function(this, "MyFirstRustLambda", {
runtime: lambda.Runtime.PROVIDED_AL2,
handler: "bootstrap",
// this construct expects bootstrap binary at <project_root>/lambdas/bin_one/bootstrap
code: lambda.Code.fromAsset(path.join(rustProjectPath, "bin_one")),
functionName: "my-bin-one-lambda",
});
const binTwoLambda = new lambda.Function(this, "MySecondRustLambda", {
runtime: lambda.Runtime.PROVIDED_AL2,
handler: "bootstrap",
// this construct expects bootstrap binary at <project_root>/lambdas/bin_two/bootstrap
code: lambda.Code.fromAsset(path.join(rustProjectPath, "bin_two")),
functionName: "my-bin-two-lambda",
});
}
}