Interface IEmrCreateClusterJsonataProps
Properties for calling an AWS service's API action using JSONata from your state machine across regions.
Inherited Members
Namespace: Amazon.CDK.AWS.StepFunctions.Tasks
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public interface IEmrCreateClusterJsonataProps : ITaskStateJsonataBaseProps, IStateBaseProps, ITaskStateBaseOptions, IAssignableStateOptions, IJsonataCommonOptions
Syntax (vb)
Public Interface IEmrCreateClusterJsonataProps
Inherits ITaskStateJsonataBaseProps, IStateBaseProps, ITaskStateBaseOptions, IAssignableStateOptions, IJsonataCommonOptions
Remarks
ExampleMetadata: fixture=_generated
Examples
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK;
using Amazon.CDK.AWS.IAM;
using Amazon.CDK.AWS.StepFunctions;
using Amazon.CDK.AWS.StepFunctions.Tasks;
var assign;
ConfigurationProperty configurationProperty_;
var outputs;
Role role;
Size size;
TaskRole taskRole;
Timeout timeout;
var emrCreateClusterJsonataProps = new EmrCreateClusterJsonataProps {
Instances = new InstancesConfigProperty {
AdditionalMasterSecurityGroups = new [] { "additionalMasterSecurityGroups" },
AdditionalSlaveSecurityGroups = new [] { "additionalSlaveSecurityGroups" },
Ec2KeyName = "ec2KeyName",
Ec2SubnetId = "ec2SubnetId",
Ec2SubnetIds = new [] { "ec2SubnetIds" },
EmrManagedMasterSecurityGroup = "emrManagedMasterSecurityGroup",
EmrManagedSlaveSecurityGroup = "emrManagedSlaveSecurityGroup",
HadoopVersion = "hadoopVersion",
InstanceCount = 123,
InstanceFleets = new [] { new InstanceFleetConfigProperty {
InstanceFleetType = EmrCreateCluster.InstanceRoleType.MASTER,
// the properties below are optional
InstanceTypeConfigs = new [] { new InstanceTypeConfigProperty {
InstanceType = "instanceType",
// the properties below are optional
BidPrice = "bidPrice",
BidPriceAsPercentageOfOnDemandPrice = 123,
Configurations = new [] { new ConfigurationProperty {
Classification = "classification",
Configurations = new [] { configurationProperty_ },
Properties = new Dictionary<string, string> {
{ "propertiesKey", "properties" }
}
} },
EbsConfiguration = new EbsConfigurationProperty {
EbsBlockDeviceConfigs = new [] { new EbsBlockDeviceConfigProperty {
VolumeSpecification = new VolumeSpecificationProperty {
VolumeSize = size,
VolumeType = EmrCreateCluster.EbsBlockDeviceVolumeType.GP3,
// the properties below are optional
Iops = 123
},
// the properties below are optional
VolumesPerInstance = 123
} },
EbsOptimized = false
},
WeightedCapacity = 123
} },
LaunchSpecifications = new InstanceFleetProvisioningSpecificationsProperty {
OnDemandSpecification = new OnDemandProvisioningSpecificationProperty {
AllocationStrategy = EmrCreateCluster.OnDemandAllocationStrategy.LOWEST_PRICE
},
SpotSpecification = new SpotProvisioningSpecificationProperty {
TimeoutAction = EmrCreateCluster.SpotTimeoutAction.SWITCH_TO_ON_DEMAND,
// the properties below are optional
AllocationStrategy = EmrCreateCluster.SpotAllocationStrategy.CAPACITY_OPTIMIZED,
BlockDurationMinutes = 123,
Timeout = Duration.Minutes(30),
TimeoutDurationMinutes = 123
}
},
Name = "name",
TargetOnDemandCapacity = 123,
TargetSpotCapacity = 123
} },
InstanceGroups = new [] { new InstanceGroupConfigProperty {
InstanceCount = 123,
InstanceRole = EmrCreateCluster.InstanceRoleType.MASTER,
InstanceType = "instanceType",
// the properties below are optional
AutoScalingPolicy = new AutoScalingPolicyProperty {
Constraints = new ScalingConstraintsProperty {
MaxCapacity = 123,
MinCapacity = 123
},
Rules = new [] { new ScalingRuleProperty {
Action = new ScalingActionProperty {
SimpleScalingPolicyConfiguration = new SimpleScalingPolicyConfigurationProperty {
ScalingAdjustment = 123,
// the properties below are optional
AdjustmentType = EmrCreateCluster.ScalingAdjustmentType.CHANGE_IN_CAPACITY,
CoolDown = 123
},
// the properties below are optional
Market = EmrCreateCluster.InstanceMarket.ON_DEMAND
},
Name = "name",
Trigger = new ScalingTriggerProperty {
CloudWatchAlarmDefinition = new CloudWatchAlarmDefinitionProperty {
ComparisonOperator = EmrCreateCluster.CloudWatchAlarmComparisonOperator.GREATER_THAN_OR_EQUAL,
MetricName = "metricName",
Period = Duration.Minutes(30),
// the properties below are optional
Dimensions = new [] { new MetricDimensionProperty {
Key = "key",
Value = "value"
} },
EvaluationPeriods = 123,
Namespace = "namespace",
Statistic = EmrCreateCluster.CloudWatchAlarmStatistic.SAMPLE_COUNT,
Threshold = 123,
Unit = EmrCreateCluster.CloudWatchAlarmUnit.NONE
}
},
// the properties below are optional
Description = "description"
} }
},
BidPrice = "bidPrice",
Configurations = new [] { new ConfigurationProperty {
Classification = "classification",
Configurations = new [] { configurationProperty_ },
Properties = new Dictionary<string, string> {
{ "propertiesKey", "properties" }
}
} },
EbsConfiguration = new EbsConfigurationProperty {
EbsBlockDeviceConfigs = new [] { new EbsBlockDeviceConfigProperty {
VolumeSpecification = new VolumeSpecificationProperty {
VolumeSize = size,
VolumeType = EmrCreateCluster.EbsBlockDeviceVolumeType.GP3,
// the properties below are optional
Iops = 123
},
// the properties below are optional
VolumesPerInstance = 123
} },
EbsOptimized = false
},
Market = EmrCreateCluster.InstanceMarket.ON_DEMAND,
Name = "name"
} },
MasterInstanceType = "masterInstanceType",
Placement = new PlacementTypeProperty {
AvailabilityZone = "availabilityZone",
AvailabilityZones = new [] { "availabilityZones" }
},
ServiceAccessSecurityGroup = "serviceAccessSecurityGroup",
SlaveInstanceType = "slaveInstanceType",
TerminationProtected = false
},
Name = "name",
// the properties below are optional
AdditionalInfo = "additionalInfo",
Applications = new [] { new ApplicationConfigProperty {
Name = "name",
// the properties below are optional
AdditionalInfo = new Dictionary<string, string> {
{ "additionalInfoKey", "additionalInfo" }
},
Args = new [] { "args" },
Version = "version"
} },
Assign = new Dictionary<string, object> {
{ "assignKey", assign }
},
AutoScalingRole = role,
AutoTerminationPolicyIdleTimeout = Duration.Minutes(30),
BootstrapActions = new [] { new BootstrapActionConfigProperty {
Name = "name",
ScriptBootstrapAction = new ScriptBootstrapActionConfigProperty {
Path = "path",
// the properties below are optional
Args = new [] { "args" }
}
} },
ClusterRole = role,
Comment = "comment",
Configurations = new [] { new ConfigurationProperty {
Classification = "classification",
Configurations = new [] { configurationProperty_ },
Properties = new Dictionary<string, string> {
{ "propertiesKey", "properties" }
}
} },
Credentials = new Credentials {
Role = taskRole
},
CustomAmiId = "customAmiId",
EbsRootVolumeSize = size,
Heartbeat = Duration.Minutes(30),
HeartbeatTimeout = timeout,
IntegrationPattern = IntegrationPattern.REQUEST_RESPONSE,
KerberosAttributes = new KerberosAttributesProperty {
Realm = "realm",
// the properties below are optional
AdDomainJoinPassword = "adDomainJoinPassword",
AdDomainJoinUser = "adDomainJoinUser",
CrossRealmTrustPrincipalPassword = "crossRealmTrustPrincipalPassword",
KdcAdminPassword = "kdcAdminPassword"
},
LogUri = "logUri",
Outputs = outputs,
QueryLanguage = QueryLanguage.JSON_PATH,
ReleaseLabel = "releaseLabel",
ScaleDownBehavior = EmrCreateCluster.EmrClusterScaleDownBehavior.TERMINATE_AT_INSTANCE_HOUR,
SecurityConfiguration = "securityConfiguration",
ServiceRole = role,
StateName = "stateName",
StepConcurrencyLevel = 123,
Tags = new Dictionary<string, string> {
{ "tagsKey", "tags" }
},
TaskTimeout = timeout,
Timeout = Duration.Minutes(30),
VisibleToAllUsers = false
};
Synopsis
Properties
Additional |
A JSON string for selecting additional features. |
Applications | A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. |
Auto |
An IAM role for automatic scaling policies. |
Auto |
The amount of idle time after which the cluster automatically terminates. |
Bootstrap |
A list of bootstrap actions to run before Hadoop starts on the cluster nodes. |
Cluster |
Also called instance profile and EC2 role. |
Configurations | The list of configurations supplied for the EMR cluster you are creating. |
Custom |
The ID of a custom Amazon EBS-backed Linux AMI. |
Ebs |
The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance. |
Instances | A specification of the number and type of Amazon EC2 instances. |
Kerberos |
Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. |
Log |
The location in Amazon S3 to write the log files of the job flow. |
Name | The Name of the Cluster. |
Release |
The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. |
Scale |
Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. |
Security |
The name of a security configuration to apply to the cluster. |
Service |
The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf. |
Step |
Specifies the step concurrency level to allow multiple steps to run in parallel. |
Tags | A list of tags to associate with a cluster and propagate to Amazon EC2 instances. |
Visible |
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. |
Properties
AdditionalInfo
A JSON string for selecting additional features.
virtual string AdditionalInfo { get; }
Property Value
System.
Remarks
Default: - None
Applications
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster.
virtual EmrCreateCluster.IApplicationConfigProperty[] Applications { get; }
Property Value
Emr
Remarks
Default: - EMR selected default
AutoScalingRole
An IAM role for automatic scaling policies.
virtual IRole AutoScalingRole { get; }
Property Value
Remarks
Default: - A role will be created.
AutoTerminationPolicyIdleTimeout
The amount of idle time after which the cluster automatically terminates.
virtual Duration AutoTerminationPolicyIdleTimeout { get; }
Property Value
Remarks
You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).
Default: - No timeout
BootstrapActions
A list of bootstrap actions to run before Hadoop starts on the cluster nodes.
virtual EmrCreateCluster.IBootstrapActionConfigProperty[] BootstrapActions { get; }
Property Value
Emr
Remarks
Default: - None
ClusterRole
Also called instance profile and EC2 role.
virtual IRole ClusterRole { get; }
Property Value
Remarks
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.
Default: - * A Role will be created
Configurations
The list of configurations supplied for the EMR cluster you are creating.
virtual EmrCreateCluster.IConfigurationProperty[] Configurations { get; }
Property Value
Emr
Remarks
Default: - None
CustomAmiId
The ID of a custom Amazon EBS-backed Linux AMI.
virtual string CustomAmiId { get; }
Property Value
System.
Remarks
Default: - None
EbsRootVolumeSize
The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
virtual Size EbsRootVolumeSize { get; }
Property Value
Remarks
Default: - EMR selected default
Instances
A specification of the number and type of Amazon EC2 instances.
EmrCreateCluster.IInstancesConfigProperty Instances { get; }
Property Value
Emr
KerberosAttributes
Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration.
virtual EmrCreateCluster.IKerberosAttributesProperty KerberosAttributes { get; }
Property Value
Emr
Remarks
Default: - None
LogUri
The location in Amazon S3 to write the log files of the job flow.
virtual string LogUri { get; }
Property Value
System.
Remarks
Default: - None
Name
The Name of the Cluster.
string Name { get; }
Property Value
System.
ReleaseLabel
The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster.
virtual string ReleaseLabel { get; }
Property Value
System.
Remarks
Default: - EMR selected default
ScaleDownBehavior
Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
virtual Nullable<EmrCreateCluster.EmrClusterScaleDownBehavior> ScaleDownBehavior { get; }
Property Value
System.
Remarks
Default: - EMR selected default
SecurityConfiguration
The name of a security configuration to apply to the cluster.
virtual string SecurityConfiguration { get; }
Property Value
System.
Remarks
Default: - None
ServiceRole
The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.
virtual IRole ServiceRole { get; }
Property Value
Remarks
Default: - A role will be created that Amazon EMR service can assume.
StepConcurrencyLevel
Specifies the step concurrency level to allow multiple steps to run in parallel.
virtual Nullable<double> StepConcurrencyLevel { get; }
Property Value
System.
Remarks
Requires EMR release label 5.28.0 or above. Must be in range [1, 256].
Default: 1 - no step concurrency allowed
Tags
A list of tags to associate with a cluster and propagate to Amazon EC2 instances.
virtual IDictionary<string, string> Tags { get; }
Property Value
System.
Remarks
Default: - None
VisibleToAllUsers
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.
virtual Nullable<bool> VisibleToAllUsers { get; }
Property Value
System.
Remarks
Default: true