【发布时间】:2021-05-06 20:28:36
【问题描述】:
我很难用 Beanstalk 和 Codepipeline 设置自动化...
我终于让它运行起来了,主要问题是 S3 Cloudwatch 事件触发了Codepipeline 的启动。我错过了必要的 Cloudtrail 部分,我在任何文档中都找不到。
所以当前的设置是: S3 文件被上传 -> CloudWatch 事件触发 Codepipeline -> Codepipeline 部署到 ElasticBeanstalk 环境。
正如我所说,要获得 CloudWatch 事件触发器,您需要一个 Cloudtrail 跟踪,例如:
resource "aws_cloudtrail" "example" {
# ... other configuration ...
name = "codepipeline-source-trail" #"codepipeline-${var.project_name}-trail"
is_multi_region_trail = true
s3_bucket_name = "codepipeline-cloudtrail-placeholder-bucket-eu-west-1"
event_selector {
read_write_type = "WriteOnly"
include_management_events = true
data_resource {
type = "AWS::S3::Object"
values = ["${data.aws_s3_bucket.bamboo-deploy-bucket.arn}/${var.project_name}/file.zip"]
}
}
}
但这只是为了创造一个新的线索。问题是 AWS 最多只允许 5 条路径。在AWS console 上,您可以将多个数据事件添加到一条路径,但我无法在 terraform 中做到这一点。我尝试使用相同的名称,但这只会引发错误
“创建 CloudTrail 时出错:TrailAlreadyExistsException: Trail codepipeline-source-trail already exists for customer: XXXX”
我已尽力解释我的问题。不确定是否可以理解。
简而言之:我想使用 terraform 在现有的 cloudtrail 路径中添加 data events:S3。
谢谢帮助, 丹尼尔
【问题讨论】:
标签: amazon-web-services amazon-elastic-beanstalk terraform aws-code-deploy amazon-cloudtrail