And*_*lai 5 amazon-web-services typescript pulumi
我正在尝试在我的 AWS 帐户上部署 lambda 函数,该函数将上传到“lambda-bucket-in”的文件压缩到存储桶“lambda-bucket-out”上。我试图遵循的例子就是这个,特别是第二种方式(第一种方式可以正常工作)。
\n我的 pulumi 代码如下:
\nimport * as aws from "@pulumi/aws";\nimport * as pulumi from "@pulumi/pulumi";\n\n\nconst tpsReports = new aws.s3.Bucket("lambda-bucket-in");\nconst tpsZips = new aws.s3.Bucket("lambda-bucket-out");\n\n\n// First, create some IAM machinery:\nconst zipFuncRole = new aws.iam.Role("zipTpsReportsFuncRole", {\n assumeRolePolicy: {\n Version: "2012-10-17",\n Statement: [{\n Action: "sts:AssumeRole",\n Principal: {\n Service: "lambda.amazonaws.com",\n },\n Effect: "Allow",\n Sid: "",\n }],\n },\n });\n new aws.iam.RolePolicyAttachment("zipTpsReportsFuncRoleAttach", {\n role: zipFuncRole,\n policyArn: aws.iam.ManagedPolicy.AWSLambdaExecute,\n });\n \n // Next, create the Lambda function itself:\n const zipFunc = new aws.lambda.Function("zipTpsReportsFunc", {\n environment: {\n variables: {\n "TPS_ZIP_BUCKET": tpsZips.bucket,\n },\n },\n code: new pulumi.asset.AssetArchive({\n ".": new pulumi.asset.FileArchive("app"),\n }),\n runtime: "nodejs12.x",\n role: zipFuncRole.arn,\n });\n \n // Finally, register the Lambda to fire when a new TPS report arrives:\n tpsReports.onObjectCreated("zipTpsReports", zipFunc);\n
Run Code Online (Sandbox Code Playgroud)\n而“app”文件中,带有 lambda 函数的是:
\n const AdmZip = require("adm-zip");\n const s3 = new aws.sdk.S3();\n for (const rec of e.Records || []) {\n const zip = new AdmZip();\n const [ buck, key ] = [ rec.s3.bucket.name, rec.s3.object.key ];\n console.log(`Zipping ${buck}/${key} into ${tpsZips.bucket.get()}/${key}.zip`);\n const data = await s3.getObject({ Bucket: buck, Key: key }).promise);\n zip.addFile(key, data.Body);\n await s3.putObject({\n Bucket: tpsZips.bucket.get(),\n Key: `${key}.zip`,\n Body: zip.toBuffer(),\n }).promise();\n }\n
Run Code Online (Sandbox Code Playgroud)\n使用命令运行 pulumi 时pulumi up --yes
,插入密码后,它返回:
Previewing update (my-lambda):\n Type Name Plan Info\n + pulumi:pulumi:Stack bucket-my-lambda-my-lambda create 1 error; 48 messages\n + \xe2\x94\x9c\xe2\x94\x80 aws:s3:Bucket lambda-bucket-out create \n + \xe2\x94\x9c\xe2\x94\x80 aws:s3:Bucket lambda-bucket-in create \n + \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 aws:s3:BucketEventSubscription zipTpsReports create \n + \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80 aws:s3:BucketNotification zipTpsReports create \n + \xe2\x94\x9c\xe2\x94\x80 aws:iam:Role zipTpsReportsFuncRole create \n + \xe2\x94\x94\xe2\x94\x80 aws:iam:RolePolicyAttachment zipTpsReportsFuncRoleAttach create \n \nDiagnostics:\n pulumi:pulumi:Stack (bucket-my-lambda-my-lambda):\n TypeError: Cannot read property \'split\' of undefined\n at deserializeProperty (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:472:48)\n at Object.deserializeProperties (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:126:24)\n at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:524:43\n at Generator.next (<anonymous>)\n at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:21:71\n at new Promise (<anonymous>)\n at __awaiter (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:17:12)\n at resolveOutputs (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:519:12)\n at Object.<anonymous> (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:321:19)\n at Generator.throw (<anonymous>)\n TypeError: Cannot read property \'split\' of undefined\n at deserializeProperty (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:472:48)\n at Object.deserializeProperties (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:126:24)\n at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:524:43\n at Generator.next (<anonymous>)\n at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:21:71\n at new Promise (<anonymous>)\n at __awaiter (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:17:12)\n at resolveOutputs (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:519:12)\n at Object.<anonymous> (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:321:19)\n at Generator.throw (<anonymous>)\n \n unhandled rejection: CONTEXT(1251): monitor.registerResource(resource:zipTpsReports[aws:lambda/permission:Permission])-initial\n STACK_TRACE:\n Error:\n at Object.debuggablePromise (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/debuggable.js:69:75)\n at runAsyncResourceOp (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:634:75)\n at Object.<anonymous> (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:257:9)\n at Generator.next (<anonymous>)\n at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:21:71\n at new Promise (<anonymous>)\n at __awaiter (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:17:12)\n at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:219:63\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (internal/process/task_queues.js:93:5)\n unhandled rejection: CONTEXT(1251): monitor.registerResource(resource:zipTpsReports[aws:lambda/permission:Permission])-initial\n STACK_TRACE:\n Error:\n at Object.debuggablePromise (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/debuggable.js:69:75)\n at runAsyncResourceOp (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:634:75)\n at Object.<anonymous> (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:257:9)\n at Generator.next (<anonymous>)\n at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:21:71\n at new Promise (<anonymous>)\n at __awaiter (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:17:12)\n at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:219:63\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (internal/process/task_queues.js:93:5)\n \n error: Running program \'/home/andrea/Piratech/pulumi/bucket-my-lambda\' failed with an unhandled exception:\n TypeError: Cannot read property \'split\' of undefined\n at deserializeProperty (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:472:48)\n at Object.deserializeProperties (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/rpc.js:126:24)\n at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:524:43\n at Generator.next (<anonymous>)\n at /home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:21:71\n at new Promise (<anonymous>)\n at __awaiter (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:17:12)\n at resolveOutputs (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:519:12)\n at Object.<anonymous> (/home/andrea/Piratech/pulumi/bucket-my-lambda/node_modules/@pulumi/pulumi/runtime/resource.js:321:19)\n at Generator.throw (<anonymous>)\n
Run Code Online (Sandbox Code Playgroud)\n有谁知道如何解决这个问题,它代表什么?\n感谢您的帮助。
\n 归档时间: |
|
查看次数: |
720 次 |
最近记录: |