AWS ECS

Disclaimer

Your use of this download is governed by Stonebranch's Terms of Use.

Version Information

Template Name

Extension Name

VersionStatus

AWS ECS

ue-aws-ecs

1 (Current 1.0.0)

Fixes and new Features are introduced.

Refer to Changelog for version history information.

Overview

Amazon Elastic Container Service (AWS ECS) is a fully managed container orchestration service that simplifies the deployment, management, and scaling of containerized applications. ECS allows you to run and scale Docker containers on AWS infrastructure without needing to manage the underlying hardware or software, making it easier to build, deploy, and operate containerized applications. It integrates seamlessly with other AWS services, supports both serverless (AWS Fargate) and server-based (EC2) compute options, and provides robust security, networking, and monitoring capabilities.

In Amazon Elastic Container Service (AWS ECS), an ECS task is a running instance of a task definition. Tasks use case is ideal for one-time or short-lived jobs. For example:

  • Batch Jobs: Suitable for batch processing, data transformations, and other workloads that are completed after a certain period.

  • Task Scheduling: Useful for scheduled tasks, such as cron jobs, where you need to run a task at specific intervals.

  • Manual Execution: Good for tasks that you want to run on-demand or manually trigger through an event or user action

This integration provides the capability to run ECS Tasks allowing the above use cases to be fulfilled through UAC, where UAC has the role of an orchestrator.

Key Features

Feature

Description

Run Task

Run a single instance of a Task on AWS ECS.

Stop Task

Stop a single instance of a Task on AWS ECS.

Software Requirements

This integration requires a Universal Agent and a Python runtime to execute the Universal Task and comes bundled with Amazon Boto3 Python AWS SDK V.1.34.136.

Area

Details

Python Version

Requires Python 3.11 tested with Agent Bundled Python 3.11.6.

Universal Agent Compatibility

  • Compatible with Universal Agent for Windows x64 and version >= 7.6.0.0.

  • Compatible with Universal Agent for Linux and version >= 7.6.0.0.

Universal Controller Compatibility

Universal Controller Version >= 7.6.0.0.

Network and Connectivity

Network connectivity and access rights are required for AWS ECS.

Supported Actions

Action: Run Task

This action allows the execution of a single ECS task instance from an ECS Task Definition.

Task Authors have full flexibility to provide Task Definition/container overrides, however in most cases the ECS Task default configuration (which is part of its definition on AWS) should be adequate. It is possible also to configure the UAC task in such a way that the Universal Task Instance is finished by the time the ECS Task is triggered or wait until the ECS Task is finished (STOPPED).

  • In the case where the UAC Task Instance only triggers the run of the Task, the Universal Task Instance is considered successful if the triggering of the run operations is successful.

  • In the case where the UAC Task Instance not only triggers the run of the Task but also waits until it is finished (STOPPED), then If the ECS Task is finished without a Task Error reported by AWS the UAC Task Instance is finished with Success, else with Failure.

Note that the ECS Task may be finished without errors, however some, or all the containers, can finish with an exit code different than zero.

Configuration examples

Scenario A

Start an ECS Task with Role Assumption. The Network Configuration field is required if the intent is to run on FARGATE clusters. Group and Started By fields are also provided

Scenario B

Start an ECS Task and wait for the Task to Stop. This configuration will also poll to acquire the Task description at defined intervals, in this case, every 60 seconds. It is suggested to avoid setting it too low to avoid rate limit flags. Role assumption is used in this case.

Scenario C

Start an ECS Task with Additional optional Configuration as JSON Text. The list of all available options is available in the Boto3 documentation.

Scenario D

Start an ECS Task providing the AWS Region and proxy to be used as an environment variable. Execution Metadata is not provided on EXTENSION Output

Action Output

Output Type

DescriptionExamples
EXTENSION

The extension output provides the following information:

  • exit_code, status_description: General info regarding the task execution. For more information, users can refer to the exit code table.

  • invocation.fields: The task configuration used for this task execution.

  • result.errors: List of errors that might have occurred during Universal Task Execution.

  • result.tasks: A list of Tasks that provides the latest information gathered related to the executed ECS Task(s). Information is retrieved from ECS, without additional processing. The output might vary depending on the AWS API version. The population of information on this JSON element is controlled by the Field Extension Output Options.

Successful Execution
{
    "exit_code": 0,
    "status_description": "Task executed successfully.",
    "invocation": {
	    "extension": "ue-aws-ecs",
        "version": "1.0.0",
        "fields": {...}
    },
    "result": {
        "tasks": [
            {
                "attachments": [
                    {
                        "id": "b0350d15-bdd9-4df8-b0ad-9bcd35f896ce",
                        "type": "ElasticNetworkInterface",
                        "status": "DELETED",
                        "details": [
                            {
                                "name": "subnetId",
                                "value": "subnet-00a16a28786e7806c"
                            },
                            {
                                "name": "networkInterfaceId",
                                "value": "eni-05e6e4860d1e0911d"
                            },
                            {
                                "name": "macAddress",
                                "value": "0a:ff:e9:cb:8b:71"
                            },
                            {
                                "name": "privateDnsName",
                                "value": "ip-112-11-21-123.ec2.internal"
                            },
                            {
                                "name": "privateIPv4Address",
                                "value": "112.11.21.123"
                            }
                        ]
                    }
                ],
                "attributes": [
                    {
                        "name": "ecs.cpu-architecture",
                        "value": "x86_64"
                    }
                ],
                "availabilityZone": "us-east-1d",
                "capacityProviderName": "FARGATE",
                "clusterArn": "arn:aws:ecs:us-east-1:1**********9:cluster/ue-aws-ecs",
                "connectivity": "CONNECTED",
                "connectivityAt": "2024-05-24T17:50:57.377000+02:00",
                "containers": [
                    {
                        "containerArn": "arn:aws:ecs:us-east-1:1**********9:container/ue-aws-ecs/d31a0aef2feb49c3af17982fb3c708eb/abaaceb9-3118-4f3d-97e4-510a992f11d9",
                        "taskArn": "arn:aws:ecs:us-east-1:1**********9:task/ue-aws-ecs/d31a0aef2feb49c3af17982fb3c708eb",
                        "name": "ls-nonexistentfile",
                        "image": "1**********9.dkr.ecr.us-east-1.amazonaws.com/ue-aws-ecs:latest",
                        "imageDigest": "sha256:d7bec506d9764a8d6f0ffac50b5a9dc9c316fbce69a4372028da66ea6ba8ce36",
                        "runtimeId": "d31a0aef2feb49c3af17982fb3c708eb-1540407552",
                        "lastStatus": "STOPPED",
                        "exitCode": 2,
                        "networkBindings": [],
                        "networkInterfaces": [
                            {
                                "attachmentId": "b0350d15-bdd9-4df8-b0ad-9bcd35f896ce",
                                "privateIpv4Address": "112.11.21.123"
                            }
                        ],
                        "healthStatus": "UNKNOWN",
                        "cpu": "0"
                    },
                    {
                        "containerArn": "arn:aws:ecs:us-east-1:1**********9:container/ue-aws-ecs/e31a0aee2feb49c3af17982fb3c708eb/d800fa8b-70f5-49ab-804f-00157535c929",
                        "taskArn": "arn:aws:ecs:us-east-1:1**********9:task/ue-aws-ecs/e31a0aef2eeb49c3af17982fb3c708eb",
                        "name": "ls-tmp",
                        "image": "1**********9.dkr.ecr.us-east-1.amazonaws.com/ue-aws-ecs:latest",
                        "imageDigest": "sha256:d7bec506d9764a8d6f0ffac50b5a9dc9c316fbce69a4372028da66ea6ba8ce36",
                        "runtimeId": "d31a0aef2feb49c3af17982fb3c708eb-1659398764",
                        "lastStatus": "STOPPED",
                        "exitCode": 0,
                        "networkBindings": [],
                        "networkInterfaces": [
                            {
                                "attachmentId": "b0350d15-bdd9-4df8-b0ad-9bcd35f896ce",
                                "privateIpv4Address": "112.11.21.123"
                            }
                        ],
                        "healthStatus": "UNKNOWN",
                        "cpu": "0"
                    }
                ],
                "cpu": "1024",
                "createdAt": "2024-05-24T17:50:53.682000+02:00",
                "desiredStatus": "STOPPED",
                "enableExecuteCommand": false,
                "executionStoppedAt": "2024-05-24T17:51:16.355000+02:00",
                "group": "family:ue-aws-ecs",
                "healthStatus": "UNKNOWN",
                "lastStatus": "STOPPED",
                "launchType": "FARGATE",
                "memory": "3072",
                "overrides": {
                    "containerOverrides": [
                        {
                            "name": "ls-tmp"
                        },
                        {
                            "name": "ls-nonexistentfile"
                        }
                    ],
                    "inferenceAcceleratorOverrides": []
                },
                "platformVersion": "1.4.0",
                "platformFamily": "Linux",
                "pullStartedAt": "2024-05-24T17:51:05.966000+02:00",
                "pullStoppedAt": "2024-05-24T17:51:10.983000+02:00",
                "startedAt": "2024-05-24T17:51:13.388000+02:00",
                "stopCode": "EssentialContainerExited",
                "stoppedAt": "2024-05-24T17:51:39.726000+02:00",
                "stoppedReason": "Essential container in task exited",
                "stoppingAt": "2024-05-24T17:51:26.400000+02:00",
                "tags": [],
                "taskArn": "arn:aws:ecs:us-east-1:1**********9:task/ue-aws-ecs/d31a0aef2feb49c3af17982fb3c708eb",
                "taskDefinitionArn": "arn:aws:ecs:us-east-1:1**********9:task-definition/ue-aws-ecs:15",
                "version": 5,
                "ephemeralStorage": {
                    "sizeInGiB": 20
                }
            }
        ],
		"failures": [],
        "errors": []
    }
}
Failed Execution
{
    "exit_code": 1,
    "status_description": "Execution Failed: You must specify a region.",
    "invocation": {
        "extension": "ue-aws-ecs",
        "version": "1.0.0",
        "fields": {...}
    },
    "result": {
        "errors": [
            "Execution Failed: : You must specify a region."
        ]
    }
}

Action: Stop Task

This action stops the execution of a single ECS task. If the ECS task is already stopped the Universal Task Instance will exit with success. It is possible also to configure the UAC task in such a way that the Universal Task Instance is finished by the time the ECS Task Stop is triggered or wait until the ECS Task is stopped.

  • In the case where the UAC Task Instance only triggers the stop of the Task, the Universal Task Instance is considered successful if the triggering of the stop operations is successful.

  • In the case where the UAC Task Instance not only triggers the stop of the Task but also waits until it is stopped, If the ECS Task is finished without a Task Error reported by AWS the UAC Task Instance is finished with Success, else with Failure.

Note that the ECS Task may be finished without errors, however some, or all the containers, can finish with an exit code different than zero.

Configuration examples

The configuration from Run Task also applies here. The only difference is that the Stop Task action also requires a Task ARN.

Scenario A

Stop an ECS Task with Role Assumption. A Task ARN is required. Optional field Stop Reason is populated.

Scenario B

Stop an ECS Task and wait for the Task to Stop. Polling Interval is set to 60 seconds. Execution Metadata is not provided on EXTENSION Output

Action Output

Output Type

Description

Examples

EXTENSION

The extension output provides the following information:

  • exit_code, status_description: General info regarding the task execution. For more information, users can refer to the exit code table.

  • invocation.fields: The task configuration used for this task execution.

  • result.errors: List of errors that might have occurred during Universal Task Execution.

  • result.task: A list of Tasks that provides the latest information gathered related to the executed ECS Task(s). Information is retrieved from ECS, without additional processing. The output might vary depending on the AWS API version. The population of information on this JSON element is controlled by Field Extension Output Options.

Successful Execution
{
    "exit_code": 0,
    "status_description": "Task executed successfully",
    "invocation": {
        "extension": "ue-aws-ecs",
        "version": "1.0.0",
        "fields": {...}
    },
    "result": {
        "task": {
            "attachments": null,
            "availabilityZone": "us-east-1c",
            "capacityProviderName": "FARGATE",
            "clusterArn": "arn:aws:ecs:us-east-1:169*****829:cluster/ue-aws-ecs",
            "connectivity": "CONNECTED",
            "connectivityAt": "2024-07-15 16:13:59.708000+03:00",
            "containers": null,
            "cpu": "1024",
            "createdAt": "2024-07-15 16:13:54.242000+03:00",
            "desiredStatus": "STOPPED",
            "enableExecuteCommand": false,
            "executionStoppedAt": "2024-07-15 16:14:15.122000+03:00",
            "group": "family:ue-aws-ecs",
            "lastStatus": "STOPPED",
            "launchType": "FARGATE",
            "memory": "3072",
            "overrides": null,
            "platformVersion": "1.4.0",
            "platformFamily": "Linux",
            "pullStartedAt": "2024-07-15 16:14:04.798000+03:00",
            "pullStoppedAt": "2024-07-15 16:14:10.161000+03:00",
            "startedAt": "2024-07-15 16:14:12.164000+03:00",
            "stopCode": "UserInitiated",
            "stoppedAt": "2024-07-15 16:14:38.461000+03:00",
            "stoppedReason": "Task stopped by user",
            "stoppingAt": "2024-07-15 16:14:23.898000+03:00",
            "tags": null,
            "taskArn": "arn:aws:ecs:us-east-1:1695******:task/ue-aws-ecs/43b2807b1eb44f42801d7be01dd2fe07",
            "taskDefinitionArn": "arn:aws:ecs:us-east-1:169*****29:task-definition/ue-aws-ecs:15",
            "version": 6,
            "ephemeralStorage": {
                "sizeInGiB": 20
            },
            "fargateEphemeralStorage": {
                "sizeInGiB": 20
            }
        },
        "ResponseMetadata": {
            "RequestId": "f2e4b5b4-6bf3-****8171-6e4a4b89da32",
            "HTTPStatusCode": 200,
            "HTTPHeaders": {
                "x-amzn-requestid": "f2e4b5b4-****-400a-8171-6e4a4b89da32",
                "content-type": "application/x-amz-json-1.1",
                "content-length": "1091",
                "date": "Mon, 15 Jul 2024 13:50:23 GMT"
            },
            "RetryAttempts": 0
        }
    }
}
Failed Execution
{
    "exit_code": 1,
    "status_description": "Execution Failed: An error occurred (InvalidParameterException) when calling the StopTask operation: The referenced task was not found",
    "invocation": {
        "extension": "ue-aws-ecs",
        "version": "1.0.0",
        "fields": {...}
    },
    "result": {
        "errors": [
            "Execution Failed: An error occurred (InvalidParameterException) when calling the StopTask operation: The referenced task was not found"
        ]
    }
}

Input Fields

NameTypeDescription

Version Information

ActionChoice

The action performed upon the task execution.

  • Run Task (Default)

  • Stop Task

Introduced in 1.0.0

AWS Credentials

Credentials

The Credentials definition should be as follows.

  • AWS Access Key ID as "Runtime User".

  • AWS Secret Access Key as "Runtime Password".

The field population is optional and applicable to all the Actions. When AWS Credentials is not populated as part of the task definition, during task execution the integration will look for AWS Credentials on the task execution environment. Refer to AWS Credential Configuration Options for more information

Introduced in 1.0.0

AWS Region

Text

Region for the Amazon Web Service i.e. "us-east-1"

The field population is optional and applicable to all the Actions. When AWS Region is not populated as part of the task definition, during task execution the integration will look for the AWS Region on the task execution environment (AWS configuration file or through AWS environment variables).

The field is applicable to all the Actions.

Introduced in 1.0.0

ClusterText

The short name or full Amazon Resource Name (ARN) of the cluster to run your task on.

Required for all Actions

Introduced in 1.0.0

Assume Role ARN

Large Text

Role ARN of the AWS Assume Role functionality. The Assume Role functionality in AWS (Amazon Web Services) allows a user or service to take on the permissions of another IAM (Identity and Access Management) role temporarily.

If the field is left empty Role Assumption is not performed.

Introduced in 1.0.0

Task Definition

Text

The family and revision (family:revision) or full ARN of the task definition to run. If a revision isn’t specified, the latest ACTIVE revision is used.

Required when Action = “Run Task”

Introduced in 1.0.0

Task ARN

Text

The Task ARN of the Task to Stop

Required when Action = “Stop Task”

Introduced in 1.0.0

Stop Reason

Text

An optional message specified when a task is stopped. This message appears on AWS Console, but also when a task is queried programmatically.

Introduced in 1.0.0

Network Configuration (JSON)

Large Text

The field could be required when Action = “Run Task” and represents the network configuration for the task. This parameter is required for task definitions that use the awsvpc network mode to receive their elastic network interface, and it isn’t supported for other network modes. 

Default Value
{
   "networkConfiguration": { 
      "awsvpcConfiguration": { 
         "assignPublicIp": "ENABLED|DISABLED",
         "securityGroups": [ "string" ],
         "subnets": [ "string" ]
      }
   }
}


The default value is a placeholder value meant to serve as a way to inform the user of what the available options are. It is not meant to be used directly as a default value for an execution of the integration. task authors can use the default value provided, as a template, however it needs to be modified according to the needs.

  • "subnets" : The IDs of the subnets associated with the task or service. There’s a limit of 16 subnets that can be specified per AwsVpcConfiguration. This parameter is required, so at least one needs to be provided.

  • "assignPublicIp" : Accepts values “ENABLED" or “DISABLED". If this JSON element is not provided the default value is considered to be DISABLED. However, in most cases it needs to be ENABLED.

  • The IDs of the security groups associated with the task or service. If you don’t specify a security group, the default security group for the VPC is used. There’s a limit of 5 security groups that can be specified per AwsVpcConfiguration

Introduced in 1.0.0

GroupText

The name of the ECS task group to associate with the ECS task. The default value used by AWS is the family name of the task definition (for example, family:my-family-name).

The field is optional

Introduced in 1.0.0

Started By

Text

An optional tag specified when a ECS Task is started. Useful on AWS console for filtering Tasks based on the triggering source.

Available when Action = “Run Task”

Introduced in 1.0.0

Provide Additional Configuration As

Choice

Specifies if and how additional configuration options can be defined.

Available options are:

  • – None --

  • As JSON Text (default)

  • As JSON UAC Script

Available if Action = “Run Task”

Introduced in 1.0.0

Additional Configuration (Text)

Large Text

The field could be required when Action = “Run Task” and provides additional configuration options for the ECS Task execution.

Default Value
{
   "capacityProviderStrategy": [ 
      { 
         "base": number,
         "capacityProvider": "string",
         "weight": number
      }
   ],
   "clientToken": "string",
   "count": number,
   "enableECSManagedTags": boolean,
   "enableExecuteCommand": boolean,
   "launchType": "string",
   "overrides": { 
      "containerOverrides": [ 
         { 
            "command": [ "string" ],
            "cpu": number,
            "environment": [ 
               { 
                  "name": "string",
                  "value": "string"
               }
            ],
            "environmentFiles": [ 
               { 
                  "type": "string",
                  "value": "string"
               }
            ],
            "memory": number,
            "memoryReservation": number,
            "name": "string",
            "resourceRequirements": [ 
               { 
                  "type": "string",
                  "value": "string"
               }
            ]
         }
      ],
      "cpu": "string",
      "ephemeralStorage": { 
         "sizeInGiB": number
      },
      "executionRoleArn": "string",
      "inferenceAcceleratorOverrides": [ 
         { 
            "deviceName": "string",
            "deviceType": "string"
         }
      ],
      "memory": "string",
      "taskRoleArn": "string"
   },
   "placementConstraints": [ 
      { 
         "expression": "string",
         "type": "string"
      }
   ],
   "placementStrategy": [ 
      { 
         "field": "string",
         "type": "string"
      }
   ],
   "platformVersion": "string",
   "propagateTags": "string",
   "referenceId": "string",
   "tags": [ 
      { 
         "key": "string",
         "value": "string"
      }
   ],
   "volumeConfigurations": [ 
      { 
         "managedEBSVolume": { 
            "encrypted": boolean,
            "filesystemType": "string",
            "iops": number,
            "kmsKeyId": "string",
            "roleArn": "string",
            "sizeInGiB": number,
            "snapshotId": "string",
            "tagSpecifications": [ 
               { 
                  "propagateTags": "string",
                  "resourceType": "string",
                  "tags": [ 
                     { 
                        "key": "string",
                        "value": "string"
                     }
                  ]
               }
            ],
            "terminationPolicy": { 
               "deleteOnTermination": boolean
            },
            "throughput": number,
            "volumeType": "string"
         },
         "name": "string"
      }
   ]
}


The default value is a placeholder value meant to serve as a way to inform the user of what the available options are. It is not meant to be used directly as a default value for an execution of the integration. Task authors can use the default value provided, as a template, however it needs to be modified according to the needs.

  • Root JSON elements (for example "volumeConfigurations") are optional. Consequently, if a JSON element is not required, it should be removed.

  • Each JSON element might need to be populated based on some domain values and some rules. For more information concerning functionality and data domain on specific JSON elements, please consult the official AWS User Guide

  • "string", number, boolean is a placeholder and needs to be updated with the real value. For "string" The value needs to be in a JSON string format, which means that depending on the value some characters should be escaped according to JSON grammar.

Required when Provide Additional Configuration As = “As JSON Text”

Introduced in 1.0.0

Additional Configuration (Script)

Script

Provides the same functionality as Additional Configuration (Text) option with the added benefit of being reusable by saving the configuration as a UAC script.

Required when Provide Additional Configuration As = “As JSON UAC Script”

Introduced in 1.0.0

Wait for Task to Finish

Checkbox

If selected, the UAC task instance will run until the triggered ECS Task reaches the status "STOPPED"

Available for “Run Task” and “Stop Task” Actions.

Introduced in 1.0.0

Polling Interval (sec)

Integer

The field is required when Wait for Task to Finish is “true” and represents the time interval between retries for getting the status of the ECS Task.

As a best practice, if the Task Execution expected completion duration is long, set the polling Interval to a larger value. A short value will trigger frequent checks towards AWS which in the case of long-duration Tasks is inefficient in terms of resources.

The default value is 60.

Introduced in 1.0.0

Extension Output Options

Multiple Choice

Option to control the visibility of information that appears on UAC Task Instance Extension Output. If “Include ECS Task Execution Metadata” is selected then Related information is printed on Universal Task Instance Extension Output.

Introduced in 1.0.0

Output Fields

The following output-only fields provide better visibility during the execution of Universal Task Instances.

NameTypeDescription

Version Information

Task ARN

Text

The Task ARN.

Introduced on 1.0.0

Task Status

Text

The Last Status Retrieved by the Universal Task Instance.

Introduced on 1.0.0

Environment Variables

Environment Variables can be set in the Environment Variables task definition table. For variables that relate to AWS please refer to the AWS Boto3 documentation. For proxies as environment variables, refer to the Proxy Configuration section of this document.

Proxy Configuration

HTTPS_PROXY environment variables can be used to specify a required proxy server (which could be operating either on HTTP or HTTPS) 

HTTP Proxy Configuration

You can set the desired proxy address through the HTTPS_PROXY Environment Variable. Note that the Proxy operates on HTTP mode and not HTTPS


HTTPS Proxy Configuration

Configuration of HTTPS Proxy with a CA Bundle for SSL verification purposes (if required)

Proxies with authentication are also supported. To maximize security, it is strongly recommended to create a Resolvable Credentials entity in the Universal Controller and then configure the environment variable as follows.

Proxy Definition with basic authentication. Credentials are stored in a UAC Credential entity
http://${_credentialUser('Proxy Credentials')}:${_credentialPwd('Proxy_Credentials')}@userproxyaddress.com:8080


Exit Codes

Exit Code

Status

Status Description

Meaning

0

Success

“SUCCESS: Task executed successfully.“

Successful Execution.

1Failure

“Execution Failed: <<Error Description>>”

Generic Error or in case Task is finished with reported Error.

2Failure

“Authentication Error: Account cannot be authenticated.“

Bad credentials.

3Failure

“Authorization Error: Account is not authorized to perform the requested action.“

Insufficient permissions.

20Failure

“Data Validation Error: <<Error Description>>“

Input fields validation error.

STDOUT and STDERR

STDOUT of this integration is empty and STDERR provides additional information to the user, the detail of it is tuned by Log Level Task Definition field.

Backward compatibility is not guaranteed for the content of STDOUT/STDERR and can be changed in future versions without notice.

How To

Import Universal Template

To use the Universal Template, you first must perform the following steps.

  1. This Universal Task requires the Resolvable Credentials feature. Check that the Resolvable Credentials Permitted system property has been set to true.

  2. To import the Universal Template into your Controller, follow these instructions.

  3. When the files have been imported successfully, refresh the Universal Templates list; the Universal Template will appear on the list.

Modifications of this integration, applied by users or customers, before or after import, might affect the supportability of this integration. For more information refer to Integration Modifications.

Configure Universal Task

For a new Universal Task, create a new task, and enter the required input fields.

Integration Modifications

Modifications applied by users or customers, before or after import, might affect the supportability of this integration. The following modifications are discouraged to retain the support level as applied for this integration.

  • Python code modifications should not be done.

  • Template Modifications

    • General Section

      • "Name", "Extension", "Variable Prefix", and "Icon" should not be changed.

    • Universal Template Details Section

      • "Template Type", "Agent Type", "Send Extension Variables", and "Always Cancel on Force Finish" should not be changed.

    • Result Processing Defaults Section

      • Success and Failure Exit codes should not be changed.

      • Success and Failure Output processing should not be changed.

    • Fields Restriction Section
      The setup of the template does not impose any restrictions. However, concerning the "Exit Code Processing Fields" section.

      1. Success/Failure exit codes need to be respected.

      2. In principle, as STDERR and STDOUT outputs can change in follow-up releases of this integration, they should not be considered as a reliable source for determining the success or failure of a task.

Users and customers are encouraged to report defects, or feature requests at Stonebranch Support Desk.

Document References

This document references the following documents:

Document Link

Description

Universal Templates

User documentation for creating, working with, and understanding Universal Templates and Integrations.

Universal Tasks

User documentation for creating Universal Tasks in the Universal Controller user interface.

AWS Credential Configuration Options

Official AWS Guide on how Credentials are evaluated by Boto3.

AWS configuration file

Official AWS Guide on how AWS Configuration file is used by Boto3.

AWS environment variables

Official AWS Guide on how AWS Environment Variables are used by Boto3.

AWS User Guide

Official AWS Guide parameters to run an ECS Task. This guide comes in handy in case of complex configurations and helps in the population of Network Configuration (JSON), Additional Configuration (Text) & Additional Configuration (Script) fields.

Changelog

ue-aws-ecs-1.0.0 (2024-08-14)

Initial Version