Amazon web services AWS CloudWatch触发代码管道执行在一个帐户中工作,但在另一个帐户中不工作

Amazon web services AWS CloudWatch触发代码管道执行在一个帐户中工作,但在另一个帐户中不工作,amazon-web-services,amazon-ecs,aws-codepipeline,Amazon Web Services,Amazon Ecs,Aws Codepipeline,我们使用两个AWS帐户,一个用于开发(dev)和一个用于生产(prod)和一个主要AWS代码管道 目前在prod中运行的这条主管道正在将我们的应用程序构建到Docker映像中,并将其推送到dev中的ECR存储库,从那里应该触发一条单独的管道,以开始部署到dev中的ECS。 如果在ECS dev中部署成功,则在管道1中会有一个手动批准步骤,将容器升级到ECR prod,从而触发到ECS prod的部署 现在有一个问题: 我们正在使用CloudWatch事件规则来触发两个部署管道,该规则正在检查来自

我们使用两个AWS帐户,一个用于开发(dev)一个用于生产(prod)一个主要AWS代码管道

目前在prod中运行的这条主管道正在将我们的应用程序构建到Docker映像中,并将其推送到dev中的ECR存储库,从那里应该触发一条单独的管道,以开始部署到dev中的ECS。 如果在ECS dev中部署成功,则在管道1中会有一个手动批准步骤,将容器升级到ECR prod,从而触发到ECS prod的部署

现在有一个问题:

我们正在使用CloudWatch事件规则来触发两个部署管道,该规则正在检查来自CloudTrail的“PutImage”事件

这只适用于在prod中放入ECR的映像,而在dev中不适用。规则根本不会触发,尽管我可以在dev中的Cloudtrail中看到事件

可能是什么问题?使用Terraform,dev和prod的设置是相同的

我首先认为在prod中运行的管道可能需要能够将事件发送到dev(),但这不太可能,因为我已经可以在CloudTrail dev中看到事件

可能是因为管道本身正在prod中运行吗

管道1:应用程序git->Docker构建并推送到dev ECR-如果在dev中部署 成功:手动批准->推送到产品ECR

管道2(未触发) Alibi git source->从ECR获取最新图像标签 dev,output imagedefinitions.json->input imagedefinitions.json, 部署到ECS dev

管道3(手动批准后正确触发) Alibi git源-> 从ECR pro获取最新图像标记,输出imagedefinitions.json-> 输入imagedefinitions.json,部署到ECS产品

我们使用的是alibi git源代码,因为Codepipeline在开始时需要一个源代码;因此,我们正在检查回购协议,但从ECR获得最新的图像标签是重要的一步

适用于prod,但不适用于dev的Cloudwatch事件规则:

resource "aws_cloudwatch_event_rule" "latest_image" {
  name        = "latest-image"
  description = "Capture push to ECR"

  event_pattern = <<PATTERN
{
  "source": [
    "aws.ecr"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "ecr.amazonaws.com"
    ],
    "eventName": [
      "PutImage"
    ],
    "awsRegion": [
      "${var.region}"
    ],
    "requestParameters": {
      "repositoryName": [
        "${var.application_name}"
      ],
      "registryId": [
        "${var.account_id}"
      ]
    }
  }
}
资源“aws\u cloudwatch\u事件规则”“最新图像”{
name=“最新图像”
description=“捕获推送到ECR”

event_pattern=在此确认几件事:1.所有管道1、2和3是否都在prod帐户中?2.创建的CloudWatch规则(prod或Dev)在哪里?3.ECR存储库在哪里?(prod或Dev)4.管道2未正确触发是否正确?