计划的 Fargate 任务未运行

问题描述 投票:0回答:0

我正在使用 aws-cdk 来定义我的基础设施,它由 auora、elasticache、fargate 和调度 fargate 任务组成。其他组件按预期工作,但 Fargate 计划任务 除外。

我试图找出问题所在,但我找不到任何有用的日志来帮助我。我在 CloudTrail 中看到的只是调用了 RunTask,但我看不到失败或成功的原因。

这是我的 cdk 代码的样子。

export class CdkStack extends cdk.Stack {
    constructor(scope: Construct, id: string, props:  cdk.StackProps) {
        super(scope, id, props);

        const stage ='test'

        const vpc = new ec2.Vpc(this, `project-${stage}-vpc`, {
            vpcName: `project-${stage}-vpc`,
            maxAzs: 3, // Default is all AZs in region
            natGateways: 0,
            subnetConfiguration: [
                {
                    name: 'public-subnet',
                    subnetType: ec2.SubnetType.PUBLIC,
                },
                {
                    name: 'private-subnet',
                    subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
                },
                {
                    name: 'egress-subnet',
                    subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
                },
            ]
        });

        const cluster = new ecs.Cluster(this, `project-${stage}-cluster`, {
            clusterName: `project-${stage}-cluster`,
            vpc: vpc,
            containerInsights: true,
        })

        const redisSecurityGroup = new ec2.SecurityGroup(this, `redis-${stage}-security-group`, {
            vpc: vpc,
            allowAllOutbound: true
        })

        const dbPort = 5432
        const redisPort = 6379

        const db = new rds.DatabaseCluster(this, `project-database-${stage}-cluster`, {
            ....
        });

        // THIS HERE WORKS WITHOUT PROBLEM
        const fargate = new ecs_patterns.ApplicationLoadBalancedFargateService(this, `project-fargate-service-${stage}`, {
            ....
        })

        // THIS HERE WON'T EVEN START
        const scheduler = new ecs_patterns.ScheduledFargateTask(this, `scheduled-${stage}-task`, {
            cluster: cluster,
            enabled: true,
            ruleName: `scheduled-${stage}-rule`,
            schedule: events.Schedule.rate(cdk.Duration.minutes(props.cronTime)),
            scheduledFargateTaskImageOptions: {
                image: image,
                memoryLimitMiB: 512,
                cpu: 256,
                environment: {
                    "AS_TASK": "true", /*IMPORTANT*/
                },
            },
           
        })

        fargate.service.connections.allowTo(db, ec2.Port.tcp(dbPort), "allow cluster connections")
        fargate.service.connections.allowTo(redisSecurityGroup, ec2.Port.tcp(redisPort), "fargate to redis group")

        scheduler.task?.securityGroups?.forEach(sg => db.connections.allowFrom(sg, ec2.Port.tcp(dbPort), "scheduler to db group"))
        scheduler.task?.securityGroups?.forEach(sg => redisSecurityGroup.connections.allowFrom(sg, ec2.Port.tcp(redisPort), "scheduler to redis group"))
    }
}

这里是我最近从CLoudTrail>Event History>RunTask>Event Details得到的事件记录

{
  "eventVersion": "1.08",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "A.....",
    "arn": ".......D-SQ3KPLIENXTB/6.....",
    "accountId": "....",
    "accessKeyId": ".....",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "..........",
        "arn": "........",
        "accountId": "...",
        "userName": "ProjectTestStack-schedulertesttaskEventsRole4AA20D-......"
      },
      "webIdFederationData": {},
      "attributes": {
        "creationDate": "2023-05-17T15:58:28Z",
        "mfaAuthenticated": "false"
      }
    },
    "invokedBy": "events.amazonaws.com"
  },
  "eventTime": "2023-05-17T15:58:28Z",
  "eventSource": "ecs.amazonaws.com",
  "eventName": "RunTask",
  "awsRegion": "eu-west-1",
  "sourceIPAddress": "events.amazonaws.com",
  "userAgent": "events.amazonaws.com",
  "requestParameters": {
    "placementConstraints": [],
    "platformVersion": "LATEST",
    "overrides": {},
    "count": 1,
    "launchType": "FARGATE",
    "networkConfiguration": {
      "awsvpcConfiguration": {
        "assignPublicIp": "DISABLED",
        "securityGroups": [
          "sg-09e71b59d9a6dd6e7"
        ],
        "subnets": [
          "subnet-044...",
          "subnet-07c....",
          "subnet-0f7b...."
        ]
      }
    },
    "tags": [],
    "cluster": "arn:aws:ecs:eu-west-1:9.................",
    "enableExecuteCommand": false,
    "taskDefinition": "arn:aws:ecs:eu-west-1:....:task-definition/ProjectTestStackschedulertesttask.....:1",
    "placementStrategy": [],
    "startedBy": "events-rule/scheduled-test-rule",
    "enableECSManagedTags": false,
    "capacityProviderStrategy": []
  },
  "responseElements": {
    "failures": [],
    "tasks": [
      {
        "createdAt": "May 17, 2023, 3:58:28 PM",
        "memory": "512",
        "version": 1,
        "ephemeralStorage": {
          "sizeInGiB": 20
        },
        "desiredStatus": "RUNNING",
        "lastStatus": "PROVISIONING",
        "platformFamily": "Linux",
        "startedBy": "events-rule/scheduled-test-rule",
        "taskArn": "arn:aws:ecs:eu-west-1:.............:task/project-test-cluster/1e8a9a7c5a854de9ad77ac...",
        "taskDefinitionArn": "arn:aws:ecs:eu-west-1:.............:task-definition/ProjectTestStackschedulertesttask.....:1",
        "attachments": [
          {
            "status": "PRECREATED",
            "type": "ElasticNetworkInterface",
            "details": [
              {
                "name": "subnetId",
                "value": "subnet-07c319129f9..."
              }
            ],
            "id": "3eb41c44-85af-4211-8a9e-12c1e8ad135a"
          }
        ],
        "clusterArn": "arn:aws:ecs:eu-west-1:.............:cluster/project-test-cluster",
        "availabilityZone": "eu-west-1b",
        "overrides": {
          "containerOverrides": [
            {
              "name": "schedule-test-container"
            }
          ],
          "inferenceAcceleratorOverrides": []
        },
        "enableExecuteCommand": false,
        "group": "family:ProjectTestStackschedulertesttask...",
        "containers": [
          {
            "networkInterfaces": [],
            "taskArn": "arn:aws:ecs:eu-west-1:.............:task/project-test-cluster/1e8a9a7c5a854de9ad77acb9850ba6fe",
            "containerArn": "arn:aws:ecs:eu-west-1:.............:container/project-test-cluster/1e8a9a7c5a854de9ad77acb9850ba6fe/8c3c3d04-0590-4377-8395-fd2b8a6f88c4",
            "image": "..............dkr.ecr.eu-west-1.amazonaws.com/cdk-hnb659fds-container-assets-.............-eu-west-1:8c53e0d51961cac102053b84875f88c56bed6ef1956e46799529f76580e6e426",
            "cpu": "0",
            "name": "schedule-test-container",
            "lastStatus": "PENDING"
          }
        ],
        "cpu": "256",
        "tags": [],
        "launchType": "FARGATE",
        "attributes": [
          {
            "value": "x86_64",
            "name": "ecs.cpu-architecture"
          }
        ],
        "platformVersion": "1.4.0"
      }
    ]
  },
  "requestID": "a43fc21d-579a-40dc-bd68-fd0fb00096d6",
  "eventID": "9b02af5f-ee38-49cc-82b0-8a1a43d5ce8c",
  "readOnly": false,
  "eventType": "AwsApiCall",
  "managementEvent": true,
  "recipientAccountId": ".............",
  "eventCategory": "Management"
}

为了让计划任务正常运行,我在这里缺少什么。在本地环境中它工作得很好吗?

这里有一些截图,对我来说他们似乎正在运行任务。

typescript amazon-web-services amazon-ecs aws-cdk aws-fargate
© www.soinside.com 2019 - 2024. All rights reserved.