问题描述
我正在尝试在我的 AWS 账户上部署一个 lambda 函数,它将上传到“lambda-bucket-in”中的文件压缩到存储桶“lambda-bucket-out”上。我试图遵循的示例是 this 一个,特别是第二种方式(第一种方式正确地完成其工作)。
我的 pulumi 代码如下:
import * as aws from "@pulumi/aws";
import * as pulumi from "@pulumi/pulumi";
const tpsReports = new aws.s3.Bucket("lambda-bucket-in");
const tpsZips = new aws.s3.Bucket("lambda-bucket-out");
// First,create some IAM machinery:
const zipFuncRole = new aws.iam.Role("zipTpsReportsFuncRole",{
assumeRolePolicy: {
Version: "2012-10-17",Statement: [{
Action: "sts:AssumeRole",Principal: {
Service: "lambda.amazonaws.com",},Effect: "Allow",Sid: "",}],});
new aws.iam.RolePolicyAttachment("zipTpsReportsFuncRoleAttach",{
role: zipFuncRole,policyArn: aws.iam.ManagedPolicy.AWSLambdaExecute,});
// Next,create the Lambda function itself:
const zipFunc = new aws.lambda.Function("zipTpsReportsFunc",{
environment: {
variables: {
"TPS_ZIP_BUCKET": tpsZips.bucket,code: new pulumi.asset.AssetArchive({
".": new pulumi.asset.FileArchive("app"),}),runtime: "nodejs12.x",role: zipFuncRole.arn,});
// Finally,register the Lambda to fire when a new TPS report arrives:
tpsReports.onObjectCreated("zipTpsReports",zipFunc);
const AdmZip = require("adm-zip");
const s3 = new aws.sdk.S3();
for (const rec of e.Records || []) {
const zip = new AdmZip();
const [ buck,key ] = [ rec.s3.bucket.name,rec.s3.object.key ];
console.log(`Zipping ${buck}/${key} into ${tpsZips.bucket.get()}/${key}.zip`);
const data = await s3.getobject({ Bucket: buck,Key: key }).promise);
zip.addFile(key,data.Body);
await s3.putObject({
Bucket: tpsZips.bucket.get(),Key: `${key}.zip`,Body: zip.toBuffer(),}).promise();
}
使用pulumi up --yes
命令运行pulumi,输入密码后返回:
Previewing update (my-lambda):
Type Name Plan Info
+ pulumi:pulumi:Stack bucket-my-lambda-my-lambda create 1 error; 48 messages
+ ├─ aws:s3:Bucket lambda-bucket-out create
+ ├─ aws:s3:Bucket lambda-bucket-in create
+ │ ├─ aws:s3:BucketEventSubscription zipTpsReports create
+ │ └─ aws:s3:BucketNotification zipTpsReports create
+ ├─ aws:iam:Role zipTpsReportsFuncRole create
+ └─ aws:iam:RolePolicyAttachment zipTpsReportsFuncRoleAttach create
Diagnostics:
pulumi:pulumi:Stack (bucket-my-lambda-my-lambda):
TypeError: Cannot read property 'split' of undefined
at deserializeProperty (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:472:48)
at Object.deserializeProperties (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:126:24)
at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:524:43
at Generator.next (<anonymous>)
at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:21:71
at new Promise (<anonymous>)
at __awaiter (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:17:12)
at resolveOutputs (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:519:12)
at Object.<anonymous> (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:321:19)
at Generator.throw (<anonymous>)
TypeError: Cannot read property 'split' of undefined
at deserializeProperty (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:472:48)
at Object.deserializeProperties (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:126:24)
at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:524:43
at Generator.next (<anonymous>)
at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:21:71
at new Promise (<anonymous>)
at __awaiter (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:17:12)
at resolveOutputs (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:519:12)
at Object.<anonymous> (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:321:19)
at Generator.throw (<anonymous>)
unhandled rejection: CONTEXT(1251): monitor.registerResource(resource:zipTpsReports[aws:lambda/permission:Permission])-initial
STACK_TRACE:
Error:
at Object.debuggablePromise (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/debuggable.js:69:75)
at runAsyncResourceOp (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:634:75)
at Object.<anonymous> (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:257:9)
at Generator.next (<anonymous>)
at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:21:71
at new Promise (<anonymous>)
at __awaiter (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:17:12)
at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:219:63
at runMicrotasks (<anonymous>)
at processticksAndRejections (internal/process/task_queues.js:93:5)
unhandled rejection: CONTEXT(1251): monitor.registerResource(resource:zipTpsReports[aws:lambda/permission:Permission])-initial
STACK_TRACE:
Error:
at Object.debuggablePromise (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/debuggable.js:69:75)
at runAsyncResourceOp (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:634:75)
at Object.<anonymous> (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:257:9)
at Generator.next (<anonymous>)
at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:21:71
at new Promise (<anonymous>)
at __awaiter (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:17:12)
at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:219:63
at runMicrotasks (<anonymous>)
at processticksAndRejections (internal/process/task_queues.js:93:5)
error: Running program '/home/andrea/Piratech/pulumi/bucket-my-lambda' Failed with an unhandled exception:
TypeError: Cannot read property 'split' of undefined
at deserializeProperty (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:472:48)
at Object.deserializeProperties (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:126:24)
at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:524:43
at Generator.next (<anonymous>)
at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:21:71
at new Promise (<anonymous>)
at __awaiter (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:17:12)
at resolveOutputs (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:519:12)
at Object.<anonymous> (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:321:19)
at Generator.throw (<anonymous>)
有谁知道如何解决这个问题,它代表什么? 感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)