EmrCreateClusterJsonPathProps Struct
Properties for calling an AWS service's API action using JSONPath 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 resultSelector: any;
declare const role: iam.Role;
declare const size: cdk.Size;
declare const taskRole: stepfunctions.TaskRole;
declare const timeout: stepfunctions.Timeout;
const emrCreateClusterJsonPathProps: stepfunctions_tasks.EmrCreateClusterJsonPathProps = {
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,
},
priority: 123,
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',
ebsRootVolumeIops: 123,
ebsRootVolumeSize: size,
ebsRootVolumeThroughput: 123,
heartbeat: cdk.Duration.minutes(30),
heartbeatTimeout: timeout,
inputPath: 'inputPath',
integrationPattern: stepfunctions.IntegrationPattern.REQUEST_RESPONSE,
kerberosAttributes: {
realm: 'realm',
// the properties below are optional
adDomainJoinPassword: 'adDomainJoinPassword',
adDomainJoinUser: 'adDomainJoinUser',
crossRealmTrustPrincipalPassword: 'crossRealmTrustPrincipalPassword',
kdcAdminPassword: 'kdcAdminPassword',
},
logUri: 'logUri',
managedScalingPolicy: {
computeLimits: {
maximumCapacityUnits: 123,
minimumCapacityUnits: 123,
unitType: stepfunctions_tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
// the properties below are optional
maximumCoreCapacityUnits: 123,
maximumOnDemandCapacityUnits: 123,
},
},
outputPath: 'outputPath',
queryLanguage: stepfunctions.QueryLanguage.JSON_PATH,
releaseLabel: 'releaseLabel',
resultPath: 'resultPath',
resultSelector: {
resultSelectorKey: resultSelector,
},
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
additionalInfostringadditional_infostradditionalInfoStringAdditionalInfostringAdditionalInfo*string= None#applicationsEmrCreateCluster.ApplicationConfigProperty[]applicationstyping.List[ApplicationConfigProperty]applicationsList<ApplicationConfigProperty>ApplicationsApplicationConfigProperty[]Applications*[]ApplicationConfigProperty= EMR selected default#assign{ [key: string]: any }assigntyping.Mapping[str, Any]assignMap<String, Object>AssignIDictionary<string, object>Assign*map[string]interface{}= Not assign variables#Using workflow variables, you can store data in a step and retrieve that data in future steps.
autoScalingRoleIRoleauto_scaling_roleIRoleautoScalingRoleIRoleAutoScalingRoleIRoleAutoScalingRoleIRole= A role will be created.#autoTerminationPolicyIdleTimeoutDurationauto_termination_policy_idle_timeoutDurationautoTerminationPolicyIdleTimeoutDurationAutoTerminationPolicyIdleTimeoutDurationAutoTerminationPolicyIdleTimeoutDuration= No timeout#You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).
bootstrapActionsEmrCreateCluster.BootstrapActionConfigProperty[]bootstrap_actionstyping.List[BootstrapActionConfigProperty]bootstrapActionsList<BootstrapActionConfigProperty>BootstrapActionsBootstrapActionConfigProperty[]BootstrapActions*[]BootstrapActionConfigProperty= None#clusterRoleIRolecluster_roleIRoleclusterRoleIRoleClusterRoleIRoleClusterRoleIRole= * A Role will be created#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.
configurationsEmrCreateCluster.ConfigurationProperty[]configurationstyping.List[ConfigurationProperty]configurationsList<ConfigurationProperty>ConfigurationsConfigurationProperty[]Configurations*[]ConfigurationProperty= None#credentialsCredentialscredentialsCredentialscredentialsCredentialsCredentialsCredentialsCredentialsCredentials= None (Task is executed using the…#This enables cross-account resource invocations.
default
Default: None (Task is executed using the State Machine's execution role)
ebsRootVolumeIopsnumberebs_root_volume_iopsint | floatebsRootVolumeIopsNumberEbsRootVolumeIopsdoubleEbsRootVolumeIops*float64= EMR selected default#Requires EMR release label 6.15.0 or above. Must be in range [3000, 16000].
ebsRootVolumeSizeSizeebs_root_volume_sizeSizeebsRootVolumeSizeSizeEbsRootVolumeSizeSizeEbsRootVolumeSizeSize= EMR selected default#ebsRootVolumeThroughputnumberebs_root_volume_throughputint | floatebsRootVolumeThroughputNumberEbsRootVolumeThroughputdoubleEbsRootVolumeThroughput*float64= EMR selected default#Requires EMR release label 6.15.0 or above. Must be in range [125, 1000].
heartbeatDurationheartbeatDurationheartbeatDurationHeartbeatDurationHeartbeatDuration= Nonedeprecated#heartbeatTimeoutTimeoutheartbeat_timeoutTimeoutheartbeatTimeoutTimeoutHeartbeatTimeoutTimeoutHeartbeatTimeoutTimeout= None#[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
May also be the special value JsonPath.DISCARD, which will cause the effective input to be the empty object {}.
instancesEmrCreateCluster.InstancesConfigPropertyinstancesInstancesConfigPropertyinstancesInstancesConfigPropertyInstancesInstancesConfigPropertyInstancesInstancesConfigPropertyrequired#integrationPatternIntegrationPatternintegration_patternIntegrationPatternintegrationPatternIntegrationPatternIntegrationPatternIntegrationPatternIntegrationPatternIntegrationPattern= `IntegrationPattern.REQUEST_RESP…#You can control these AWS services using service integration patterns.
Depending on the AWS Service, the Service Integration Pattern availability will vary.
default
Default: IntegrationPattern.REQUEST_RESPONSE for most tasks. IntegrationPattern.RUN_JOB for the following exceptions: BatchSubmitJob, EmrAddStep, EmrCreateCluster, EmrTerminationCluster, and EmrContainersStartJobRun.
kerberosAttributesEmrCreateCluster.KerberosAttributesPropertykerberos_attributesKerberosAttributesPropertykerberosAttributesKerberosAttributesPropertyKerberosAttributesKerberosAttributesPropertyKerberosAttributesKerberosAttributesProperty= None#managedScalingPolicyEmrCreateCluster.ManagedScalingPolicyPropertymanaged_scaling_policyManagedScalingPolicyPropertymanagedScalingPolicyManagedScalingPolicyPropertyManagedScalingPolicyManagedScalingPolicyPropertyManagedScalingPolicyManagedScalingPolicyProperty= None#May also be the special value JsonPath.DISCARD, which will cause the effective output to be the empty object {}.
queryLanguageQueryLanguagequery_languageQueryLanguagequeryLanguageQueryLanguageQueryLanguageQueryLanguageQueryLanguageQueryLanguage= JSONPath#If the state does not contain a queryLanguage field, then it will use the query language specified in the top-level queryLanguage field.
releaseLabelstringrelease_labelstrreleaseLabelStringReleaseLabelstringReleaseLabel*string= EMR selected default#May also be the special value JsonPath.DISCARD, which will cause the state's input to become its output.
resultSelector{ [key: string]: any }result_selectortyping.Mapping[str, Any]resultSelectorMap<String, Object>ResultSelectorIDictionary<string, object>ResultSelector*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.
scaleDownBehaviorEmrCreateCluster.EmrClusterScaleDownBehaviorscale_down_behaviorEmrClusterScaleDownBehaviorscaleDownBehaviorEmrClusterScaleDownBehaviorScaleDownBehaviorEmrClusterScaleDownBehaviorScaleDownBehaviorEmrClusterScaleDownBehavior= EMR selected default#securityConfigurationstringsecurity_configurationstrsecurityConfigurationStringSecurityConfigurationstringSecurityConfiguration*string= None#serviceRoleIRoleservice_roleIRoleserviceRoleIRoleServiceRoleIRoleServiceRoleIRole= A role will be created that Amaz…#default
Default: A role will be created that Amazon EMR service can assume.
stateNamestringstate_namestrstateNameStringStateNamestringStateName*string= The construct ID will be used as…#default
Default: The construct ID will be used as state name
stepConcurrencyLevelnumberstep_concurrency_levelint | floatstepConcurrencyLevelNumberStepConcurrencyLeveldoubleStepConcurrencyLevel*float64= 1 - no step concurrency allowed#Requires EMR release label 5.28.0 or above. Must be in range [1, 256].
tags{ [key: string]: string }tagstyping.Mapping[str, str]tagsMap<String, String>TagsIDictionary<string, string>Tags*map[string]*string= None#[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
visibleToAllUsersbooleanvisible_to_all_usersboolvisibleToAllUsersBooleanVisibleToAllUsersboolVisibleToAllUsers*bool= true#