EcsRunTaskJsonPathProps Struct
Properties for ECS Tasks using JSONPath.
Example
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
import { aws_ec2 as ec2 } from 'aws-cdk-lib';
import { aws_ecs as ecs } from 'aws-cdk-lib';
import { aws_stepfunctions as stepfunctions } from 'aws-cdk-lib';
import { aws_stepfunctions_tasks as stepfunctions_tasks } from 'aws-cdk-lib';
declare const assign: any;
declare const cluster: ecs.Cluster;
declare const containerDefinition: ecs.ContainerDefinition;
declare const ecsLaunchTarget: stepfunctions_tasks.IEcsLaunchTarget;
declare const resultSelector: any;
declare const securityGroup: ec2.SecurityGroup;
declare const subnet: ec2.Subnet;
declare const subnetFilter: ec2.SubnetFilter;
declare const taskDefinition: ecs.TaskDefinition;
declare const taskRole: stepfunctions.TaskRole;
declare const timeout: stepfunctions.Timeout;
const ecsRunTaskJsonPathProps: stepfunctions_tasks.EcsRunTaskJsonPathProps = {
cluster: cluster,
launchTarget: ecsLaunchTarget,
taskDefinition: taskDefinition,
// the properties below are optional
assign: {
assignKey: assign,
},
assignPublicIp: false,
comment: 'comment',
containerOverrides: [{
containerDefinition: containerDefinition,
// the properties below are optional
command: ['command'],
cpu: 123,
environment: [{
name: 'name',
value: 'value',
}],
memoryLimit: 123,
memoryReservation: 123,
}],
cpu: 'cpu',
credentials: {
role: taskRole,
},
enableExecuteCommand: false,
heartbeat: cdk.Duration.minutes(30),
heartbeatTimeout: timeout,
inputPath: 'inputPath',
integrationPattern: stepfunctions.IntegrationPattern.REQUEST_RESPONSE,
memoryMiB: 'memoryMiB',
outputPath: 'outputPath',
propagatedTagSource: ecs.PropagatedTagSource.SERVICE,
queryLanguage: stepfunctions.QueryLanguage.JSON_PATH,
resultPath: 'resultPath',
resultSelector: {
resultSelectorKey: resultSelector,
},
revisionNumber: 123,
securityGroups: [securityGroup],
stateName: 'stateName',
subnets: {
availabilityZones: ['availabilityZones'],
onePerAz: false,
subnetFilters: [subnetFilter],
subnetGroupName: 'subnetGroupName',
subnets: [subnet],
subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
},
taskTimeout: timeout,
timeout: cdk.Duration.minutes(30),
};
# The code below shows an example of how to instantiate this type.
# The values are placeholders you should change.
import aws_cdk as cdk
from aws_cdk import aws_ec2 as ec2
from aws_cdk import aws_ecs as ecs
from aws_cdk import aws_stepfunctions as stepfunctions
from aws_cdk import aws_stepfunctions_tasks as stepfunctions_tasks
# assign: Any
# cluster: ecs.Cluster
# container_definition: ecs.ContainerDefinition
# ecs_launch_target: stepfunctions_tasks.IEcsLaunchTarget
# result_selector: Any
# security_group: ec2.SecurityGroup
# subnet: ec2.Subnet
# subnet_filter: ec2.SubnetFilter
# task_definition: ecs.TaskDefinition
# task_role: stepfunctions.TaskRole
# timeout: stepfunctions.Timeout
ecs_run_task_json_path_props = stepfunctions_tasks.EcsRunTaskJsonPathProps(
cluster=cluster,
launch_target=ecs_launch_target,
task_definition=task_definition,
# the properties below are optional
assign={
"assign_key": assign
},
assign_public_ip=False,
comment="comment",
container_overrides=[stepfunctions_tasks.ContainerOverride(
container_definition=container_definition,
# the properties below are optional
command=["command"],
cpu=123,
environment=[stepfunctions_tasks.TaskEnvironmentVariable(
name="name",
value="value"
)],
memory_limit=123,
memory_reservation=123
)],
cpu="cpu",
credentials=stepfunctions.Credentials(
role=task_role
),
enable_execute_command=False,
heartbeat=cdk.Duration.minutes(30),
heartbeat_timeout=timeout,
input_path="inputPath",
integration_pattern=stepfunctions.IntegrationPattern.REQUEST_RESPONSE,
memory_mi_b="memoryMiB",
output_path="outputPath",
propagated_tag_source=ecs.PropagatedTagSource.SERVICE,
query_language=stepfunctions.QueryLanguage.JSON_PATH,
result_path="resultPath",
result_selector={
"result_selector_key": result_selector
},
revision_number=123,
security_groups=[security_group],
state_name="stateName",
subnets=ec2.SubnetSelection(
availability_zones=["availabilityZones"],
one_per_az=False,
subnet_filters=[subnet_filter],
subnet_group_name="subnetGroupName",
subnets=[subnet],
subnet_type=ec2.SubnetType.PRIVATE_ISOLATED
),
task_timeout=timeout,
timeout=cdk.Duration.minutes(30)
)
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.*;
import software.amazon.awscdk.services.ec2.*;
import software.amazon.awscdk.services.ecs.*;
import software.amazon.awscdk.services.stepfunctions.*;
import software.amazon.awscdk.services.stepfunctions.tasks.*;
Object assign;
Cluster cluster;
ContainerDefinition containerDefinition;
IEcsLaunchTarget ecsLaunchTarget;
Object resultSelector;
SecurityGroup securityGroup;
Subnet subnet;
SubnetFilter subnetFilter;
TaskDefinition taskDefinition;
TaskRole taskRole;
Timeout timeout;
EcsRunTaskJsonPathProps ecsRunTaskJsonPathProps = EcsRunTaskJsonPathProps.builder()
.cluster(cluster)
.launchTarget(ecsLaunchTarget)
.taskDefinition(taskDefinition)
// the properties below are optional
.assign(Map.of(
"assignKey", assign))
.assignPublicIp(false)
.comment("comment")
.containerOverrides(List.of(ContainerOverride.builder()
.containerDefinition(containerDefinition)
// the properties below are optional
.command(List.of("command"))
.cpu(123)
.environment(List.of(TaskEnvironmentVariable.builder()
.name("name")
.value("value")
.build()))
.memoryLimit(123)
.memoryReservation(123)
.build()))
.cpu("cpu")
.credentials(Credentials.builder()
.role(taskRole)
.build())
.enableExecuteCommand(false)
.heartbeat(Duration.minutes(30))
.heartbeatTimeout(timeout)
.inputPath("inputPath")
.integrationPattern(IntegrationPattern.REQUEST_RESPONSE)
.memoryMiB("memoryMiB")
.outputPath("outputPath")
.propagatedTagSource(PropagatedTagSource.SERVICE)
.queryLanguage(QueryLanguage.JSON_PATH)
.resultPath("resultPath")
.resultSelector(Map.of(
"resultSelectorKey", resultSelector))
.revisionNumber(123)
.securityGroups(List.of(securityGroup))
.stateName("stateName")
.subnets(SubnetSelection.builder()
.availabilityZones(List.of("availabilityZones"))
.onePerAz(false)
.subnetFilters(List.of(subnetFilter))
.subnetGroupName("subnetGroupName")
.subnets(List.of(subnet))
.subnetType(SubnetType.PRIVATE_ISOLATED)
.build())
.taskTimeout(timeout)
.timeout(Duration.minutes(30))
.build();
// Install: dotnet add package Amazon.CDK.Lib
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK;
using Amazon.CDK.AWS.EC2;
using Amazon.CDK.AWS.ECS;
using Amazon.CDK.AWS.StepFunctions;
using Amazon.CDK.AWS.StepFunctions.Tasks;
var assign;
Cluster cluster;
ContainerDefinition containerDefinition;
IEcsLaunchTarget ecsLaunchTarget;
var resultSelector;
SecurityGroup securityGroup;
Subnet subnet;
SubnetFilter subnetFilter;
TaskDefinition taskDefinition;
TaskRole taskRole;
Timeout timeout;
var ecsRunTaskJsonPathProps = new EcsRunTaskJsonPathProps {
Cluster = cluster,
LaunchTarget = ecsLaunchTarget,
TaskDefinition = taskDefinition,
// the properties below are optional
Assign = new Dictionary<string, object> {
{ "assignKey", assign }
},
AssignPublicIp = false,
Comment = "comment",
ContainerOverrides = new [] { new ContainerOverride {
ContainerDefinition = containerDefinition,
// the properties below are optional
Command = new [] { "command" },
Cpu = 123,
Environment = new [] { new TaskEnvironmentVariable {
Name = "name",
Value = "value"
} },
MemoryLimit = 123,
MemoryReservation = 123
} },
Cpu = "cpu",
Credentials = new Credentials {
Role = taskRole
},
EnableExecuteCommand = false,
Heartbeat = Duration.Minutes(30),
HeartbeatTimeout = timeout,
InputPath = "inputPath",
IntegrationPattern = IntegrationPattern.REQUEST_RESPONSE,
MemoryMiB = "memoryMiB",
OutputPath = "outputPath",
PropagatedTagSource = PropagatedTagSource.SERVICE,
QueryLanguage = QueryLanguage.JSON_PATH,
ResultPath = "resultPath",
ResultSelector = new Dictionary<string, object> {
{ "resultSelectorKey", resultSelector }
},
RevisionNumber = 123,
SecurityGroups = new [] { securityGroup },
StateName = "stateName",
Subnets = new SubnetSelection {
AvailabilityZones = new [] { "availabilityZones" },
OnePerAz = false,
SubnetFilters = new [] { subnetFilter },
SubnetGroupName = "subnetGroupName",
Subnets = new [] { subnet },
SubnetType = SubnetType.PRIVATE_ISOLATED
},
TaskTimeout = timeout,
Timeout = Duration.Minutes(30)
};
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
var assign interface{}
var cluster Cluster
var containerDefinition ContainerDefinition
var ecsLaunchTarget IEcsLaunchTarget
var resultSelector interface{}
var securityGroup SecurityGroup
var subnet Subnet
var subnetFilter SubnetFilter
var taskDefinition TaskDefinition
var taskRole TaskRole
var timeout Timeout
ecsRunTaskJsonPathProps := &EcsRunTaskJsonPathProps{
Cluster: cluster,
LaunchTarget: ecsLaunchTarget,
TaskDefinition: taskDefinition,
// the properties below are optional
Assign: map[string]interface{}{
"assignKey": assign,
},
AssignPublicIp: jsii.Boolean(false),
Comment: jsii.String("comment"),
ContainerOverrides: []ContainerOverride{
&ContainerOverride{
ContainerDefinition: containerDefinition,
// the properties below are optional
Command: []*string{
jsii.String("command"),
},
Cpu: jsii.Number(123),
Environment: []TaskEnvironmentVariable{
&TaskEnvironmentVariable{
Name: jsii.String("name"),
Value: jsii.String("value"),
},
},
MemoryLimit: jsii.Number(123),
MemoryReservation: jsii.Number(123),
},
},
Cpu: jsii.String("cpu"),
Credentials: &Credentials{
Role: taskRole,
},
EnableExecuteCommand: jsii.Boolean(false),
Heartbeat: cdk.Duration_Minutes(jsii.Number(30)),
HeartbeatTimeout: timeout,
InputPath: jsii.String("inputPath"),
IntegrationPattern: awscdk.Aws_stepfunctions.IntegrationPattern_REQUEST_RESPONSE,
MemoryMiB: jsii.String("memoryMiB"),
OutputPath: jsii.String("outputPath"),
PropagatedTagSource: awscdk.Aws_ecs.PropagatedTagSource_SERVICE,
QueryLanguage: awscdk.*Aws_stepfunctions.QueryLanguage_JSON_PATH,
ResultPath: jsii.String("resultPath"),
ResultSelector: map[string]interface{}{
"resultSelectorKey": resultSelector,
},
RevisionNumber: jsii.Number(123),
SecurityGroups: []ISecurityGroup{
securityGroup,
},
StateName: jsii.String("stateName"),
Subnets: &SubnetSelection{
AvailabilityZones: []*string{
jsii.String("availabilityZones"),
},
OnePerAz: jsii.Boolean(false),
SubnetFilters: []SubnetFilter{
subnetFilter,
},
SubnetGroupName: jsii.String("subnetGroupName"),
Subnets: []ISubnet{
subnet,
},
SubnetType: awscdk.Aws_ec2.SubnetType_PRIVATE_ISOLATED,
},
TaskTimeout: timeout,
Timeout: cdk.Duration_*Minutes(jsii.Number(30)),
}
Properties
assignoptional{ [key: string]: any }assignoptionaltyping.Mapping[str, Any]assignoptionalMap<String, Object>AssignoptionalIDictionary<string, object>Assignoptional*map[string]interface{}#Default: Not assign variables
Using workflow variables, you can store data in a step and retrieve that data in future steps.
assignPublicIpoptionalbooleanassign_public_ipoptionalboolassignPublicIpoptionalBooleanAssignPublicIpoptionalboolAssignPublicIpoptional*bool= false#commentoptionalstringcommentoptionalstrcommentoptionalStringCommentoptionalstringCommentoptional*string#Default: No comment
containerOverridesoptionalContainerOverride[]container_overridesoptionaltyping.List[ContainerOverride]containerOverridesoptionalList<ContainerOverride>ContainerOverridesoptionalContainerOverride[]ContainerOverridesoptional*[]ContainerOverride#Default: No overrides
Specify the container to use and the overrides to apply.
Default: No override
credentialsoptionalCredentialscredentialsoptionalCredentialscredentialsoptionalCredentialsCredentialsoptionalCredentialsCredentialsoptionalCredentials#Default: None (Task is executed using the State Machine's execution role)
This enables cross-account resource invocations.
enableExecuteCommandoptionalbooleanenable_execute_commandoptionalboolenableExecuteCommandoptionalBooleanEnableExecuteCommandoptionalboolEnableExecuteCommandoptional*bool= false#heartbeatoptionalDurationheartbeatoptionalDurationheartbeatoptionalDurationHeartbeatoptionalDurationHeartbeatoptionalDuration= Nonedeprecated#heartbeatTimeoutoptionalTimeoutheartbeat_timeoutoptionalTimeoutheartbeatTimeoutoptionalTimeoutHeartbeatTimeoutoptionalTimeoutHeartbeatTimeoutoptionalTimeout= None#[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
inputPathoptionalstringinput_pathoptionalstrinputPathoptionalStringInputPathoptionalstringInputPathoptional*string= $#May also be the special value JsonPath.DISCARD, which will cause the effective input to be the empty object {}.
integrationPatternoptionalIntegrationPatternintegration_patternoptionalIntegrationPatternintegrationPatternoptionalIntegrationPatternIntegrationPatternoptionalIntegrationPatternIntegrationPatternoptionalIntegrationPattern#Default: IntegrationPattern.REQUEST_RESPONSE for most tasks. IntegrationPattern.RUN_JOB for the following exceptions: BatchSubmitJob, EmrAddStep, EmrCreateCluster, EmrTerminationCluster, and EmrContainersStartJobRun.
You can control these AWS services using service integration patterns.
Depending on the AWS Service, the Service Integration Pattern availability will vary.
launchTargetIEcsLaunchTargetlaunch_targetIEcsLaunchTargetlaunchTargetIEcsLaunchTargetLaunchTargetIEcsLaunchTargetLaunchTargetIEcsLaunchTargetrequired#memoryMiBoptionalstringmemory_mi_boptionalstrmemoryMiBoptionalStringMemoryMiBoptionalstringMemoryMiBoptional*string#Default: No override
outputPathoptionalstringoutput_pathoptionalstroutputPathoptionalStringOutputPathoptionalstringOutputPathoptional*string= $#May also be the special value JsonPath.DISCARD, which will cause the effective output to be the empty object {}.
propagatedTagSourceoptionalPropagatedTagSourcepropagated_tag_sourceoptionalPropagatedTagSourcepropagatedTagSourceoptionalPropagatedTagSourcePropagatedTagSourceoptionalPropagatedTagSourcePropagatedTagSourceoptionalPropagatedTagSource#Default: No tags are propagated.
An error will be received if you specify the SERVICE option when running a task.
queryLanguageoptionalQueryLanguagequery_languageoptionalQueryLanguagequeryLanguageoptionalQueryLanguageQueryLanguageoptionalQueryLanguageQueryLanguageoptionalQueryLanguage= JSONPath#If the state does not contain a queryLanguage field, then it will use the query language specified in the top-level queryLanguage field.
resultPathoptionalstringresult_pathoptionalstrresultPathoptionalStringResultPathoptionalstringResultPathoptional*string= $#May also be the special value JsonPath.DISCARD, which will cause the state's input to become its output.
resultSelectoroptional{ [key: string]: any }result_selectoroptionaltyping.Mapping[str, Any]resultSelectoroptionalMap<String, Object>ResultSelectoroptionalIDictionary<string, object>ResultSelectoroptional*map[string]interface{}= None#You can use ResultSelector to create a payload with values that are static or selected from the state's raw result.
revisionNumberoptionalnumberrevision_numberoptionalint | floatrevisionNumberoptionalNumberRevisionNumberoptionaldoubleRevisionNumberoptional*float64= '$latest'#securityGroupsoptionalISecurityGroup[]security_groupsoptionaltyping.List[ISecurityGroup]securityGroupsoptionalList<ISecurityGroup>SecurityGroupsoptionalISecurityGroup[]SecurityGroupsoptional*[]ISecurityGroup#Default: A new security group is created
stateNameoptionalstringstate_nameoptionalstrstateNameoptionalStringStateNameoptionalstringStateNameoptional*string#Default: The construct ID will be used as state name
subnetsoptionalSubnetSelectionsubnetsoptionalSubnetSelectionsubnetsoptionalSubnetSelectionSubnetsoptionalSubnetSelectionSubnetsoptionalSubnetSelection#Default: Public subnets if assignPublicIp is set. Private subnets otherwise.
taskDefinitionTaskDefinitiontask_definitionTaskDefinitiontaskDefinitionTaskDefinitionTaskDefinitionTaskDefinitionTaskDefinitionTaskDefinitionrequired#Note: this must be TaskDefinition, and not ITaskDefinition, as it requires properties that are not known for imported task definitions If you want to run a RunTask with an imported task definition, consider using CustomState