确保上传的文件是非空 zip 文件。以下是 TypeScript 中的示例代码:
import * as fs from 'fs';
import * as path from 'path';
import * as cdk from 'aws-cdk-lib';
import * as s3 from 'aws-cdk-lib/aws-s3';
const app = new cdk.App();
const stack = new cdk.Stack(app, 'MyStack');
const bucketName = 'my-bucket';
const bucket = new s3.Bucket(stack, 'MyBucket', {
bucketName,
});
const zipFileName = 'my-lambda.zip';
const zipFile = path.resolve(__dirname, zipFileName);
if (!fs.existsSync(zipFile)) {
console.error(`${zipFileName} does not exist`);
process.exit(1);
}
if (fs.statSync(zipFile).size === 0) {
console.error(`${zipFileName} is empty`);
process.exit(1);
}
const zipAsset = new s3_assets.Asset(stack, 'MyLambdaCodeAsset', {
path: zipFile,
});
const lambda = new lambda.Function(stack, 'MyLambda', {
runtime: lambda.Runtime.NODEJS_12_X,
code: lambda.Code.fromBucket(zipAsset.bucket, zipAsset.s3ObjectKey),
handler: 'index.handler',
});