interface EmrCreateClusterJsonataProps
Language | Type name |
---|---|
![]() | Amazon.CDK.AWS.StepFunctions.Tasks.EmrCreateClusterJsonataProps |
![]() | github.com/aws/aws-cdk-go/awscdk/v2/awsstepfunctionstasks#EmrCreateClusterJsonataProps |
![]() | software.amazon.awscdk.services.stepfunctions.tasks.EmrCreateClusterJsonataProps |
![]() | aws_cdk.aws_stepfunctions_tasks.EmrCreateClusterJsonataProps |
![]() | aws-cdk-lib » aws_stepfunctions_tasks » EmrCreateClusterJsonataProps |
Properties for calling an AWS service's API action using JSONata from your state machine across regions.
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_iam as iam } 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 configurationProperty_: stepfunctions_tasks.EmrCreateCluster.ConfigurationProperty;
declare const outputs: any;
declare const role: iam.Role;
declare const size: cdk.Size;
declare const taskRole: stepfunctions.TaskRole;
declare const timeout: stepfunctions.Timeout;
const emrCreateClusterJsonataProps: stepfunctions_tasks.EmrCreateClusterJsonataProps = {
instances: {
additionalMasterSecurityGroups: ['additionalMasterSecurityGroups'],
additionalSlaveSecurityGroups: ['additionalSlaveSecurityGroups'],
ec2KeyName: 'ec2KeyName',
ec2SubnetId: 'ec2SubnetId',
ec2SubnetIds: ['ec2SubnetIds'],
emrManagedMasterSecurityGroup: 'emrManagedMasterSecurityGroup',
emrManagedSlaveSecurityGroup: 'emrManagedSlaveSecurityGroup',
hadoopVersion: 'hadoopVersion',
instanceCount: 123,
instanceFleets: [{
instanceFleetType: stepfunctions_tasks.EmrCreateCluster.InstanceRoleType.MASTER,
// the properties below are optional
instanceTypeConfigs: [{
instanceType: 'instanceType',
// the properties below are optional
bidPrice: 'bidPrice',
bidPriceAsPercentageOfOnDemandPrice: 123,
configurations: [{
classification: 'classification',
configurations: [configurationProperty_],
properties: {
propertiesKey: 'properties',
},
}],
ebsConfiguration: {
ebsBlockDeviceConfigs: [{
volumeSpecification: {
volumeSize: size,
volumeType: stepfunctions_tasks.EmrCreateCluster.EbsBlockDeviceVolumeType.GP3,
// the properties below are optional
iops: 123,
},
// the properties below are optional
volumesPerInstance: 123,
}],
ebsOptimized: false,
},
weightedCapacity: 123,
}],
launchSpecifications: {
onDemandSpecification: {
allocationStrategy: stepfunctions_tasks.EmrCreateCluster.OnDemandAllocationStrategy.LOWEST_PRICE,
},
spotSpecification: {
timeoutAction: stepfunctions_tasks.EmrCreateCluster.SpotTimeoutAction.SWITCH_TO_ON_DEMAND,
// the properties below are optional
allocationStrategy: stepfunctions_tasks.EmrCreateCluster.SpotAllocationStrategy.CAPACITY_OPTIMIZED,
blockDurationMinutes: 123,
timeout: cdk.Duration.minutes(30),
timeoutDurationMinutes: 123,
},
},
name: 'name',
targetOnDemandCapacity: 123,
targetSpotCapacity: 123,
}],
instanceGroups: [{
instanceCount: 123,
instanceRole: stepfunctions_tasks.EmrCreateCluster.InstanceRoleType.MASTER,
instanceType: 'instanceType',
// the properties below are optional
autoScalingPolicy: {
constraints: {
maxCapacity: 123,
minCapacity: 123,
},
rules: [{
action: {
simpleScalingPolicyConfiguration: {
scalingAdjustment: 123,
// the properties below are optional
adjustmentType: stepfunctions_tasks.EmrCreateCluster.ScalingAdjustmentType.CHANGE_IN_CAPACITY,
coolDown: 123,
},
// the properties below are optional
market: stepfunctions_tasks.EmrCreateCluster.InstanceMarket.ON_DEMAND,
},
name: 'name',
trigger: {
cloudWatchAlarmDefinition: {
comparisonOperator: stepfunctions_tasks.EmrCreateCluster.CloudWatchAlarmComparisonOperator.GREATER_THAN_OR_EQUAL,
metricName: 'metricName',
period: cdk.Duration.minutes(30),
// the properties below are optional
dimensions: [{
key: 'key',
value: 'value',
}],
evaluationPeriods: 123,
namespace: 'namespace',
statistic: stepfunctions_tasks.EmrCreateCluster.CloudWatchAlarmStatistic.SAMPLE_COUNT,
threshold: 123,
unit: stepfunctions_tasks.EmrCreateCluster.CloudWatchAlarmUnit.NONE,
},
},
// the properties below are optional
description: 'description',
}],
},
bidPrice: 'bidPrice',
configurations: [{
classification: 'classification',
configurations: [configurationProperty_],
properties: {
propertiesKey: 'properties',
},
}],
ebsConfiguration: {
ebsBlockDeviceConfigs: [{
volumeSpecification: {
volumeSize: size,
volumeType: stepfunctions_tasks.EmrCreateCluster.EbsBlockDeviceVolumeType.GP3,
// the properties below are optional
iops: 123,
},
// the properties below are optional
volumesPerInstance: 123,
}],
ebsOptimized: false,
},
market: stepfunctions_tasks.EmrCreateCluster.InstanceMarket.ON_DEMAND,
name: 'name',
}],
masterInstanceType: 'masterInstanceType',
placement: {
availabilityZone: 'availabilityZone',
availabilityZones: ['availabilityZones'],
},
serviceAccessSecurityGroup: 'serviceAccessSecurityGroup',
slaveInstanceType: 'slaveInstanceType',
terminationProtected: false,
},
name: 'name',
// the properties below are optional
additionalInfo: 'additionalInfo',
applications: [{
name: 'name',
// the properties below are optional
additionalInfo: {
additionalInfoKey: 'additionalInfo',
},
args: ['args'],
version: 'version',
}],
assign: {
assignKey: assign,
},
autoScalingRole: role,
autoTerminationPolicyIdleTimeout: cdk.Duration.minutes(30),
bootstrapActions: [{
name: 'name',
scriptBootstrapAction: {
path: 'path',
// the properties below are optional
args: ['args'],
},
}],
clusterRole: role,
comment: 'comment',
configurations: [{
classification: 'classification',
configurations: [configurationProperty_],
properties: {
propertiesKey: 'properties',
},
}],
credentials: {
role: taskRole,
},
customAmiId: 'customAmiId',
ebsRootVolumeSize: size,
heartbeat: cdk.Duration.minutes(30),
heartbeatTimeout: timeout,
integrationPattern: stepfunctions.IntegrationPattern.REQUEST_RESPONSE,
kerberosAttributes: {
realm: 'realm',
// the properties below are optional
adDomainJoinPassword: 'adDomainJoinPassword',
adDomainJoinUser: 'adDomainJoinUser',
crossRealmTrustPrincipalPassword: 'crossRealmTrustPrincipalPassword',
kdcAdminPassword: 'kdcAdminPassword',
},
logUri: 'logUri',
outputs: outputs,
queryLanguage: stepfunctions.QueryLanguage.JSON_PATH,
releaseLabel: 'releaseLabel',
scaleDownBehavior: stepfunctions_tasks.EmrCreateCluster.EmrClusterScaleDownBehavior.TERMINATE_AT_INSTANCE_HOUR,
securityConfiguration: 'securityConfiguration',
serviceRole: role,
stateName: 'stateName',
stepConcurrencyLevel: 123,
tags: {
tagsKey: 'tags',
},
taskTimeout: timeout,
timeout: cdk.Duration.minutes(30),
visibleToAllUsers: false,
};
Properties
Name | Type | Description |
---|---|---|
instances | Instances | A specification of the number and type of Amazon EC2 instances. |
name | string | The Name of the Cluster. |
additional | string | A JSON string for selecting additional features. |
applications? | Application [] | A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. |
assign? | { [string]: any } | Workflow variables to store in this step. |
auto | IRole | An IAM role for automatic scaling policies. |
auto | Duration | The amount of idle time after which the cluster automatically terminates. |
bootstrap | Bootstrap [] | A list of bootstrap actions to run before Hadoop starts on the cluster nodes. |
cluster | IRole | Also called instance profile and EC2 role. |
comment? | string | A comment describing this state. |
configurations? | Configuration [] | The list of configurations supplied for the EMR cluster you are creating. |
credentials? | Credentials | Credentials for an IAM Role that the State Machine assumes for executing the task. |
custom | string | The ID of a custom Amazon EBS-backed Linux AMI. |
ebs | Size | The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance. |
heartbeat? | Duration | Timeout for the heartbeat. |
heartbeat | Timeout | Timeout for the heartbeat. |
integration | Integration | AWS Step Functions integrates with services directly in the Amazon States Language. |
kerberos | Kerberos | Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. |
log | string | The location in Amazon S3 to write the log files of the job flow. |
outputs? | any | Used to specify and transform output from the state. |
query | Query | The name of the query language used by the state. |
release | string | The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. |
scale | Emr | Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. |
security | string | The name of a security configuration to apply to the cluster. |
service | IRole | The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf. |
state | string | Optional name for this state. |
step | number | Specifies the step concurrency level to allow multiple steps to run in parallel. |
tags? | { [string]: string } | A list of tags to associate with a cluster and propagate to Amazon EC2 instances. |
task | Timeout | Timeout for the task. |
timeout? | Duration | Timeout for the task. |
visible | boolean | A value of true indicates that all IAM users in the AWS account can perform cluster actions if they have the proper IAM policy permissions. |
instances
Type:
Instances
A specification of the number and type of Amazon EC2 instances.
name
Type:
string
The Name of the Cluster.
additionalInfo?
Type:
string
(optional, default: None)
A JSON string for selecting additional features.
applications?
Type:
Application
[]
(optional, default: EMR selected default)
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster.
assign?
Type:
{ [string]: any }
(optional, default: Not assign variables)
Workflow variables to store in this step.
Using workflow variables, you can store data in a step and retrieve that data in future steps.
See also: https://docs.aws.amazon.com/step-functions/latest/dg/workflow-variables.html
autoScalingRole?
Type:
IRole
(optional, default: A role will be created.)
An IAM role for automatic scaling policies.
autoTerminationPolicyIdleTimeout?
Type:
Duration
(optional, default: No timeout)
The amount of idle time after which the cluster automatically terminates.
You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).
bootstrapActions?
Type:
Bootstrap
[]
(optional, default: None)
A list of bootstrap actions to run before Hadoop starts on the cluster nodes.
clusterRole?
Type:
IRole
(optional, default: * A Role will be created)
Also called instance profile and EC2 role.
An IAM role for an EMR cluster. The EC2 instances of the cluster assume this role.
This attribute has been renamed from jobFlowRole to clusterRole to align with other ERM/StepFunction integration parameters.
comment?
Type:
string
(optional, default: No comment)
A comment describing this state.
configurations?
Type:
Configuration
[]
(optional, default: None)
The list of configurations supplied for the EMR cluster you are creating.
credentials?
Type:
Credentials
(optional, default: None (Task is executed using the State Machine's execution role))
Credentials for an IAM Role that the State Machine assumes for executing the task.
This enables cross-account resource invocations.
customAmiId?
Type:
string
(optional, default: None)
The ID of a custom Amazon EBS-backed Linux AMI.
ebsRootVolumeSize?
Type:
Size
(optional, default: EMR selected default)
The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
heartbeat?
⚠️ Deprecated: use heartbeatTimeout
Type:
Duration
(optional, default: None)
Timeout for the heartbeat.
heartbeatTimeout?
Type:
Timeout
(optional, default: None)
Timeout for the heartbeat.
[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
integrationPattern?
Type:
Integration
(optional, default: IntegrationPattern.REQUEST_RESPONSE
for most tasks.
IntegrationPattern.RUN_JOB
for the following exceptions:
BatchSubmitJob
, EmrAddStep
, EmrCreateCluster
, EmrTerminationCluster
, and EmrContainersStartJobRun
.)
AWS Step Functions integrates with services directly in the Amazon States Language.
You can control these AWS services using service integration patterns.
Depending on the AWS Service, the Service Integration Pattern availability will vary.
kerberosAttributes?
Type:
Kerberos
(optional, default: None)
Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration.
logUri?
Type:
string
(optional, default: None)
The location in Amazon S3 to write the log files of the job flow.
outputs?
Type:
any
(optional, default: $states.result or $states.errorOutput)
Used to specify and transform output from the state.
When specified, the value overrides the state output default. The output field accepts any JSON value (object, array, string, number, boolean, null). Any string value, including those inside objects or arrays, will be evaluated as JSONata if surrounded by {% %} characters. Output also accepts a JSONata expression directly.
queryLanguage?
Type:
Query
(optional, default: JSONPath)
The name of the query language used by the state.
If the state does not contain a queryLanguage
field,
then it will use the query language specified in the top-level queryLanguage
field.
releaseLabel?
Type:
string
(optional, default: EMR selected default)
The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster.
scaleDownBehavior?
Type:
Emr
(optional, default: EMR selected default)
Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
securityConfiguration?
Type:
string
(optional, default: None)
The name of a security configuration to apply to the cluster.
serviceRole?
Type:
IRole
(optional, default: A role will be created that Amazon EMR service can assume.)
The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.
stateName?
Type:
string
(optional, default: The construct ID will be used as state name)
Optional name for this state.
stepConcurrencyLevel?
Type:
number
(optional, default: 1 - no step concurrency allowed)
Specifies the step concurrency level to allow multiple steps to run in parallel.
Requires EMR release label 5.28.0 or above. Must be in range [1, 256].
tags?
Type:
{ [string]: string }
(optional, default: None)
A list of tags to associate with a cluster and propagate to Amazon EC2 instances.
taskTimeout?
Type:
Timeout
(optional, default: None)
Timeout for the task.
[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
timeout?
⚠️ Deprecated: use taskTimeout
Type:
Duration
(optional, default: None)
Timeout for the task.
visibleToAllUsers?
Type:
boolean
(optional, default: true)
A value of true indicates that all IAM users in the AWS account can perform cluster actions if they have the proper IAM policy permissions.