Skip to content

(aws-stepfunctions-tasks): Fargate task definition contains version which causes step function failure when new task definition is pushed.  #12080

@gupta-n

Description

@gupta-n

Hi Team,
Currently task definition created by step function CDK appends task version which cause step function failure.

Scenario: Step function failed to launch fargate task because of some transient issue, before retry kicks in there was another deployment went which modified task definition and caused version bump. In this scenario running step function execution will failed as existing task is inactive now.

Reproduction Steps

Scenario: Step function failed to launch fargate task because of some transient issue, before retry kicks in there was another deployment went which modified task definition and caused version bump. In this scenario running step function execution will failed as existing task is inactive now.

const workerTask = new sfn.Task(this, 'Worker', {
            task: new tasks.RunEcsFargateTask({
                cluster: props.ecsCluster,
                taskDefinition: taskDefn,
                integrationPattern: sfn.ServiceIntegrationPattern.SYNC,
                containerOverrides: [
                    {
                        containerName: "TestContainer",
                        environment: []
                    }]
            }),
            outputPath: "$"
        }

Actual Task definition in step function

"parameters": {
    "Cluster": "arn:aws:ecs:us-east-1:XXXXXXXXXXX:cluster/EcsCluster-Cluster2e",
    "TaskDefinition": "arn:aws:ecs:us-east-1:XXXXXXXXXXX:task-definition/TaskDefinition75BC8FE8:16",
    "NetworkConfiguration": {
      "AwsvpcConfiguration": {
        "Subnets": [
          "subnet-XXXXXXXXXXX"
        ],
        "SecurityGroups": [
          "sg-XXXXXXXXXXX"
        ]
      }
    },

Expected output

"parameters": {
    "Cluster": "arn:aws:ecs:us-east-1:XXXXXXXXXXX:cluster/EcsCluster-Cluster2e",
    "TaskDefinition": "arn:aws:ecs:us-east-1:XXXXXXXXXXX:task-definition/TaskDefinition75BC8FE8",
    "NetworkConfiguration": {
      "AwsvpcConfiguration": {
        "Subnets": [
          "subnet-XXXXXXXXXXX"
        ],
        "SecurityGroups": [
          "sg-XXXXXXXXXXX"
        ]
      }
    },

What did you expect to happen?

When creating fargate task definition step function can attach definition to task family which will ensure to always pickup latest version and will make step function not to fail when new deployment is pushed.

https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-taskDefinition

Expected output

"parameters": {
    "Cluster": "arn:aws:ecs:us-east-1:XXXXXXXXXXX:cluster/EcsCluster-Cluster2e",
    "TaskDefinition": "arn:aws:ecs:us-east-1:XXXXXXXXXXX:task-definition/TaskDefinition75BC8FE8",
    "NetworkConfiguration": {
      "AwsvpcConfiguration": {
        "Subnets": [
          "subnet-XXXXXXXXXXX"
        ],
        "SecurityGroups": [
          "sg-XXXXXXXXXXX"
        ]
      }
    },

What actually happened?

Step function failed when new changes to task definition were pushed.

Environment

  • CDK CLI Version : 1.32.2
  • Framework Version: 1.32.2
  • Node.js Version: NodeJS = 12.x
  • **OS : Mac
  • Language (Version): Type script ^3.6.4

This is 🐛 Bug Report

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions