Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(aws-stepfunctions-tasks): Set StepConcurrencyLevel when creating EMR clusters through Step Functions #15223

Closed
MousaZeidBaker opened this issue Jun 21, 2021 · 2 comments · Fixed by #15242
Labels
@aws-cdk/aws-stepfunctions-tasks effort/small Small work item – less than a day of effort feature/enhancement A new API to make things easier or more intuitive. A catch-all for general feature requests. feature-request A feature should be added or improved. p2

Comments

@MousaZeidBaker
Copy link
Contributor

How do one specify the StepConcurrencyLevel parameter when creating EMR clusters through Step Functions?

The following can be found in the AWS Step Functions docs

As of emr-5.28.0, you can specify the parameter StepConcurrencyLevel when creating a cluster to allow multiple steps to run in parallel on a single cluster.

... but there is nothing about step concurrency level in the CDK Step Functions Task EmrCreateCluster docs

Environment

  • CDK CLI Version: 1.100.0
  • Module Version: 1.100.0
  • Node.js Version: v14.15.0
  • OS: Ubuntu 20.04.2 LTS
  • Language (Version): Python (3.8.5)
@MousaZeidBaker MousaZeidBaker added guidance Question that needs advice or information. needs-triage This issue or PR still needs to be triaged. labels Jun 21, 2021
@peterwoodworth peterwoodworth removed @aws-cdk/aws-emr Related to Amazon EMR @aws-cdk/aws-stepfunctions Related to AWS StepFunctions labels Jun 21, 2021
@peterwoodworth
Copy link
Contributor

peterwoodworth commented Jun 21, 2021

This currently isn't possible. When you use the EmrCreateCluster construct, the CDK will create a new Emr Cluster here:

protected _renderTask(): any {
return {
Resource: integrationResourceArn('elasticmapreduce', 'createCluster', this.integrationPattern),
Parameters: sfn.FieldUtils.renderObject({
Instances: InstancesConfigPropertyToJson(this.props.instances),
JobFlowRole: cdk.stringToCloudFormation(this._clusterRole.roleName),
Name: cdk.stringToCloudFormation(this.props.name),
ServiceRole: cdk.stringToCloudFormation(this._serviceRole.roleName),
AdditionalInfo: cdk.stringToCloudFormation(this.props.additionalInfo),
Applications: cdk.listMapper(ApplicationConfigPropertyToJson)(this.props.applications),
AutoScalingRole: cdk.stringToCloudFormation(this._autoScalingRole?.roleName),
BootstrapActions: cdk.listMapper(BootstrapActionConfigToJson)(this.props.bootstrapActions),
Configurations: cdk.listMapper(ConfigurationPropertyToJson)(this.props.configurations),
CustomAmiId: cdk.stringToCloudFormation(this.props.customAmiId),
EbsRootVolumeSize: this.props.ebsRootVolumeSize?.toGibibytes(),
KerberosAttributes: this.props.kerberosAttributes ? KerberosAttributesPropertyToJson(this.props.kerberosAttributes) : undefined,
LogUri: cdk.stringToCloudFormation(this.props.logUri),
ReleaseLabel: cdk.stringToCloudFormation(this.props.releaseLabel),
ScaleDownBehavior: cdk.stringToCloudFormation(this.props.scaleDownBehavior?.valueOf()),
SecurityConfiguration: cdk.stringToCloudFormation(this.props.securityConfiguration),
...(this.props.tags ? this.renderTags(this.props.tags) : undefined),
VisibleToAllUsers: cdk.booleanToCloudFormation(this.visibleToAllUsers),
}),
};
}

Note how there is no StepConcurrencyLevel prop set here.

However, the StepConcurrencyLevel is on CfnCluster, meaning this is currently supported by CloudFormation. So this shouldn't be a very difficult feature to implement 😄

I will be repurposing this issue as a feature request, and be marking this issue as p2, which means that we are unable to work on this immediately.

We use +1s to help prioritize our work, and are happy to revaluate this issue based on community feedback. You can reach out to the cdk.dev community on Slack to solicit support for reprioritization.

Or alternatively, you could take a stab at implementing this yourself!

@peterwoodworth peterwoodworth removed guidance Question that needs advice or information. needs-triage This issue or PR still needs to be triaged. labels Jun 21, 2021
@peterwoodworth peterwoodworth added feature-request A feature should be added or improved. p2 effort/small Small work item – less than a day of effort feature/enhancement A new API to make things easier or more intuitive. A catch-all for general feature requests. labels Jun 21, 2021
@peterwoodworth peterwoodworth changed the title (aws-stepfunctions-tasks module): how to specify the StepConcurrencyLevel when creating EMR clusters through Step Functions? (aws-stepfunctions-tasks): Set StepConcurrencyLevel when creating EMR clusters through Step Functions Jun 21, 2021
@github-actions github-actions bot added @aws-cdk/aws-emr Related to Amazon EMR @aws-cdk/aws-stepfunctions Related to AWS StepFunctions labels Jun 21, 2021
@peterwoodworth peterwoodworth removed @aws-cdk/aws-emr Related to Amazon EMR @aws-cdk/aws-stepfunctions Related to AWS StepFunctions labels Jun 21, 2021
@BenChaimberg BenChaimberg removed their assignment Jun 21, 2021
@mergify mergify bot closed this as completed in #15242 Oct 5, 2021
mergify bot pushed a commit that referenced this issue Oct 5, 2021
…ster (#15242)

Added support for step concurrency when creating EMR clusters through Step Functions. This feature allows users to run multiple steps in parallel on a cluster created through SFN.

closes #15223.

As a byproduct, adds validation for `releaseLabel` to ensure that it follows the correct format laid out [here](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-components.html).

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
@github-actions
Copy link

github-actions bot commented Oct 5, 2021

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

njlynch pushed a commit that referenced this issue Oct 11, 2021
…ster (#15242)

Added support for step concurrency when creating EMR clusters through Step Functions. This feature allows users to run multiple steps in parallel on a cluster created through SFN.

closes #15223.

As a byproduct, adds validation for `releaseLabel` to ensure that it follows the correct format laid out [here](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-components.html).

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
TikiTDO pushed a commit to TikiTDO/aws-cdk that referenced this issue Feb 21, 2022
…ster (aws#15242)

Added support for step concurrency when creating EMR clusters through Step Functions. This feature allows users to run multiple steps in parallel on a cluster created through SFN.

closes aws#15223.

As a byproduct, adds validation for `releaseLabel` to ensure that it follows the correct format laid out [here](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-components.html).

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
@aws-cdk/aws-stepfunctions-tasks effort/small Small work item – less than a day of effort feature/enhancement A new API to make things easier or more intuitive. A catch-all for general feature requests. feature-request A feature should be added or improved. p2
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants