Namespace Amazon.CDK.AWS.StepFunctions.Tasks
Tasks for AWS Step Functions
AWS Step Functions is a web service that enables you to coordinate the components of distributed applications and microservices using visual workflows. You build applications from individual components that each perform a discrete function, or task, allowing you to scale and change applications quickly.
A Task state represents a single unit of work performed by a state machine. All work in your state machine is performed by tasks. This module contains a collection of classes that allow you to call various AWS services from your Step Functions state machine.
Be sure to familiarize yourself with the aws-stepfunctions
module documentation first.
This module is part of the AWS Cloud Development Kit project.
Table Of Contents
Paths
Learn more about input and output processing in Step Functions here
Evaluate Expression
Use the EvaluateExpression
to perform simple operations referencing state paths. The
expression
referenced in the task will be evaluated in a Lambda function
(eval()
). This allows you to not have to write Lambda code for simple operations.
Example: convert a wait time from milliseconds to seconds, concat this in a message and wait:
var convertToSeconds = new EvaluateExpression(this, "Convert to seconds", new EvaluateExpressionProps {
Expression = "$.waitMilliseconds / 1000",
ResultPath = "$.waitSeconds"
});
var createMessage = new EvaluateExpression(this, "Create message", new EvaluateExpressionProps {
// Note: this is a string inside a string.
Expression = "`Now waiting ${$.waitSeconds} seconds...`",
Runtime = Runtime.NODEJS_LATEST,
ResultPath = "$.message"
});
var publishMessage = new SnsPublish(this, "Publish message", new SnsPublishProps {
Topic = new Topic(this, "cool-topic"),
Message = TaskInput.FromJsonPathAt("$.message"),
ResultPath = "$.sns"
});
var wait = new Wait(this, "Wait", new WaitProps {
Time = WaitTime.SecondsPath("$.waitSeconds")
});
new StateMachine(this, "StateMachine", new StateMachineProps {
Definition = convertToSeconds.Next(createMessage).Next(publishMessage).Next(wait)
});
The EvaluateExpression
supports a runtime
prop to specify the Lambda
runtime to use to evaluate the expression. Currently, only runtimes
of the Node.js family are supported.
API Gateway
Step Functions supports API Gateway through the service integration pattern.
HTTP APIs are designed for low-latency, cost-effective integrations with AWS services, including AWS Lambda, and HTTP endpoints. HTTP APIs support OIDC and OAuth 2.0 authorization, and come with built-in support for CORS and automatic deployments. Previous-generation REST APIs currently offer more features. More details can be found here.
Call REST API Endpoint
The CallApiGatewayRestApiEndpoint
calls the REST API endpoint.
using Amazon.CDK.AWS.APIGateway;
var restApi = new RestApi(this, "MyRestApi");
var invokeTask = new CallApiGatewayRestApiEndpoint(this, "Call REST API", new CallApiGatewayRestApiEndpointProps {
Api = restApi,
StageName = "prod",
Method = HttpMethod.GET
});
Be aware that the header values must be arrays. When passing the Task Token
in the headers field WAIT_FOR_TASK_TOKEN
integration, use
JsonPath.array()
to wrap the token in an array:
using Amazon.CDK.AWS.APIGateway;
RestApi api;
new CallApiGatewayRestApiEndpoint(this, "Endpoint", new CallApiGatewayRestApiEndpointProps {
Api = api,
StageName = "Stage",
Method = HttpMethod.PUT,
IntegrationPattern = IntegrationPattern.WAIT_FOR_TASK_TOKEN,
Headers = TaskInput.FromObject(new Dictionary<string, object> {
{ "TaskToken", JsonPath.Array(JsonPath.TaskToken) }
})
});
Call HTTP API Endpoint
The CallApiGatewayHttpApiEndpoint
calls the HTTP API endpoint.
using Amazon.CDK.AWS.Apigatewayv2;
var httpApi = new HttpApi(this, "MyHttpApi");
var invokeTask = new CallApiGatewayHttpApiEndpoint(this, "Call HTTP API", new CallApiGatewayHttpApiEndpointProps {
ApiId = httpApi.ApiId,
ApiStack = Stack.Of(httpApi),
Method = HttpMethod.GET
});
AWS SDK
Step Functions supports calling AWS service's API actions through the service integration pattern.
You can use Step Functions' AWS SDK integrations to call any of the over two hundred AWS services directly from your state machine, giving you access to over nine thousand API actions.
Bucket myBucket;
var getObject = new CallAwsService(this, "GetObject", new CallAwsServiceProps {
Service = "s3",
Action = "getObject",
Parameters = new Dictionary<string, object> {
{ "Bucket", myBucket.BucketName },
{ "Key", JsonPath.StringAt("$.key") }
},
IamResources = new [] { myBucket.ArnForObjects("*") }
});
Use camelCase for actions and PascalCase for parameter names.
The task automatically adds an IAM statement to the state machine role's policy based on the
service and action called. The resources for this statement must be specified in iamResources
.
Use the iamAction
prop to manually specify the IAM action name in the case where the IAM
action name does not match with the API service/action name:
var listBuckets = new CallAwsService(this, "ListBuckets", new CallAwsServiceProps {
Service = "s3",
Action = "listBuckets",
IamResources = new [] { "*" },
IamAction = "s3:ListAllMyBuckets"
});
Use the additionalIamStatements
prop to pass additional IAM statements that will be added to the
state machine role's policy. Use it in the case where the call requires more than a single statement
to be executed:
var detectLabels = new CallAwsService(this, "DetectLabels", new CallAwsServiceProps {
Service = "rekognition",
Action = "detectLabels",
IamResources = new [] { "*" },
AdditionalIamStatements = new [] {
new PolicyStatement(new PolicyStatementProps {
Actions = new [] { "s3:getObject" },
Resources = new [] { "arn:aws:s3:::my-bucket/*" }
}) }
});
Athena
Step Functions supports Athena through the service integration pattern.
StartQueryExecution
The StartQueryExecution API runs the SQL query statement.
var startQueryExecutionJob = new AthenaStartQueryExecution(this, "Start Athena Query", new AthenaStartQueryExecutionProps {
QueryString = JsonPath.StringAt("$.queryString"),
QueryExecutionContext = new QueryExecutionContext {
DatabaseName = "mydatabase"
},
ResultConfiguration = new ResultConfiguration {
EncryptionConfiguration = new EncryptionConfiguration {
EncryptionOption = EncryptionOption.S3_MANAGED
},
OutputLocation = new Location {
BucketName = "query-results-bucket",
ObjectKey = "folder"
}
},
ExecutionParameters = new [] { "param1", "param2" }
});
GetQueryExecution
The GetQueryExecution API gets information about a single execution of a query.
var getQueryExecutionJob = new AthenaGetQueryExecution(this, "Get Query Execution", new AthenaGetQueryExecutionProps {
QueryExecutionId = JsonPath.StringAt("$.QueryExecutionId")
});
GetQueryResults
The GetQueryResults API that streams the results of a single query execution specified by QueryExecutionId from S3.
var getQueryResultsJob = new AthenaGetQueryResults(this, "Get Query Results", new AthenaGetQueryResultsProps {
QueryExecutionId = JsonPath.StringAt("$.QueryExecutionId")
});
StopQueryExecution
The StopQueryExecution API that stops a query execution.
var stopQueryExecutionJob = new AthenaStopQueryExecution(this, "Stop Query Execution", new AthenaStopQueryExecutionProps {
QueryExecutionId = JsonPath.StringAt("$.QueryExecutionId")
});
Batch
Step Functions supports Batch through the service integration pattern.
SubmitJob
The SubmitJob API submits an AWS Batch job from a job definition.
using Amazon.CDK.AWS.Batch;
EcsJobDefinition batchJobDefinition;
JobQueue batchQueue;
var task = new BatchSubmitJob(this, "Submit Job", new BatchSubmitJobProps {
JobDefinitionArn = batchJobDefinition.JobDefinitionArn,
JobName = "MyJob",
JobQueueArn = batchQueue.JobQueueArn
});
Bedrock
Step Functions supports Bedrock through the service integration pattern.
InvokeModel
The InvokeModel API invokes the specified Bedrock model to run inference using the input provided. The format of the input body and the response body depend on the model selected.
using Amazon.CDK.Aws_bedrock;
var model = FoundationModel.FromFoundationModelId(this, "Model", FoundationModelIdentifier.AMAZON_TITAN_TEXT_G1_EXPRESS_V1);
var task = new BedrockInvokeModel(this, "Prompt Model", new BedrockInvokeModelProps {
Model = model,
Body = TaskInput.FromObject(new Dictionary<string, object> {
{ "inputText", "Generate a list of five first names." },
{ "textGenerationConfig", new Dictionary<string, int> {
{ "maxTokenCount", 100 },
{ "temperature", 1 }
} }
}),
ResultSelector = new Dictionary<string, object> {
{ "names", JsonPath.StringAt("$.Body.results[0].outputText") }
}
});
CodeBuild
Step Functions supports CodeBuild through the service integration pattern.
StartBuild
StartBuild starts a CodeBuild Project by Project Name.
using Amazon.CDK.AWS.CodeBuild;
var codebuildProject = new Project(this, "Project", new ProjectProps {
ProjectName = "MyTestProject",
BuildSpec = BuildSpec.FromObject(new Dictionary<string, object> {
{ "version", "0.2" },
{ "phases", new Dictionary<string, IDictionary<string, string[]>> {
{ "build", new Struct {
Commands = new [] { "echo \"Hello, CodeBuild!\"" }
} }
} }
})
});
var task = new CodeBuildStartBuild(this, "Task", new CodeBuildStartBuildProps {
Project = codebuildProject,
IntegrationPattern = IntegrationPattern.RUN_JOB,
EnvironmentVariablesOverride = new Dictionary<string, BuildEnvironmentVariable> {
{ "ZONE", new BuildEnvironmentVariable {
Type = BuildEnvironmentVariableType.PLAINTEXT,
Value = JsonPath.StringAt("$.envVariables.zone")
} }
}
});
StartBuildBatch
StartBuildBatch starts a batch CodeBuild for a project by project name. It is necessary to enable the batch build feature in the CodeBuild project.
using Amazon.CDK.AWS.CodeBuild;
var project = new Project(this, "Project", new ProjectProps {
ProjectName = "MyTestProject",
BuildSpec = BuildSpec.FromObjectToYaml(new Dictionary<string, object> {
{ "version", 0.2 },
{ "batch", new Dictionary<string, IDictionary<string, string>[]> {
{ "build-list", new [] { new Struct {
Identifier = "id",
Buildspec = @"version: 0.2
phases:
build:
commands:
- echo ""Hello, from small!"""
} } }
} }
})
});
project.EnableBatchBuilds();
var task = new CodeBuildStartBuildBatch(this, "buildBatchTask", new CodeBuildStartBuildBatchProps {
Project = project,
IntegrationPattern = IntegrationPattern.REQUEST_RESPONSE,
EnvironmentVariablesOverride = new Dictionary<string, BuildEnvironmentVariable> {
{ "test", new BuildEnvironmentVariable {
Type = BuildEnvironmentVariableType.PLAINTEXT,
Value = "testValue"
} }
}
});
Note: enableBatchBuilds()
will do nothing for imported projects.
If you are using an imported project, you must ensure that the project is already configured for batch builds.
DynamoDB
You can call DynamoDB APIs from a Task
state.
Read more about calling DynamoDB APIs here
GetItem
The GetItem operation returns a set of attributes for the item with the given primary key.
Table myTable;
new DynamoGetItem(this, "Get Item", new DynamoGetItemProps {
Key = new Dictionary<string, DynamoAttributeValue> { { "messageId", DynamoAttributeValue.FromString("message-007") } },
Table = myTable
});
PutItem
The PutItem operation creates a new item, or replaces an old item with a new item.
Table myTable;
new DynamoPutItem(this, "PutItem", new DynamoPutItemProps {
Item = new Dictionary<string, DynamoAttributeValue> {
{ "MessageId", DynamoAttributeValue.FromString("message-007") },
{ "Text", DynamoAttributeValue.FromString(JsonPath.StringAt("$.bar")) },
{ "TotalCount", DynamoAttributeValue.FromNumber(10) }
},
Table = myTable
});
DeleteItem
The DeleteItem operation deletes a single item in a table by primary key.
Table myTable;
new DynamoDeleteItem(this, "DeleteItem", new DynamoDeleteItemProps {
Key = new Dictionary<string, DynamoAttributeValue> { { "MessageId", DynamoAttributeValue.FromString("message-007") } },
Table = myTable,
ResultPath = JsonPath.DISCARD
});
UpdateItem
The UpdateItem operation edits an existing item's attributes, or adds a new item to the table if it does not already exist.
Table myTable;
new DynamoUpdateItem(this, "UpdateItem", new DynamoUpdateItemProps {
Key = new Dictionary<string, DynamoAttributeValue> {
{ "MessageId", DynamoAttributeValue.FromString("message-007") }
},
Table = myTable,
ExpressionAttributeValues = new Dictionary<string, DynamoAttributeValue> {
{ ":val", DynamoAttributeValue.NumberFromString(JsonPath.StringAt("$.Item.TotalCount.N")) },
{ ":rand", DynamoAttributeValue.FromNumber(20) }
},
UpdateExpression = "SET TotalCount = :val + :rand"
});
ECS
Step Functions supports ECS/Fargate through the service integration pattern.
RunTask
RunTask starts a new task using the specified task definition.
EC2
The EC2 launch type allows you to run your containerized applications on a cluster of Amazon EC2 instances that you manage.
When a task that uses the EC2 launch type is launched, Amazon ECS must determine where to place the task based on the requirements specified in the task definition, such as CPU and memory. Similarly, when you scale down the task count, Amazon ECS must determine which tasks to terminate. You can apply task placement strategies and constraints to customize how Amazon ECS places and terminates tasks. Learn more about task placement
The latest ACTIVE revision of the passed task definition is used for running the task.
The following example runs a job from a task definition on EC2
var vpc = Vpc.FromLookup(this, "Vpc", new VpcLookupOptions {
IsDefault = true
});
var cluster = new Cluster(this, "Ec2Cluster", new ClusterProps { Vpc = vpc });
cluster.AddCapacity("DefaultAutoScalingGroup", new AddCapacityOptions {
InstanceType = new InstanceType("t2.micro"),
VpcSubnets = new SubnetSelection { SubnetType = SubnetType.PUBLIC }
});
var taskDefinition = new TaskDefinition(this, "TD", new TaskDefinitionProps {
Compatibility = Compatibility.EC2
});
taskDefinition.AddContainer("TheContainer", new ContainerDefinitionOptions {
Image = ContainerImage.FromRegistry("foo/bar"),
MemoryLimitMiB = 256
});
var runTask = new EcsRunTask(this, "Run", new EcsRunTaskProps {
IntegrationPattern = IntegrationPattern.RUN_JOB,
Cluster = cluster,
TaskDefinition = taskDefinition,
LaunchTarget = new EcsEc2LaunchTarget(new EcsEc2LaunchTargetOptions {
PlacementStrategies = new [] { PlacementStrategy.SpreadAcrossInstances(), PlacementStrategy.PackedByCpu(), PlacementStrategy.Randomly() },
PlacementConstraints = new [] { PlacementConstraint.MemberOf("blieptuut") }
}),
PropagatedTagSource = PropagatedTagSource.TASK_DEFINITION
});
Fargate
AWS Fargate is a serverless compute engine for containers that works with Amazon Elastic Container Service (ECS). Fargate makes it easy for you to focus on building your applications. Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security through application isolation by design. Learn more about Fargate
The Fargate launch type allows you to run your containerized applications without the need to provision and manage the backend infrastructure. Just register your task definition and Fargate launches the container for you. The latest ACTIVE revision of the passed task definition is used for running the task. Learn more about Fargate Versioning
The following example runs a job from a task definition on Fargate
var vpc = Vpc.FromLookup(this, "Vpc", new VpcLookupOptions {
IsDefault = true
});
var cluster = new Cluster(this, "FargateCluster", new ClusterProps { Vpc = vpc });
var taskDefinition = new TaskDefinition(this, "TD", new TaskDefinitionProps {
MemoryMiB = "512",
Cpu = "256",
Compatibility = Compatibility.FARGATE
});
var containerDefinition = taskDefinition.AddContainer("TheContainer", new ContainerDefinitionOptions {
Image = ContainerImage.FromRegistry("foo/bar"),
MemoryLimitMiB = 256
});
var runTask = new EcsRunTask(this, "RunFargate", new EcsRunTaskProps {
IntegrationPattern = IntegrationPattern.RUN_JOB,
Cluster = cluster,
TaskDefinition = taskDefinition,
AssignPublicIp = true,
ContainerOverrides = new [] { new ContainerOverride {
ContainerDefinition = containerDefinition,
Environment = new [] { new TaskEnvironmentVariable { Name = "SOME_KEY", Value = JsonPath.StringAt("$.SomeKey") } }
} },
LaunchTarget = new EcsFargateLaunchTarget(),
PropagatedTagSource = PropagatedTagSource.TASK_DEFINITION
});
ECS enable Exec
By setting the property enableExecuteCommand
to true
, you can enable the ECS Exec feature for the task for either Fargate or EC2 launch types.
var vpc = Vpc.FromLookup(this, "Vpc", new VpcLookupOptions {
IsDefault = true
});
var cluster = new Cluster(this, "ECSCluster", new ClusterProps { Vpc = vpc });
var taskDefinition = new TaskDefinition(this, "TD", new TaskDefinitionProps {
Compatibility = Compatibility.EC2
});
taskDefinition.AddContainer("TheContainer", new ContainerDefinitionOptions {
Image = ContainerImage.FromRegistry("foo/bar"),
MemoryLimitMiB = 256
});
var runTask = new EcsRunTask(this, "Run", new EcsRunTaskProps {
IntegrationPattern = IntegrationPattern.RUN_JOB,
Cluster = cluster,
TaskDefinition = taskDefinition,
LaunchTarget = new EcsEc2LaunchTarget(),
EnableExecuteCommand = true
});
EMR
Step Functions supports Amazon EMR through the service integration pattern. The service integration APIs correspond to Amazon EMR APIs but differ in the parameters that are used.
Read more about the differences when using these service integrations.
Create Cluster
Creates and starts running a cluster (job flow).
Corresponds to the runJobFlow
API in EMR.
var clusterRole = new Role(this, "ClusterRole", new RoleProps {
AssumedBy = new ServicePrincipal("ec2.amazonaws.com")
});
var serviceRole = new Role(this, "ServiceRole", new RoleProps {
AssumedBy = new ServicePrincipal("elasticmapreduce.amazonaws.com")
});
var autoScalingRole = new Role(this, "AutoScalingRole", new RoleProps {
AssumedBy = new ServicePrincipal("elasticmapreduce.amazonaws.com")
});
autoScalingRole.AssumeRolePolicy.AddStatements(
new PolicyStatement(new PolicyStatementProps {
Effect = Effect.ALLOW,
Principals = new [] {
new ServicePrincipal("application-autoscaling.amazonaws.com") },
Actions = new [] { "sts:AssumeRole" }
}));
new EmrCreateCluster(this, "Create Cluster", new EmrCreateClusterProps {
Instances = new InstancesConfigProperty { },
ClusterRole = clusterRole,
Name = TaskInput.FromJsonPathAt("$.ClusterName").Value,
ServiceRole = serviceRole,
AutoScalingRole = autoScalingRole
});
You can use the launch specification for On-Demand and Spot instances in the fleet.
new EmrCreateCluster(this, "OnDemandSpecification", new EmrCreateClusterProps {
Instances = new InstancesConfigProperty {
InstanceFleets = new [] { new InstanceFleetConfigProperty {
InstanceFleetType = EmrCreateCluster.InstanceRoleType.MASTER,
LaunchSpecifications = new InstanceFleetProvisioningSpecificationsProperty {
OnDemandSpecification = new OnDemandProvisioningSpecificationProperty {
AllocationStrategy = EmrCreateCluster.OnDemandAllocationStrategy.LOWEST_PRICE
}
}
} }
},
Name = "OnDemandCluster",
IntegrationPattern = IntegrationPattern.RUN_JOB
});
new EmrCreateCluster(this, "SpotSpecification", new EmrCreateClusterProps {
Instances = new InstancesConfigProperty {
InstanceFleets = new [] { new InstanceFleetConfigProperty {
InstanceFleetType = EmrCreateCluster.InstanceRoleType.MASTER,
LaunchSpecifications = new InstanceFleetProvisioningSpecificationsProperty {
SpotSpecification = new SpotProvisioningSpecificationProperty {
AllocationStrategy = EmrCreateCluster.SpotAllocationStrategy.CAPACITY_OPTIMIZED,
TimeoutAction = EmrCreateCluster.SpotTimeoutAction.TERMINATE_CLUSTER,
Timeout = Duration.Minutes(5)
}
}
} }
},
Name = "SpotCluster",
IntegrationPattern = IntegrationPattern.RUN_JOB
});
If you want to run multiple steps in parallel,
you can specify the stepConcurrencyLevel
property. The concurrency range is between 1
and 256 inclusive, where the default concurrency of 1 means no step concurrency is allowed.
stepConcurrencyLevel
requires the EMR release label to be 5.28.0 or above.
new EmrCreateCluster(this, "Create Cluster", new EmrCreateClusterProps {
Instances = new InstancesConfigProperty { },
Name = TaskInput.FromJsonPathAt("$.ClusterName").Value,
StepConcurrencyLevel = 10
});
Termination Protection
Locks a cluster (job flow) so the EC2 instances in the cluster cannot be terminated by user intervention, an API call, or a job-flow error.
Corresponds to the setTerminationProtection
API in EMR.
new EmrSetClusterTerminationProtection(this, "Task", new EmrSetClusterTerminationProtectionProps {
ClusterId = "ClusterId",
TerminationProtected = false
});
Terminate Cluster
Shuts down a cluster (job flow).
Corresponds to the terminateJobFlows
API in EMR.
new EmrTerminateCluster(this, "Task", new EmrTerminateClusterProps {
ClusterId = "ClusterId"
});
Add Step
Adds a new step to a running cluster.
Corresponds to the addJobFlowSteps
API in EMR.
new EmrAddStep(this, "Task", new EmrAddStepProps {
ClusterId = "ClusterId",
Name = "StepName",
Jar = "Jar",
ActionOnFailure = ActionOnFailure.CONTINUE
});
To specify a custom runtime role use the executionRoleArn
property.
Note: The EMR cluster must be created with a security configuration and the runtime role must have a specific trust policy. See this blog post for more details.
using Amazon.CDK.AWS.EMR;
var cfnSecurityConfiguration = new CfnSecurityConfiguration(this, "EmrSecurityConfiguration", new CfnSecurityConfigurationProps {
Name = "AddStepRuntimeRoleSecConfig",
SecurityConfiguration = JSON.Parse(@"
{
""AuthorizationConfiguration"": {
""IAMConfiguration"": {
""EnableApplicationScopedIAMRole"": true,
""ApplicationScopedIAMRoleConfiguration"":
{
""PropagateSourceIdentity"": true
}
},
""LakeFormationConfiguration"": {
""AuthorizedSessionTagValue"": ""Amazon EMR""
}
}
}")
});
var task = new EmrCreateCluster(this, "Create Cluster", new EmrCreateClusterProps {
Instances = new InstancesConfigProperty { },
Name = TaskInput.FromJsonPathAt("$.ClusterName").Value,
SecurityConfiguration = cfnSecurityConfiguration.Name
});
var executionRole = new Role(this, "Role", new RoleProps {
AssumedBy = new ArnPrincipal(task.ClusterRole.RoleArn)
});
executionRole.AssumeRolePolicy.AddStatements(
new PolicyStatement(new PolicyStatementProps {
Effect = Effect.ALLOW,
Principals = new [] { task.ClusterRole },
Actions = new [] { "sts:SetSourceIdentity" }
}),
new PolicyStatement(new PolicyStatementProps {
Effect = Effect.ALLOW,
Principals = new [] { task.ClusterRole },
Actions = new [] { "sts:TagSession" },
Conditions = new Dictionary<string, object> {
{ "StringEquals", new Dictionary<string, string> {
{ "aws:RequestTag/LakeFormationAuthorizedCaller", "Amazon EMR" }
} }
}
}));
new EmrAddStep(this, "Task", new EmrAddStepProps {
ClusterId = "ClusterId",
ExecutionRoleArn = executionRole.RoleArn,
Name = "StepName",
Jar = "Jar",
ActionOnFailure = ActionOnFailure.CONTINUE
});
Cancel Step
Cancels a pending step in a running cluster.
Corresponds to the cancelSteps
API in EMR.
new EmrCancelStep(this, "Task", new EmrCancelStepProps {
ClusterId = "ClusterId",
StepId = "StepId"
});
Modify Instance Fleet
Modifies the target On-Demand and target Spot capacities for the instance fleet with the specified InstanceFleetName.
Corresponds to the modifyInstanceFleet
API in EMR.
new EmrModifyInstanceFleetByName(this, "Task", new EmrModifyInstanceFleetByNameProps {
ClusterId = "ClusterId",
InstanceFleetName = "InstanceFleetName",
TargetOnDemandCapacity = 2,
TargetSpotCapacity = 0
});
Modify Instance Group
Modifies the number of nodes and configuration settings of an instance group.
Corresponds to the modifyInstanceGroups
API in EMR.
new EmrModifyInstanceGroupByName(this, "Task", new EmrModifyInstanceGroupByNameProps {
ClusterId = "ClusterId",
InstanceGroupName = JsonPath.StringAt("$.InstanceGroupName"),
InstanceGroup = new InstanceGroupModifyConfigProperty {
InstanceCount = 1
}
});
EMR on EKS
Step Functions supports Amazon EMR on EKS through the service integration pattern. The service integration APIs correspond to Amazon EMR on EKS APIs, but differ in the parameters that are used.
Read more about the differences when using these service integrations.
Setting up the EKS cluster is required.
Create Virtual Cluster
The CreateVirtualCluster API creates a single virtual cluster that's mapped to a single Kubernetes namespace.
The EKS cluster containing the Kubernetes namespace where the virtual cluster will be mapped can be passed in from the task input.
new EmrContainersCreateVirtualCluster(this, "Create a Virtual Cluster", new EmrContainersCreateVirtualClusterProps {
EksCluster = EksClusterInput.FromTaskInput(TaskInput.FromText("clusterId"))
});
The EKS cluster can also be passed in directly.
using Amazon.CDK.AWS.EKS;
Cluster eksCluster;
new EmrContainersCreateVirtualCluster(this, "Create a Virtual Cluster", new EmrContainersCreateVirtualClusterProps {
EksCluster = EksClusterInput.FromCluster(eksCluster)
});
By default, the Kubernetes namespace that a virtual cluster maps to is "default", but a specific namespace within an EKS cluster can be selected.
new EmrContainersCreateVirtualCluster(this, "Create a Virtual Cluster", new EmrContainersCreateVirtualClusterProps {
EksCluster = EksClusterInput.FromTaskInput(TaskInput.FromText("clusterId")),
EksNamespace = "specified-namespace"
});
Delete Virtual Cluster
The DeleteVirtualCluster API deletes a virtual cluster.
new EmrContainersDeleteVirtualCluster(this, "Delete a Virtual Cluster", new EmrContainersDeleteVirtualClusterProps {
VirtualClusterId = TaskInput.FromJsonPathAt("$.virtualCluster")
});
Start Job Run
The StartJobRun API starts a job run. A job is a unit of work that you submit to Amazon EMR on EKS for execution. The work performed by the job can be defined by a Spark jar, PySpark script, or SparkSQL query. A job run is an execution of the job on the virtual cluster.
Required setup:
The following actions must be performed if the virtual cluster ID is supplied from the task input. Otherwise, if it is supplied statically in the state machine definition, these actions will be done automatically.
The job can be configured with spark submit parameters:
new EmrContainersStartJobRun(this, "EMR Containers Start Job Run", new EmrContainersStartJobRunProps {
VirtualCluster = VirtualClusterInput.FromVirtualClusterId("de92jdei2910fwedz"),
ReleaseLabel = ReleaseLabel.EMR_6_2_0,
JobDriver = new JobDriver {
SparkSubmitJobDriver = new SparkSubmitJobDriver {
EntryPoint = TaskInput.FromText("local:///usr/lib/spark/examples/src/main/python/pi.py"),
SparkSubmitParameters = "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
}
}
});
Configuring the job can also be done via application configuration:
new EmrContainersStartJobRun(this, "EMR Containers Start Job Run", new EmrContainersStartJobRunProps {
VirtualCluster = VirtualClusterInput.FromVirtualClusterId("de92jdei2910fwedz"),
ReleaseLabel = ReleaseLabel.EMR_6_2_0,
JobName = "EMR-Containers-Job",
JobDriver = new JobDriver {
SparkSubmitJobDriver = new SparkSubmitJobDriver {
EntryPoint = TaskInput.FromText("local:///usr/lib/spark/examples/src/main/python/pi.py")
}
},
ApplicationConfig = new [] { new ApplicationConfiguration {
Classification = Classification.SPARK_DEFAULTS,
Properties = new Dictionary<string, string> {
{ "spark.executor.instances", "1" },
{ "spark.executor.memory", "512M" }
}
} }
});
Job monitoring can be enabled if monitoring.logging
is set true. This automatically generates an S3 bucket and CloudWatch logs.
new EmrContainersStartJobRun(this, "EMR Containers Start Job Run", new EmrContainersStartJobRunProps {
VirtualCluster = VirtualClusterInput.FromVirtualClusterId("de92jdei2910fwedz"),
ReleaseLabel = ReleaseLabel.EMR_6_2_0,
JobDriver = new JobDriver {
SparkSubmitJobDriver = new SparkSubmitJobDriver {
EntryPoint = TaskInput.FromText("local:///usr/lib/spark/examples/src/main/python/pi.py"),
SparkSubmitParameters = "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
}
},
Monitoring = new Monitoring {
Logging = true
}
});
Otherwise, providing monitoring for jobs with existing log groups and log buckets is also available.
using Amazon.CDK.AWS.Logs;
var logGroup = new LogGroup(this, "Log Group");
var logBucket = new Bucket(this, "S3 Bucket");
new EmrContainersStartJobRun(this, "EMR Containers Start Job Run", new EmrContainersStartJobRunProps {
VirtualCluster = VirtualClusterInput.FromVirtualClusterId("de92jdei2910fwedz"),
ReleaseLabel = ReleaseLabel.EMR_6_2_0,
JobDriver = new JobDriver {
SparkSubmitJobDriver = new SparkSubmitJobDriver {
EntryPoint = TaskInput.FromText("local:///usr/lib/spark/examples/src/main/python/pi.py"),
SparkSubmitParameters = "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
}
},
Monitoring = new Monitoring {
LogGroup = logGroup,
LogBucket = logBucket
}
});
Users can provide their own existing Job Execution Role.
new EmrContainersStartJobRun(this, "EMR Containers Start Job Run", new EmrContainersStartJobRunProps {
VirtualCluster = VirtualClusterInput.FromTaskInput(TaskInput.FromJsonPathAt("$.VirtualClusterId")),
ReleaseLabel = ReleaseLabel.EMR_6_2_0,
JobName = "EMR-Containers-Job",
ExecutionRole = Role.FromRoleArn(this, "Job-Execution-Role", "arn:aws:iam::xxxxxxxxxxxx:role/JobExecutionRole"),
JobDriver = new JobDriver {
SparkSubmitJobDriver = new SparkSubmitJobDriver {
EntryPoint = TaskInput.FromText("local:///usr/lib/spark/examples/src/main/python/pi.py"),
SparkSubmitParameters = "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
}
}
});
EKS
Step Functions supports Amazon EKS through the service integration pattern. The service integration APIs correspond to Amazon EKS APIs.
Read more about the differences when using these service integrations.
Call
Read and write Kubernetes resource objects via a Kubernetes API endpoint.
Corresponds to the call
API in Step Functions Connector.
The following code snippet includes a Task state that uses eks:call to list the pods.
using Amazon.CDK.AWS.EKS;
var myEksCluster = new Cluster(this, "my sample cluster", new ClusterProps {
Version = KubernetesVersion.V1_18,
ClusterName = "myEksCluster"
});
new EksCall(this, "Call a EKS Endpoint", new EksCallProps {
Cluster = myEksCluster,
HttpMethod = HttpMethods.GET,
HttpPath = "/api/v1/namespaces/default/pods"
});
EventBridge
Step Functions supports Amazon EventBridge through the service integration pattern. The service integration APIs correspond to Amazon EventBridge APIs.
Read more about the differences when using these service integrations.
Put Events
Send events to an EventBridge bus.
Corresponds to the put-events
API in Step Functions Connector.
The following code snippet includes a Task state that uses events:putevents to send an event to the default bus.
using Amazon.CDK.AWS.Events;
var myEventBus = new EventBus(this, "EventBus", new EventBusProps {
EventBusName = "MyEventBus1"
});
new EventBridgePutEvents(this, "Send an event to EventBridge", new EventBridgePutEventsProps {
Entries = new [] { new EventBridgePutEventsEntry {
Detail = TaskInput.FromObject(new Dictionary<string, object> {
{ "Message", "Hello from Step Functions!" }
}),
EventBus = myEventBus,
DetailType = "MessageFromStepFunctions",
Source = "step.functions"
} }
});
Glue
Step Functions supports AWS Glue through the service integration pattern.
StartJobRun
You can call the StartJobRun
API from a Task
state.
new GlueStartJobRun(this, "Task", new GlueStartJobRunProps {
GlueJobName = "my-glue-job",
Arguments = TaskInput.FromObject(new Dictionary<string, object> {
{ "key", "value" }
}),
TaskTimeout = Timeout.Duration(Duration.Minutes(30)),
NotifyDelayAfter = Duration.Minutes(5)
});
StartCrawlerRun
You can call the StartCrawler
API from a Task
state through AWS SDK service integrations.
using Amazon.CDK.AWS.Glue;
CfnCrawler myCrawler;
// You can get the crawler name from `crawler.ref`
// You can get the crawler name from `crawler.ref`
new GlueStartCrawlerRun(this, "Task1", new GlueStartCrawlerRunProps {
CrawlerName = myCrawler.Ref
});
// Of course, you can also specify the crawler name directly.
// Of course, you can also specify the crawler name directly.
new GlueStartCrawlerRun(this, "Task2", new GlueStartCrawlerRunProps {
CrawlerName = "my-crawler-job"
});
Glue DataBrew
Step Functions supports AWS Glue DataBrew through the service integration pattern.
Start Job Run
You can call the StartJobRun
API from a Task
state.
new GlueDataBrewStartJobRun(this, "Task", new GlueDataBrewStartJobRunProps {
Name = "databrew-job"
});
Invoke HTTP API
Step Functions supports calling third-party APIs with credentials managed by Amazon EventBridge Connections.
The following snippet creates a new API destination connection, and uses it to make a POST request to the specified URL. The endpoint response is available at the $.ResponseBody
path.
using Amazon.CDK.AWS.Events;
var connection = new Connection(this, "Connection", new ConnectionProps {
Authorization = Authorization.Basic("username", SecretValue.UnsafePlainText("password"))
});
new HttpInvoke(this, "Invoke HTTP API", new HttpInvokeProps {
ApiRoot = "https://api.example.com",
ApiEndpoint = TaskInput.FromText("https://api.example.com/path/to/resource"),
Body = TaskInput.FromObject(new Dictionary<string, object> { { "foo", "bar" } }),
Connection = connection,
Headers = TaskInput.FromObject(new Dictionary<string, object> { { "Content-Type", "application/json" } }),
Method = TaskInput.FromText("POST"),
QueryStringParameters = TaskInput.FromObject(new Dictionary<string, object> { { "id", "123" } }),
UrlEncodingFormat = URLEncodingFormat.BRACKETS
});
Lambda
Step Functions supports AWS Lambda through the service integration pattern.
Invoke
Invoke a Lambda function.
You can specify the input to your Lambda function through the payload
attribute.
By default, Step Functions invokes Lambda function with the state input (JSON path '$')
as the input.
The following snippet invokes a Lambda Function with the state input as the payload
by referencing the $
path.
Function fn;
new LambdaInvoke(this, "Invoke with state input", new LambdaInvokeProps {
LambdaFunction = fn
});
When a function is invoked, the Lambda service sends these response elements back.
⚠️ The response from the Lambda function is in an attribute called Payload
The following snippet invokes a Lambda Function by referencing the $.Payload
path
to reference the output of a Lambda executed before it.
Function fn;
new LambdaInvoke(this, "Invoke with empty object as payload", new LambdaInvokeProps {
LambdaFunction = fn,
Payload = TaskInput.FromObject(new Dictionary<string, object> { })
});
// use the output of fn as input
// use the output of fn as input
new LambdaInvoke(this, "Invoke with payload field in the state input", new LambdaInvokeProps {
LambdaFunction = fn,
Payload = TaskInput.FromJsonPathAt("$.Payload")
});
The following snippet invokes a Lambda and sets the task output to only include the Lambda function response.
Function fn;
new LambdaInvoke(this, "Invoke and set function response as task output", new LambdaInvokeProps {
LambdaFunction = fn,
OutputPath = "$.Payload"
});
If you want to combine the input and the Lambda function response you can use
the payloadResponseOnly
property and specify the resultPath
. This will put the
Lambda function ARN directly in the "Resource" string, but it conflicts with the
integrationPattern, invocationType, clientContext, and qualifier properties.
Function fn;
new LambdaInvoke(this, "Invoke and combine function response with task input", new LambdaInvokeProps {
LambdaFunction = fn,
PayloadResponseOnly = true,
ResultPath = "$.fn"
});
You can have Step Functions pause a task, and wait for an external process to return a task token. Read more about the callback pattern
To use the callback pattern, set the token
property on the task. Call the Step
Functions SendTaskSuccess
or SendTaskFailure
APIs with the token to
indicate that the task has completed and the state machine should resume execution.
The following snippet invokes a Lambda with the task token as part of the input to the Lambda.
Function fn;
new LambdaInvoke(this, "Invoke with callback", new LambdaInvokeProps {
LambdaFunction = fn,
IntegrationPattern = IntegrationPattern.WAIT_FOR_TASK_TOKEN,
Payload = TaskInput.FromObject(new Dictionary<string, object> {
{ "token", JsonPath.TaskToken },
{ "input", JsonPath.StringAt("$.someField") }
})
});
⚠️ The task will pause until it receives that task token back with a SendTaskSuccess
or SendTaskFailure
call. Learn more about Callback with the Task
Token.
AWS Lambda can occasionally experience transient service errors. In this case, invoking Lambda
results in a 500 error, such as ClientExecutionTimeoutException
, ServiceException
, AWSLambdaException
, or SdkClientException
.
As a best practice, the LambdaInvoke
task will retry on those errors with an interval of 2 seconds,
a back-off rate of 2 and 6 maximum attempts. Set the retryOnServiceExceptions
prop to false
to
disable this behavior.
SageMaker
Step Functions supports AWS SageMaker through the service integration pattern.
If your training job or model uses resources from AWS Marketplace,
network isolation is required.
To do so, set the enableNetworkIsolation
property to true
for SageMakerCreateModel
or SageMakerCreateTrainingJob
.
To set environment variables for the Docker container use the environment
property.
Create Training Job
You can call the CreateTrainingJob
API from a Task
state.
new SageMakerCreateTrainingJob(this, "TrainSagemaker", new SageMakerCreateTrainingJobProps {
TrainingJobName = JsonPath.StringAt("$.JobName"),
AlgorithmSpecification = new AlgorithmSpecification {
AlgorithmName = "BlazingText",
TrainingInputMode = InputMode.FILE
},
InputDataConfig = new [] { new Channel {
ChannelName = "train",
DataSource = new DataSource {
S3DataSource = new S3DataSource {
S3DataType = S3DataType.S3_PREFIX,
S3Location = S3Location.FromJsonExpression("$.S3Bucket")
}
}
} },
OutputDataConfig = new OutputDataConfig {
S3OutputLocation = S3Location.FromBucket(Bucket.FromBucketName(this, "Bucket", "mybucket"), "myoutputpath")
},
ResourceConfig = new ResourceConfig {
InstanceCount = 1,
InstanceType = new InstanceType(JsonPath.StringAt("$.InstanceType")),
VolumeSize = Size.Gibibytes(50)
}, // optional: default is 1 instance of EC2 `M4.XLarge` with `10GB` volume
StoppingCondition = new StoppingCondition {
MaxRuntime = Duration.Hours(2)
}
});
You can specify TrainingInputMode via the trainingInputMode property.
Create Transform Job
You can call the CreateTransformJob
API from a Task
state.
new SageMakerCreateTransformJob(this, "Batch Inference", new SageMakerCreateTransformJobProps {
TransformJobName = "MyTransformJob",
ModelName = "MyModelName",
ModelClientOptions = new ModelClientOptions {
InvocationsMaxRetries = 3, // default is 0
InvocationsTimeout = Duration.Minutes(5)
},
TransformInput = new TransformInput {
TransformDataSource = new TransformDataSource {
S3DataSource = new TransformS3DataSource {
S3Uri = "s3://inputbucket/train",
S3DataType = S3DataType.S3_PREFIX
}
}
},
TransformOutput = new TransformOutput {
S3OutputPath = "s3://outputbucket/TransformJobOutputPath"
},
TransformResources = new TransformResources {
InstanceCount = 1,
InstanceType = InstanceType.Of(InstanceClass.M4, InstanceSize.XLARGE)
}
});
Create Endpoint
You can call the CreateEndpoint
API from a Task
state.
new SageMakerCreateEndpoint(this, "SagemakerEndpoint", new SageMakerCreateEndpointProps {
EndpointName = JsonPath.StringAt("$.EndpointName"),
EndpointConfigName = JsonPath.StringAt("$.EndpointConfigName")
});
Create Endpoint Config
You can call the CreateEndpointConfig
API from a Task
state.
new SageMakerCreateEndpointConfig(this, "SagemakerEndpointConfig", new SageMakerCreateEndpointConfigProps {
EndpointConfigName = "MyEndpointConfig",
ProductionVariants = new [] { new ProductionVariant {
InitialInstanceCount = 2,
InstanceType = InstanceType.Of(InstanceClass.M5, InstanceSize.XLARGE),
ModelName = "MyModel",
VariantName = "awesome-variant"
} }
});
Create Model
You can call the CreateModel
API from a Task
state.
new SageMakerCreateModel(this, "Sagemaker", new SageMakerCreateModelProps {
ModelName = "MyModel",
PrimaryContainer = new ContainerDefinition(new ContainerDefinitionOptions {
Image = DockerImage.FromJsonExpression(JsonPath.StringAt("$.Model.imageName")),
Mode = Mode.SINGLE_MODEL,
ModelS3Location = S3Location.FromJsonExpression("$.TrainingJob.ModelArtifacts.S3ModelArtifacts")
})
});
Update Endpoint
You can call the UpdateEndpoint
API from a Task
state.
new SageMakerUpdateEndpoint(this, "SagemakerEndpoint", new SageMakerUpdateEndpointProps {
EndpointName = JsonPath.StringAt("$.Endpoint.Name"),
EndpointConfigName = JsonPath.StringAt("$.Endpoint.EndpointConfig")
});
SNS
Step Functions supports Amazon SNS through the service integration pattern.
Publish
You can call the Publish
API from a Task
state to publish to an SNS topic.
var topic = new Topic(this, "Topic");
// Use a field from the execution data as message.
var task1 = new SnsPublish(this, "Publish1", new SnsPublishProps {
Topic = topic,
IntegrationPattern = IntegrationPattern.REQUEST_RESPONSE,
Message = TaskInput.FromDataAt("$.state.message"),
MessageAttributes = new Dictionary<string, MessageAttribute> {
{ "place", new MessageAttribute {
Value = JsonPath.StringAt("$.place")
} },
{ "pic", new MessageAttribute {
// BINARY must be explicitly set
DataType = MessageAttributeDataType.BINARY,
Value = JsonPath.StringAt("$.pic")
} },
{ "people", new MessageAttribute {
Value = 4
} },
{ "handles", new MessageAttribute {
Value = new [] { "@kslater", "@jjf", null, "@mfanning" }
} }
}
});
// Combine a field from the execution data with
// a literal object.
var task2 = new SnsPublish(this, "Publish2", new SnsPublishProps {
Topic = topic,
Message = TaskInput.FromObject(new Dictionary<string, object> {
{ "field1", "somedata" },
{ "field2", JsonPath.StringAt("$.field2") }
})
});
Step Functions
Step Functions supports AWS Step Functions through the service integration pattern.
Start Execution
You can manage AWS Step Functions executions.
AWS Step Functions supports it's own StartExecution
API as a service integration.
// Define a state machine with one Pass state
var child = new StateMachine(this, "ChildStateMachine", new StateMachineProps {
Definition = Chain.Start(new Pass(this, "PassState"))
});
// Include the state machine in a Task state with callback pattern
var task = new StepFunctionsStartExecution(this, "ChildTask", new StepFunctionsStartExecutionProps {
StateMachine = child,
IntegrationPattern = IntegrationPattern.WAIT_FOR_TASK_TOKEN,
Input = TaskInput.FromObject(new Dictionary<string, object> {
{ "token", JsonPath.TaskToken },
{ "foo", "bar" }
}),
Name = "MyExecutionName"
});
// Define a second state machine with the Task state above
// Define a second state machine with the Task state above
new StateMachine(this, "ParentStateMachine", new StateMachineProps {
Definition = task
});
You can utilize Associate Workflow Executions
via the associateWithParent
property. This allows the Step Functions UI to link child
executions from parent executions, making it easier to trace execution flow across state machines.
StateMachine child;
var task = new StepFunctionsStartExecution(this, "ChildTask", new StepFunctionsStartExecutionProps {
StateMachine = child,
AssociateWithParent = true
});
This will add the payload AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$: $$.Execution.Id
to the
input
property for you, which will pass the execution ID from the context object to the
execution input. It requires input
to be an object or not be set at all.
Invoke Activity
You can invoke a Step Functions Activity which enables you to have a task in your state machine where the work is performed by a worker that can be hosted on Amazon EC2, Amazon ECS, AWS Lambda, basically anywhere. Activities are a way to associate code running somewhere (known as an activity worker) with a specific task in a state machine.
When Step Functions reaches an activity task state, the workflow waits for an activity worker to poll for a task. An activity worker polls Step Functions by using GetActivityTask, and sending the ARN for the related activity.
After the activity worker completes its work, it can provide a report of its
success or failure by using SendTaskSuccess
or SendTaskFailure
. These two
calls use the taskToken provided by GetActivityTask to associate the result
with that task.
The following example creates an activity and creates a task that invokes the activity.
var submitJobActivity = new Activity(this, "SubmitJob");
new StepFunctionsInvokeActivity(this, "Submit Job", new StepFunctionsInvokeActivityProps {
Activity = submitJobActivity
});
Use the Parameters field to create a collection of key-value pairs that are passed as input. The values of each can either be static values that you include in your state machine definition, or selected from either the input or the context object with a path.
var submitJobActivity = new Activity(this, "SubmitJob");
new StepFunctionsInvokeActivity(this, "Submit Job", new StepFunctionsInvokeActivityProps {
Activity = submitJobActivity,
Parameters = new Dictionary<string, object> {
{ "comment", "Selecting what I care about." },
{ "MyDetails", new Dictionary<string, object> {
{ "size", JsonPath.StringAt("$.product.details.size") },
{ "exists", JsonPath.StringAt("$.product.availability") },
{ "StaticValue", "foo" }
} }
}
});
SQS
Step Functions supports Amazon SQS
Send Message
You can call the SendMessage
API from a Task
state
to send a message to an SQS queue.
var queue = new Queue(this, "Queue");
// Use a field from the execution data as message.
var task1 = new SqsSendMessage(this, "Send1", new SqsSendMessageProps {
Queue = queue,
MessageBody = TaskInput.FromJsonPathAt("$.message")
});
// Combine a field from the execution data with
// a literal object.
var task2 = new SqsSendMessage(this, "Send2", new SqsSendMessageProps {
Queue = queue,
MessageBody = TaskInput.FromObject(new Dictionary<string, object> {
{ "field1", "somedata" },
{ "field2", JsonPath.StringAt("$.field2") }
})
});
Classes
AcceleratorClass | The generation of Elastic Inference (EI) instance. |
AcceleratorType | The size of the Elastic Inference (EI) instance to use for the production variant. |
ActionOnFailure | The action to take when the cluster step fails. |
AlgorithmSpecification | Specify the training algorithm and algorithm-specific metadata. |
ApplicationConfiguration | A configuration specification to be used when provisioning virtual clusters, which can include configurations for applications and software bundled with Amazon EMR on EKS. |
AssembleWith | How to assemble the results of the transform job as a single S3 object. |
AthenaGetQueryExecution | Get an Athena Query Execution as a Task. |
AthenaGetQueryExecutionProps | Properties for getting a Query Execution. |
AthenaGetQueryResults | Get an Athena Query Results as a Task. |
AthenaGetQueryResultsProps | Properties for getting a Query Results. |
AthenaStartQueryExecution | Start an Athena Query as a Task. |
AthenaStartQueryExecutionProps | Properties for starting a Query Execution. |
AthenaStopQueryExecution | Stop an Athena Query Execution as a Task. |
AthenaStopQueryExecutionProps | Properties for stoping a Query Execution. |
AuthType | The authentication method used to call the endpoint. |
BatchContainerOverrides | The overrides that should be sent to a container. |
BatchJobDependency | An object representing an AWS Batch job dependency. |
BatchStrategy | Specifies the number of records to include in a mini-batch for an HTTP inference request. |
BatchSubmitJob | Task to submits an AWS Batch job from a job definition. |
BatchSubmitJobProps | Properties for RunBatchJob. |
BedrockInvokeModel | A Step Functions Task to invoke a model in Bedrock. |
BedrockInvokeModelInputProps | Location to retrieve the input data, prior to calling Bedrock InvokeModel. |
BedrockInvokeModelOutputProps | Location where the Bedrock InvokeModel API response is written. |
BedrockInvokeModelProps | Properties for invoking a Bedrock Model. |
CallApiGatewayEndpointBaseProps | Base CallApiGatewayEdnpoint Task Props. |
CallApiGatewayHttpApiEndpoint | Call HTTP API endpoint as a Task. |
CallApiGatewayHttpApiEndpointProps | Properties for calling an HTTP API Endpoint. |
CallApiGatewayRestApiEndpoint | Call REST API endpoint as a Task. |
CallApiGatewayRestApiEndpointProps | Properties for calling an REST API Endpoint. |
CallAwsService | A StepFunctions task to call an AWS service API. |
CallAwsServiceProps | Properties for calling an AWS service's API action from your state machine. |
Channel | Describes the training, validation or test dataset and the Amazon S3 location where it is stored. |
Classification | The classification within a EMR Containers application configuration. |
CodeBuildStartBuild | Start a CodeBuild Build as a task. |
CodeBuildStartBuildBatch | Start a CodeBuild BatchBuild as a task. |
CodeBuildStartBuildBatchProps | Properties for CodeBuildStartBuildBatch. |
CodeBuildStartBuildProps | Properties for CodeBuildStartBuild. |
CommonEcsRunTaskProps | Basic properties for ECS Tasks. |
CompressionType | Compression type of the data. |
ContainerDefinition | Describes the container, as part of model definition. |
ContainerDefinitionConfig | Configuration options for the ContainerDefinition. |
ContainerDefinitionOptions | Properties to define a ContainerDefinition. |
ContainerOverride | A list of container overrides that specify the name of a container and the overrides it should receive. |
ContainerOverrides | The overrides that should be sent to a container. |
DataSource | Location of the channel data. |
DockerImage | Creates |
DockerImageConfig | Configuration for a using Docker image. |
DynamoAttributeValue | Represents the data for an attribute. |
DynamoConsumedCapacity | Determines the level of detail about provisioned throughput consumption that is returned. |
DynamoDeleteItem | A StepFunctions task to call DynamoDeleteItem. |
DynamoDeleteItemProps | Properties for DynamoDeleteItem Task. |
DynamoGetItem | A StepFunctions task to call DynamoGetItem. |
DynamoGetItemProps | Properties for DynamoGetItem Task. |
DynamoItemCollectionMetrics | Determines whether item collection metrics are returned. |
DynamoProjectionExpression | Class to generate projection expression. |
DynamoPutItem | A StepFunctions task to call DynamoPutItem. |
DynamoPutItemProps | Properties for DynamoPutItem Task. |
DynamoReturnValues | Use ReturnValues if you want to get the item attributes as they appear before or after they are changed. |
DynamoUpdateItem | A StepFunctions task to call DynamoUpdateItem. |
DynamoUpdateItemProps | Properties for DynamoUpdateItem Task. |
EcsEc2LaunchTarget | Configuration for running an ECS task on EC2. |
EcsEc2LaunchTargetOptions | Options to run an ECS task on EC2 in StepFunctions and ECS. |
EcsFargateLaunchTarget | Configuration for running an ECS task on Fargate. |
EcsFargateLaunchTargetOptions | Properties to define an ECS service. |
EcsLaunchTargetConfig | Configuration options for the ECS launch type. |
EcsRunTask | Run a Task on ECS or Fargate. |
EcsRunTaskProps | Properties for ECS Tasks. |
EksCall | Call a EKS endpoint as a Task. |
EksCallProps | Properties for calling a EKS endpoint with EksCall. |
EksClusterInput | Class that supports methods which return the EKS cluster name depending on input type. |
EmrAddStep | A Step Functions Task to add a Step to an EMR Cluster. |
EmrAddStepProps | Properties for EmrAddStep. |
EmrCancelStep | A Step Functions Task to to cancel a Step on an EMR Cluster. |
EmrCancelStepProps | Properties for EmrCancelStep. |
EmrContainersCreateVirtualCluster | Task that creates an EMR Containers virtual cluster from an EKS cluster. |
EmrContainersCreateVirtualClusterProps | Properties to define a EMR Containers CreateVirtualCluster Task on an EKS cluster. |
EmrContainersDeleteVirtualCluster | Deletes an EMR Containers virtual cluster as a Task. |
EmrContainersDeleteVirtualClusterProps | Properties to define a EMR Containers DeleteVirtualCluster Task. |
EmrContainersStartJobRun | Starts a job run. |
EmrContainersStartJobRunProps | The props for a EMR Containers StartJobRun Task. |
EmrCreateCluster | A Step Functions Task to create an EMR Cluster. |
EmrCreateCluster.ApplicationConfigProperty | Properties for the EMR Cluster Applications. |
EmrCreateCluster.AutoScalingPolicyProperty | An automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster. |
EmrCreateCluster.BootstrapActionConfigProperty | Configuration of a bootstrap action. |
EmrCreateCluster.CloudWatchAlarmComparisonOperator | CloudWatch Alarm Comparison Operators. |
EmrCreateCluster.CloudWatchAlarmDefinitionProperty | The definition of a CloudWatch metric alarm, which determines when an automatic scaling activity is triggered. |
EmrCreateCluster.CloudWatchAlarmStatistic | CloudWatch Alarm Statistics. |
EmrCreateCluster.CloudWatchAlarmUnit | CloudWatch Alarm Units. |
EmrCreateCluster.ConfigurationProperty | An optional configuration specification to be used when provisioning cluster instances, which can include configurations for applications and software bundled with Amazon EMR. |
EmrCreateCluster.EbsBlockDeviceConfigProperty | Configuration of requested EBS block device associated with the instance group with count of volumes that will be associated to every instance. |
EmrCreateCluster.EbsBlockDeviceVolumeType | EBS Volume Types. |
EmrCreateCluster.EbsConfigurationProperty | The Amazon EBS configuration of a cluster instance. |
EmrCreateCluster.EmrClusterScaleDownBehavior | The Cluster ScaleDownBehavior specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. |
EmrCreateCluster.InstanceFleetConfigProperty | The configuration that defines an instance fleet. |
EmrCreateCluster.InstanceFleetProvisioningSpecificationsProperty | The launch specification for On-Demand and Spot instances in the fleet, which determines the defined duration and provisioning timeout behavior, and allocation strategy. |
EmrCreateCluster.InstanceGroupConfigProperty | Configuration defining a new instance group. |
EmrCreateCluster.InstanceMarket | EC2 Instance Market. |
EmrCreateCluster.InstanceRoleType | Instance Role Types. |
EmrCreateCluster.InstancesConfigProperty | A specification of the number and type of Amazon EC2 instances. |
EmrCreateCluster.InstanceTypeConfigProperty | An instance type configuration for each instance type in an instance fleet, which determines the EC2 instances Amazon EMR attempts to provision to fulfill On-Demand and Spot target capacities. |
EmrCreateCluster.KerberosAttributesProperty | Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. |
EmrCreateCluster.MetricDimensionProperty | A CloudWatch dimension, which is specified using a Key (known as a Name in CloudWatch), Value pair. |
EmrCreateCluster.OnDemandAllocationStrategy | On-Demand Allocation Strategies. |
EmrCreateCluster.OnDemandProvisioningSpecificationProperty | The launch specification for On-Demand Instances in the instance fleet, which determines the allocation strategy. |
EmrCreateCluster.PlacementTypeProperty | The Amazon EC2 Availability Zone configuration of the cluster (job flow). |
EmrCreateCluster.ScalingActionProperty | The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment. |
EmrCreateCluster.ScalingAdjustmentType | AutoScaling Adjustment Type. |
EmrCreateCluster.ScalingConstraintsProperty | The upper and lower EC2 instance limits for an automatic scaling policy. |
EmrCreateCluster.ScalingRuleProperty | A scale-in or scale-out rule that defines scaling activity, including the CloudWatch metric alarm that triggers activity, how EC2 instances are added or removed, and the periodicity of adjustments. |
EmrCreateCluster.ScalingTriggerProperty | The conditions that trigger an automatic scaling activity and the definition of a CloudWatch metric alarm. |
EmrCreateCluster.ScriptBootstrapActionConfigProperty | Configuration of the script to run during a bootstrap action. |
EmrCreateCluster.SimpleScalingPolicyConfigurationProperty | An automatic scaling configuration, which describes how the policy adds or removes instances, the cooldown period, and the number of EC2 instances that will be added each time the CloudWatch metric alarm condition is satisfied. |
EmrCreateCluster.SpotAllocationStrategy | Spot Allocation Strategies. |
EmrCreateCluster.SpotProvisioningSpecificationProperty | The launch specification for Spot instances in the instance fleet, which determines the defined duration and provisioning timeout behavior. |
EmrCreateCluster.SpotTimeoutAction | Spot Timeout Actions. |
EmrCreateCluster.VolumeSpecificationProperty | EBS volume specifications such as volume type, IOPS, and size (GiB) that will be requested for the EBS volume attached to an EC2 instance in the cluster. |
EmrCreateClusterProps | Properties for EmrCreateCluster. |
EmrModifyInstanceFleetByName | A Step Functions Task to to modify an InstanceFleet on an EMR Cluster. |
EmrModifyInstanceFleetByNameProps | Properties for EmrModifyInstanceFleetByName. |
EmrModifyInstanceGroupByName | A Step Functions Task to to modify an InstanceGroup on an EMR Cluster. |
EmrModifyInstanceGroupByName.InstanceGroupModifyConfigProperty | Modify the size or configurations of an instance group. |
EmrModifyInstanceGroupByName.InstanceResizePolicyProperty | Custom policy for requesting termination protection or termination of specific instances when shrinking an instance group. |
EmrModifyInstanceGroupByName.ShrinkPolicyProperty | Policy for customizing shrink operations. |
EmrModifyInstanceGroupByNameProps | Properties for EmrModifyInstanceGroupByName. |
EmrSetClusterTerminationProtection | A Step Functions Task to to set Termination Protection on an EMR Cluster. |
EmrSetClusterTerminationProtectionProps | Properties for EmrSetClusterTerminationProtection. |
EmrTerminateCluster | A Step Functions Task to terminate an EMR Cluster. |
EmrTerminateClusterProps | Properties for EmrTerminateCluster. |
EncryptionConfiguration | Encryption Configuration of the S3 bucket. |
EncryptionOption | Encryption Options of the S3 bucket. |
EvaluateExpression | A Step Functions Task to evaluate an expression. |
EvaluateExpressionProps | Properties for EvaluateExpression. |
EventBridgePutEvents | A StepFunctions Task to send events to an EventBridge event bus. |
EventBridgePutEventsEntry | An entry to be sent to EventBridge. |
EventBridgePutEventsProps | Properties for sending events with PutEvents. |
GlueDataBrewStartJobRun | Start a Job run as a Task. |
GlueDataBrewStartJobRunProps | Properties for starting a job run with StartJobRun. |
GlueStartCrawlerRun | Starts an AWS Glue Crawler in a Task state. |
GlueStartCrawlerRunProps | Properties for starting an AWS Glue Crawler as a task. |
GlueStartJobRun | Starts an AWS Glue job in a Task state. |
GlueStartJobRunProps | Properties for starting an AWS Glue job as a task. |
HttpInvoke | A Step Functions Task to call a public third-party API. |
HttpInvokeProps | Properties for calling an external HTTP endpoint with HttpInvoke. |
HttpMethod | Http Methods that API Gateway supports. |
HttpMethods | Method type of a EKS call. |
InputMode | Input mode that the algorithm supports. |
JobDependency | An object representing an AWS Batch job dependency. |
JobDriver | Specify the driver that the EMR Containers job runs on. |
LambdaInvocationType | Invocation type of a Lambda. |
LambdaInvoke | Invoke a Lambda function as a Task. |
LambdaInvokeProps | Properties for invoking a Lambda function with LambdaInvoke. |
LaunchTargetBindOptions | Options for binding a launch target to an ECS run job task. |
MessageAttribute | A message attribute to add to the SNS message. |
MessageAttributeDataType | The data type set for the SNS message attributes. |
MetricDefinition | Specifies the metric name and regular expressions used to parse algorithm logs. |
Mode | Specifies how many models the container hosts. |
ModelClientOptions | Configures the timeout and maximum number of retries for processing a transform job invocation. |
Monitoring | Configuration setting for monitoring. |
OutputDataConfig | Configures the S3 bucket where SageMaker will save the result of model training. |
ProductionVariant | Identifies a model that you want to host and the resources to deploy for hosting it. |
QueryExecutionContext | Database and data catalog context in which the query execution occurs. |
RecordWrapperType | Define the format of the input data. |
ReleaseLabel | The Amazon EMR release version to use for the job run. |
ResourceConfig | Specifies the resources, ML compute instances, and ML storage volumes to deploy for model training. |
ResultConfiguration | Location of query result along with S3 bucket configuration. |
S3DataDistributionType | S3 Data Distribution Type. |
S3DataSource | S3 location of the channel data. |
S3DataType | S3 Data Type. |
S3Location | Constructs |
S3LocationBindOptions | Options for binding an S3 Location. |
S3LocationConfig | Stores information about the location of an object in Amazon S3. |
SageMakerCreateEndpoint | A Step Functions Task to create a SageMaker endpoint. |
SageMakerCreateEndpointConfig | A Step Functions Task to create a SageMaker endpoint configuration. |
SageMakerCreateEndpointConfigProps | Properties for creating an Amazon SageMaker endpoint configuration. |
SageMakerCreateEndpointProps | Properties for creating an Amazon SageMaker endpoint. |
SageMakerCreateModel | A Step Functions Task to create a SageMaker model. |
SageMakerCreateModelProps | Properties for creating an Amazon SageMaker model. |
SageMakerCreateTrainingJob | Class representing the SageMaker Create Training Job task. |
SageMakerCreateTrainingJobProps | Properties for creating an Amazon SageMaker training job. |
SageMakerCreateTransformJob | Class representing the SageMaker Create Transform Job task. |
SageMakerCreateTransformJobProps | Properties for creating an Amazon SageMaker transform job task. |
SageMakerUpdateEndpoint | A Step Functions Task to update a SageMaker endpoint. |
SageMakerUpdateEndpointProps | Properties for updating Amazon SageMaker endpoint. |
ShuffleConfig | Configuration for a shuffle option for input data in a channel. |
SnsPublish | A Step Functions Task to publish messages to SNS topic. |
SnsPublishProps | Properties for publishing a message to an SNS topic. |
SparkSubmitJobDriver | The information about job driver for Spark submit. |
SplitType | Method to use to split the transform job's data files into smaller batches. |
SqsSendMessage | A StepFunctions Task to send messages to SQS queue. |
SqsSendMessageProps | Properties for sending a message to an SQS queue. |
StepFunctionsInvokeActivity | A Step Functions Task to invoke an Activity worker. |
StepFunctionsInvokeActivityProps | Properties for invoking an Activity worker. |
StepFunctionsStartExecution | A Step Functions Task to call StartExecution on another state machine. |
StepFunctionsStartExecutionProps | Properties for StartExecution. |
StoppingCondition | Specifies a limit to how long a model training job can run. |
TaskEnvironmentVariable | An environment variable to be set in the container run as a task. |
TransformDataSource | S3 location of the input data that the model can consume. |
TransformInput | Dataset to be transformed and the Amazon S3 location where it is stored. |
TransformOutput | S3 location where you want Amazon SageMaker to save the results from the transform job. |
TransformResources | ML compute instances for the transform job. |
TransformS3DataSource | Location of the channel data. |
URLEncodingFormat | The style used when applying URL encoding to array values. |
VirtualClusterInput | Class that returns a virtual cluster's id depending on input type. |
VpcConfig | Specifies the VPC that you want your Amazon SageMaker training job to connect to. |
Interfaces
EmrCreateCluster.IApplicationConfigProperty | Properties for the EMR Cluster Applications. |
EmrCreateCluster.IAutoScalingPolicyProperty | An automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster. |
EmrCreateCluster.IBootstrapActionConfigProperty | Configuration of a bootstrap action. |
EmrCreateCluster.ICloudWatchAlarmDefinitionProperty | The definition of a CloudWatch metric alarm, which determines when an automatic scaling activity is triggered. |
EmrCreateCluster.IConfigurationProperty | An optional configuration specification to be used when provisioning cluster instances, which can include configurations for applications and software bundled with Amazon EMR. |
EmrCreateCluster.IEbsBlockDeviceConfigProperty | Configuration of requested EBS block device associated with the instance group with count of volumes that will be associated to every instance. |
EmrCreateCluster.IEbsConfigurationProperty | The Amazon EBS configuration of a cluster instance. |
EmrCreateCluster.IInstanceFleetConfigProperty | The configuration that defines an instance fleet. |
EmrCreateCluster.IInstanceFleetProvisioningSpecificationsProperty | The launch specification for On-Demand and Spot instances in the fleet, which determines the defined duration and provisioning timeout behavior, and allocation strategy. |
EmrCreateCluster.IInstanceGroupConfigProperty | Configuration defining a new instance group. |
EmrCreateCluster.IInstancesConfigProperty | A specification of the number and type of Amazon EC2 instances. |
EmrCreateCluster.IInstanceTypeConfigProperty | An instance type configuration for each instance type in an instance fleet, which determines the EC2 instances Amazon EMR attempts to provision to fulfill On-Demand and Spot target capacities. |
EmrCreateCluster.IKerberosAttributesProperty | Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. |
EmrCreateCluster.IMetricDimensionProperty | A CloudWatch dimension, which is specified using a Key (known as a Name in CloudWatch), Value pair. |
EmrCreateCluster.IOnDemandProvisioningSpecificationProperty | The launch specification for On-Demand Instances in the instance fleet, which determines the allocation strategy. |
EmrCreateCluster.IPlacementTypeProperty | The Amazon EC2 Availability Zone configuration of the cluster (job flow). |
EmrCreateCluster.IScalingActionProperty | The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment. |
EmrCreateCluster.IScalingConstraintsProperty | The upper and lower EC2 instance limits for an automatic scaling policy. |
EmrCreateCluster.IScalingRuleProperty | A scale-in or scale-out rule that defines scaling activity, including the CloudWatch metric alarm that triggers activity, how EC2 instances are added or removed, and the periodicity of adjustments. |
EmrCreateCluster.IScalingTriggerProperty | The conditions that trigger an automatic scaling activity and the definition of a CloudWatch metric alarm. |
EmrCreateCluster.IScriptBootstrapActionConfigProperty | Configuration of the script to run during a bootstrap action. |
EmrCreateCluster.ISimpleScalingPolicyConfigurationProperty | An automatic scaling configuration, which describes how the policy adds or removes instances, the cooldown period, and the number of EC2 instances that will be added each time the CloudWatch metric alarm condition is satisfied. |
EmrCreateCluster.ISpotProvisioningSpecificationProperty | The launch specification for Spot instances in the instance fleet, which determines the defined duration and provisioning timeout behavior. |
EmrCreateCluster.IVolumeSpecificationProperty | EBS volume specifications such as volume type, IOPS, and size (GiB) that will be requested for the EBS volume attached to an EC2 instance in the cluster. |
EmrModifyInstanceGroupByName.IInstanceGroupModifyConfigProperty | Modify the size or configurations of an instance group. |
EmrModifyInstanceGroupByName.IInstanceResizePolicyProperty | Custom policy for requesting termination protection or termination of specific instances when shrinking an instance group. |
EmrModifyInstanceGroupByName.IShrinkPolicyProperty | Policy for customizing shrink operations. |
IAlgorithmSpecification | Specify the training algorithm and algorithm-specific metadata. |
IApplicationConfiguration | A configuration specification to be used when provisioning virtual clusters, which can include configurations for applications and software bundled with Amazon EMR on EKS. |
IAthenaGetQueryExecutionProps | Properties for getting a Query Execution. |
IAthenaGetQueryResultsProps | Properties for getting a Query Results. |
IAthenaStartQueryExecutionProps | Properties for starting a Query Execution. |
IAthenaStopQueryExecutionProps | Properties for stoping a Query Execution. |
IBatchContainerOverrides | The overrides that should be sent to a container. |
IBatchJobDependency | An object representing an AWS Batch job dependency. |
IBatchSubmitJobProps | Properties for RunBatchJob. |
IBedrockInvokeModelInputProps | Location to retrieve the input data, prior to calling Bedrock InvokeModel. |
IBedrockInvokeModelOutputProps | Location where the Bedrock InvokeModel API response is written. |
IBedrockInvokeModelProps | Properties for invoking a Bedrock Model. |
ICallApiGatewayEndpointBaseProps | Base CallApiGatewayEdnpoint Task Props. |
ICallApiGatewayHttpApiEndpointProps | Properties for calling an HTTP API Endpoint. |
ICallApiGatewayRestApiEndpointProps | Properties for calling an REST API Endpoint. |
ICallAwsServiceProps | Properties for calling an AWS service's API action from your state machine. |
IChannel | Describes the training, validation or test dataset and the Amazon S3 location where it is stored. |
ICodeBuildStartBuildBatchProps | Properties for CodeBuildStartBuildBatch. |
ICodeBuildStartBuildProps | Properties for CodeBuildStartBuild. |
ICommonEcsRunTaskProps | Basic properties for ECS Tasks. |
IContainerDefinition | Configuration of the container used to host the model. |
IContainerDefinitionConfig | Configuration options for the ContainerDefinition. |
IContainerDefinitionOptions | Properties to define a ContainerDefinition. |
IContainerOverride | A list of container overrides that specify the name of a container and the overrides it should receive. |
IContainerOverrides | The overrides that should be sent to a container. |
IDataSource | Location of the channel data. |
IDockerImageConfig | Configuration for a using Docker image. |
IDynamoDeleteItemProps | Properties for DynamoDeleteItem Task. |
IDynamoGetItemProps | Properties for DynamoGetItem Task. |
IDynamoPutItemProps | Properties for DynamoPutItem Task. |
IDynamoUpdateItemProps | Properties for DynamoUpdateItem Task. |
IEcsEc2LaunchTargetOptions | Options to run an ECS task on EC2 in StepFunctions and ECS. |
IEcsFargateLaunchTargetOptions | Properties to define an ECS service. |
IEcsLaunchTarget | An Amazon ECS launch type determines the type of infrastructure on which your tasks and services are hosted. |
IEcsLaunchTargetConfig | Configuration options for the ECS launch type. |
IEcsRunTaskProps | Properties for ECS Tasks. |
IEksCallProps | Properties for calling a EKS endpoint with EksCall. |
IEmrAddStepProps | Properties for EmrAddStep. |
IEmrCancelStepProps | Properties for EmrCancelStep. |
IEmrContainersCreateVirtualClusterProps | Properties to define a EMR Containers CreateVirtualCluster Task on an EKS cluster. |
IEmrContainersDeleteVirtualClusterProps | Properties to define a EMR Containers DeleteVirtualCluster Task. |
IEmrContainersStartJobRunProps | The props for a EMR Containers StartJobRun Task. |
IEmrCreateClusterProps | Properties for EmrCreateCluster. |
IEmrModifyInstanceFleetByNameProps | Properties for EmrModifyInstanceFleetByName. |
IEmrModifyInstanceGroupByNameProps | Properties for EmrModifyInstanceGroupByName. |
IEmrSetClusterTerminationProtectionProps | Properties for EmrSetClusterTerminationProtection. |
IEmrTerminateClusterProps | Properties for EmrTerminateCluster. |
IEncryptionConfiguration | Encryption Configuration of the S3 bucket. |
IEvaluateExpressionProps | Properties for EvaluateExpression. |
IEventBridgePutEventsEntry | An entry to be sent to EventBridge. |
IEventBridgePutEventsProps | Properties for sending events with PutEvents. |
IGlueDataBrewStartJobRunProps | Properties for starting a job run with StartJobRun. |
IGlueStartCrawlerRunProps | Properties for starting an AWS Glue Crawler as a task. |
IGlueStartJobRunProps | Properties for starting an AWS Glue job as a task. |
IHttpInvokeProps | Properties for calling an external HTTP endpoint with HttpInvoke. |
IJobDependency | An object representing an AWS Batch job dependency. |
IJobDriver | Specify the driver that the EMR Containers job runs on. |
ILambdaInvokeProps | Properties for invoking a Lambda function with LambdaInvoke. |
ILaunchTargetBindOptions | Options for binding a launch target to an ECS run job task. |
IMessageAttribute | A message attribute to add to the SNS message. |
IMetricDefinition | Specifies the metric name and regular expressions used to parse algorithm logs. |
IModelClientOptions | Configures the timeout and maximum number of retries for processing a transform job invocation. |
IMonitoring | Configuration setting for monitoring. |
IOutputDataConfig | Configures the S3 bucket where SageMaker will save the result of model training. |
IProductionVariant | Identifies a model that you want to host and the resources to deploy for hosting it. |
IQueryExecutionContext | Database and data catalog context in which the query execution occurs. |
IResourceConfig | Specifies the resources, ML compute instances, and ML storage volumes to deploy for model training. |
IResultConfiguration | Location of query result along with S3 bucket configuration. |
IS3DataSource | S3 location of the channel data. |
IS3LocationBindOptions | Options for binding an S3 Location. |
IS3LocationConfig | Stores information about the location of an object in Amazon S3. |
ISageMakerCreateEndpointConfigProps | Properties for creating an Amazon SageMaker endpoint configuration. |
ISageMakerCreateEndpointProps | Properties for creating an Amazon SageMaker endpoint. |
ISageMakerCreateModelProps | Properties for creating an Amazon SageMaker model. |
ISageMakerCreateTrainingJobProps | Properties for creating an Amazon SageMaker training job. |
ISageMakerCreateTransformJobProps | Properties for creating an Amazon SageMaker transform job task. |
ISageMakerTask | Task to train a machine learning model using Amazon SageMaker. |
ISageMakerUpdateEndpointProps | Properties for updating Amazon SageMaker endpoint. |
IShuffleConfig | Configuration for a shuffle option for input data in a channel. |
ISnsPublishProps | Properties for publishing a message to an SNS topic. |
ISparkSubmitJobDriver | The information about job driver for Spark submit. |
ISqsSendMessageProps | Properties for sending a message to an SQS queue. |
IStepFunctionsInvokeActivityProps | Properties for invoking an Activity worker. |
IStepFunctionsStartExecutionProps | Properties for StartExecution. |
IStoppingCondition | Specifies a limit to how long a model training job can run. |
ITaskEnvironmentVariable | An environment variable to be set in the container run as a task. |
ITransformDataSource | S3 location of the input data that the model can consume. |
ITransformInput | Dataset to be transformed and the Amazon S3 location where it is stored. |
ITransformOutput | S3 location where you want Amazon SageMaker to save the results from the transform job. |
ITransformResources | ML compute instances for the transform job. |
ITransformS3DataSource | Location of the channel data. |
IVpcConfig | Specifies the VPC that you want your Amazon SageMaker training job to connect to. |