微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pulumi:在另一个 index.ts 文件中定义的存储桶上调用“onObjectCreated”

如何解决Pulumi:在另一个 index.ts 文件中定义的存储桶上调用“onObjectCreated”

我正在使用 Pulumi 来部署 AWS 基础设施,并且由于我希望将基础设施代码“拆分”为多个模块,因此我编写了两个不同的 index.ts 文件

一个是我创建存储桶的地方。

const BucketA = new aws.s3.Bucket("BucketA", {
    bucket: `mybucket`
});

第二个是我创建一个需要在上述存储桶中创建对象时触发的 lambda:

const upLambdaRole = new aws.iam.Role("uploadLambdaRole",{     
    assumeRolePolicy: {
        Version: "2012-10-17",Statement: [{           
            Action: ["sts:AssumeRole"],Principal: {
                Service: "lambda.amazonaws.com",},Effect: "Allow",Sid: "",}],});

//Attach the policy to the Lambda 
new aws.iam.RolePolicyAttachment("uploadLambdaRoleAttach",{    
    role: upLambdaRole,policyArn: aws.iam.ManagedPolicy.AWSLambdaExecute,});   

// Next,create the Lambda function itself: const upLambda = new aws.lambda.Function("uploadLambda",{  name:"uploadLambda",runtime: "python3.8",role: upLambdaRole.arn,handler: "app.handler",timeout: 234,code:   
//use a pre-zipped file containing all (function files + required packages)
    new pulumi.asset.FileArchive("mydummycode.zip"),});

// up to here it works finely
const RawDataBucket= aws.s3.getBucket({
   bucket: "mybucket",}
RawDataBucket.then(RawDataBucket => RawDataBucket.onObjectCreated("s3rawUploadTrigger",upLambda));

然而,正如 documentation 中所指出的,这会引发一个错误,告知 getBucket Result 没有方法 onObjectCreated。

有没有办法能够检索在不同文件中创建的 S3 对象以使代码按照我的需要工作? 请注意,我们工作的 AWS 账户是独一无二的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。