2017-06-21 51 views
1

在移植一個cloudformation模板對terraform和具有麻煩映射下面NotificationConfigurationLambdaConfiguration屬性爲其等效在terraform的過程。移植CloudFormation對terraform:S3桶NotificationConfiguration

"CloudTrailS3Bucket" : { 
    "DependsOn" : "TriggerLambdaPermission", 
    "Type" : "AWS::S3::Bucket", 
    "Properties" : { 
    "BucketName" : { "Ref" : "CloudTrailBucketName" }, 
    "NotificationConfiguration" : { 
     "LambdaConfigurations" : [ 
     { 
      "Event" : "s3:ObjectCreated:*", 
      "Function" : { "Fn::GetAtt" : [ "AutoTagLambdaFunction", "Arn" ] } 
     } 
     ] 
    } 
    } 
} 

我有我的terraform模塊到目前爲止以下,但不知道如果我要對這個正確的方式:

resource "aws_s3_bucket" "CloudTrailS3Bucket" { 
bucket = "${var.CloudTrailBucketName}" 
} 


resource "aws_s3_bucket_notification" "bucket_notification" { 
bucket = "${aws_s3_bucket.CloudTrailS3Bucket.id}" 

topic { 
    topic_arn  = "${aws_sns_topic.topic.arn}" 
    events  = ["s3:ObjectCreated:*"] 
} 
} 

回答

1

不,cloudformation模板,觸發拉姆達事件(S3:ObjectCreated),但在你的代碼,你可以使用簡單的通知服務(SNS)

請通過部分本文檔中

s3 bucket notification - Add notification configuration to Lambda Function

樣品代碼:

resource "aws_s3_bucket" "bucket" { 
    bucket = "your_bucket_name" 
} 

resource "aws_s3_bucket_notification" "bucket_notification" { 
    bucket = "${aws_s3_bucket.bucket.id}" 

    lambda_function { 
    lambda_function_arn = "${aws_lambda_function.func.arn}" 
    events    = ["s3:ObjectCreated:*"] 
    filter_prefix  = "AWSLogs/" 
    filter_suffix  = ".log" 
    } 
} 
+0

謝謝你的好先生 – buildmaestro