Class: AWSCDK::Batch::MultiNodeJobDefinition
- Inherits:
-
Resource
- Object
- Resource
- AWSCDK::Batch::MultiNodeJobDefinition
- Includes:
- IJobDefinition
- Defined in:
- batch/multi_node_job_definition.rb
Overview
A JobDefinition that uses Ecs orchestration to run multiple containers.
Class Method Summary collapse
-
.from_job_definition_arn(scope, id, job_definition_arn) ⇒ AWSCDK::Batch::IJobDefinition
refer to an existing JobDefinition by its arn.
- .jsii_overridable_methods ⇒ Object
-
.PROPERTY_INJECTION_ID ⇒ String
Uniquely identifies this class.
Instance Method Summary collapse
-
#add_container(container) ⇒ void
Add a container to this multinode job.
-
#add_retry_strategy(strategy) ⇒ void
Add a RetryStrategy to this JobDefinition.
-
#apply_cross_stack_reference_strength(strength) ⇒ void
Override the cross-stack reference strength for this resource.
-
#apply_removal_policy(policy) ⇒ void
Apply the given removal policy to this resource.
-
#containers ⇒ Array<AWSCDK::Batch::MultiNodeContainer>
The containers that this multinode job will run.
-
#env ⇒ AWSCDK::Interfaces::ResourceEnvironment
The environment this resource belongs to.
- #generate_physical_name ⇒ String
-
#get_resource_arn_attribute(arn_attr, arn_components) ⇒ String
Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g.
bucket.bucketArn). -
#get_resource_name_attribute(name_attr) ⇒ String
Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g.
bucket.bucketName). -
#initialize(scope, id, props = nil) ⇒ MultiNodeJobDefinition
constructor
A new instance of MultiNodeJobDefinition.
-
#instance_type ⇒ AWSCDK::EC2::InstanceType
If the prop
instanceTypeis leftundefined, then this will hold a fake instance type, for backwards compatibility reasons. -
#job_definition_arn ⇒ String
The ARN of this job definition.
-
#job_definition_name ⇒ String
The name of this job definition.
-
#job_definition_ref ⇒ AWSCDK::Interfaces::AWSBatch::JobDefinitionReference
A reference to a JobDefinition resource.
-
#main_node ⇒ Numeric?
The index of the main node in this job.
-
#node ⇒ Constructs::Node
The tree node.
-
#parameters ⇒ Hash{String => Object}?
The default parameters passed to the container These parameters can be referenced in the
commandthat you give to the container. -
#physical_name ⇒ String
Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
-
#propagate_tags ⇒ Boolean?
Whether to propagate tags from the JobDefinition to the ECS task that Batch spawns.
-
#retry_attempts ⇒ Numeric?
The number of times to retry a job.
-
#retry_strategies ⇒ Array<AWSCDK::Batch::RetryStrategy>
Defines the retry behavior for this job.
-
#scheduling_priority ⇒ Numeric?
The priority of this Job.
-
#skip_deregister_on_update ⇒ Boolean?
Specifies whether the previous revision of the job definition is retained in an active status after UPDATE events for the resource.
-
#stack ⇒ AWSCDK::Stack
The stack in which this resource is defined.
-
#timeout ⇒ AWSCDK::Duration?
The timeout time for jobs that are submitted with this job definition.
-
#to_string ⇒ String
Returns a string representation of this construct.
-
#with(*mixins) ⇒ Constructs::IConstruct
Applies one or more mixins to this construct.
Constructor Details
#initialize(scope, id, props = nil) ⇒ MultiNodeJobDefinition
Returns a new instance of MultiNodeJobDefinition.
12 13 14 15 16 17 18 |
# File 'batch/multi_node_job_definition.rb', line 12 def initialize(scope, id, props = nil) props = props.is_a?(Hash) ? ::AWSCDK::Batch::MultiNodeJobDefinitionProps.new(**props.transform_keys(&:to_sym)) : props Jsii::Type.check_type(scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "scope") Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id") Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYmF0Y2guTXVsdGlOb2RlSm9iRGVmaW5pdGlvblByb3BzIn0=")), "props") unless props.nil? Jsii::Object.instance_method(:initialize).bind(self).call(scope, id, props) end |
Class Method Details
.from_job_definition_arn(scope, id, job_definition_arn) ⇒ AWSCDK::Batch::IJobDefinition
refer to an existing JobDefinition by its arn.
57 58 59 60 61 62 |
# File 'batch/multi_node_job_definition.rb', line 57 def self.from_job_definition_arn(scope, id, job_definition_arn) Jsii::Type.check_type(scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "scope") Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id") Jsii::Type.check_type(job_definition_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "jobDefinitionArn") Jsii::Kernel.instance.call_static("aws-cdk-lib.aws_batch.MultiNodeJobDefinition", "fromJobDefinitionArn", [scope, id, job_definition_arn]) end |
.jsii_overridable_methods ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'batch/multi_node_job_definition.rb', line 20 def self.jsii_overridable_methods { :node => { kind: :property, name: "node", is_optional: false }, :env => { kind: :property, name: "env", is_optional: false }, :physical_name => { kind: :property, name: "physicalName", is_optional: false }, :stack => { kind: :property, name: "stack", is_optional: false }, :containers => { kind: :property, name: "containers", is_optional: false }, :instance_type => { kind: :property, name: "instanceType", is_optional: false }, :job_definition_arn => { kind: :property, name: "jobDefinitionArn", is_optional: false }, :job_definition_name => { kind: :property, name: "jobDefinitionName", is_optional: false }, :job_definition_ref => { kind: :property, name: "jobDefinitionRef", is_optional: false }, :retry_strategies => { kind: :property, name: "retryStrategies", is_optional: false }, :main_node => { kind: :property, name: "mainNode", is_optional: true }, :parameters => { kind: :property, name: "parameters", is_optional: true }, :propagate_tags => { kind: :property, name: "propagateTags", is_optional: true }, :retry_attempts => { kind: :property, name: "retryAttempts", is_optional: true }, :scheduling_priority => { kind: :property, name: "schedulingPriority", is_optional: true }, :skip_deregister_on_update => { kind: :property, name: "skipDeregisterOnUpdate", is_optional: true }, :timeout => { kind: :property, name: "timeout", is_optional: true }, :to_string => { kind: :method, name: "toString", is_optional: false }, :with => { kind: :method, name: "with", is_optional: false }, :apply_cross_stack_reference_strength => { kind: :method, name: "applyCrossStackReferenceStrength", is_optional: false }, :apply_removal_policy => { kind: :method, name: "applyRemovalPolicy", is_optional: false }, :generate_physical_name => { kind: :method, name: "generatePhysicalName", is_optional: false }, :get_resource_arn_attribute => { kind: :method, name: "getResourceArnAttribute", is_optional: false }, :get_resource_name_attribute => { kind: :method, name: "getResourceNameAttribute", is_optional: false }, :add_container => { kind: :method, name: "addContainer", is_optional: false }, :add_retry_strategy => { kind: :method, name: "addRetryStrategy", is_optional: false }, } end |
.PROPERTY_INJECTION_ID ⇒ String
Uniquely identifies this class.
110 111 112 |
# File 'batch/multi_node_job_definition.rb', line 110 def self.PROPERTY_INJECTION_ID() Jsii::Kernel.instance.get_static("aws-cdk-lib.aws_batch.MultiNodeJobDefinition", "PROPERTY_INJECTION_ID") end |
Instance Method Details
#add_container(container) ⇒ void
This method returns an undefined value.
Add a container to this multinode job.
311 312 313 314 315 |
# File 'batch/multi_node_job_definition.rb', line 311 def add_container(container) container = container.is_a?(Hash) ? ::AWSCDK::Batch::MultiNodeContainer.new(**container.transform_keys(&:to_sym)) : container Jsii::Type.check_type(container, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYmF0Y2guTXVsdGlOb2RlQ29udGFpbmVyIn0=")), "container") jsii_call_method("addContainer", [container]) end |
#add_retry_strategy(strategy) ⇒ void
This method returns an undefined value.
Add a RetryStrategy to this JobDefinition.
321 322 323 324 |
# File 'batch/multi_node_job_definition.rb', line 321 def add_retry_strategy(strategy) Jsii::Type.check_type(strategy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYmF0Y2guUmV0cnlTdHJhdGVneSJ9")), "strategy") jsii_call_method("addRetryStrategy", [strategy]) end |
#apply_cross_stack_reference_strength(strength) ⇒ void
This method returns an undefined value.
Override the cross-stack reference strength for this resource.
When set, any cross-stack reference to this resource will use the specified
mechanism instead of the global default determined by the
@aws-cdk/core:defaultCrossStackReferences context key. This is useful for
selectively weakening specific references to avoid the "deadly embrace" problem
without changing the app-wide default.
250 251 252 253 |
# File 'batch/multi_node_job_definition.rb', line 250 def apply_cross_stack_reference_strength(strength) Jsii::Type.check_type(strength, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZWZlcmVuY2VTdHJlbmd0aCJ9")), "strength") jsii_call_method("applyCrossStackReferenceStrength", [strength]) end |
#apply_removal_policy(policy) ⇒ void
This method returns an undefined value.
Apply the given removal policy to this resource.
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.
The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS
account for data recovery and cleanup later (RemovalPolicy.RETAIN).
267 268 269 270 |
# File 'batch/multi_node_job_definition.rb', line 267 def apply_removal_policy(policy) Jsii::Type.check_type(policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZW1vdmFsUG9saWN5In0=")), "policy") jsii_call_method("applyRemovalPolicy", [policy]) end |
#containers ⇒ Array<AWSCDK::Batch::MultiNodeContainer>
The containers that this multinode job will run.
117 118 119 |
# File 'batch/multi_node_job_definition.rb', line 117 def containers() jsii_get_property("containers") end |
#env ⇒ AWSCDK::Interfaces::ResourceEnvironment
The environment this resource belongs to.
For resources that are created and managed in a Stack (those created by
creating new class instances like new Role(), new Bucket(), etc.), this
is always the same as the environment of the stack they belong to.
For referenced resources (those obtained from referencing methods like
Role.fromRoleArn(), Bucket.fromBucketName(), etc.), they might be
different than the stack they were imported into.
82 83 84 |
# File 'batch/multi_node_job_definition.rb', line 82 def env() jsii_get_property("env") end |
#generate_physical_name ⇒ String
273 274 275 |
# File 'batch/multi_node_job_definition.rb', line 273 def generate_physical_name() jsii_call_method("generatePhysicalName", []) end |
#get_resource_arn_attribute(arn_attr, arn_components) ⇒ String
Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. bucket.bucketArn).
Normally, this token will resolve to arn_attr, but if the resource is
referenced across environments, arn_components will be used to synthesize
a concrete ARN with the resource's physical name. Make sure to reference
this.physicalName in arn_components.
287 288 289 290 291 292 |
# File 'batch/multi_node_job_definition.rb', line 287 def get_resource_arn_attribute(arn_attr, arn_components) Jsii::Type.check_type(arn_attr, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "arnAttr") arn_components = arn_components.is_a?(Hash) ? ::AWSCDK::ARNComponents.new(**arn_components.transform_keys(&:to_sym)) : arn_components Jsii::Type.check_type(arn_components, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5Bcm5Db21wb25lbnRzIn0=")), "arnComponents") jsii_call_method("getResourceArnAttribute", [arn_attr, arn_components]) end |
#get_resource_name_attribute(name_attr) ⇒ String
Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. bucket.bucketName).
Normally, this token will resolve to name_attr, but if the resource is
referenced across environments, it will be resolved to this.physicalName,
which will be a concrete name.
302 303 304 305 |
# File 'batch/multi_node_job_definition.rb', line 302 def get_resource_name_attribute(name_attr) Jsii::Type.check_type(name_attr, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "nameAttr") jsii_call_method("getResourceNameAttribute", [name_attr]) end |
#instance_type ⇒ AWSCDK::EC2::InstanceType
If the prop instanceType is left undefined, then this will hold a fake instance type, for backwards compatibility reasons.
124 125 126 |
# File 'batch/multi_node_job_definition.rb', line 124 def instance_type() jsii_get_property("instanceType") end |
#job_definition_arn ⇒ String
The ARN of this job definition.
131 132 133 |
# File 'batch/multi_node_job_definition.rb', line 131 def job_definition_arn() jsii_get_property("jobDefinitionArn") end |
#job_definition_name ⇒ String
The name of this job definition.
138 139 140 |
# File 'batch/multi_node_job_definition.rb', line 138 def job_definition_name() jsii_get_property("jobDefinitionName") end |
#job_definition_ref ⇒ AWSCDK::Interfaces::AWSBatch::JobDefinitionReference
A reference to a JobDefinition resource.
145 146 147 |
# File 'batch/multi_node_job_definition.rb', line 145 def job_definition_ref() jsii_get_property("jobDefinitionRef") end |
#main_node ⇒ Numeric?
The index of the main node in this job.
The main node is responsible for orchestration.
161 162 163 |
# File 'batch/multi_node_job_definition.rb', line 161 def main_node() jsii_get_property("mainNode") end |
#node ⇒ Constructs::Node
The tree node.
67 68 69 |
# File 'batch/multi_node_job_definition.rb', line 67 def node() jsii_get_property("node") end |
#parameters ⇒ Hash{String => Object}?
The default parameters passed to the container These parameters can be referenced in the command that you give to the container.
168 169 170 |
# File 'batch/multi_node_job_definition.rb', line 168 def parameters() jsii_get_property("parameters") end |
#physical_name ⇒ String
Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
This value will resolve to one of the following:
- a concrete value (e.g.
"my-awesome-bucket") undefined, when a name should be generated by CloudFormation- a concrete name generated automatically during synthesis, in cross-environment scenarios.
96 97 98 |
# File 'batch/multi_node_job_definition.rb', line 96 def physical_name() jsii_get_property("physicalName") end |
#propagate_tags ⇒ Boolean?
Whether to propagate tags from the JobDefinition to the ECS task that Batch spawns.
175 176 177 |
# File 'batch/multi_node_job_definition.rb', line 175 def () jsii_get_property("propagateTags") end |
#retry_attempts ⇒ Numeric?
The number of times to retry a job.
The job is retried on failure the same number of attempts as the value.
184 185 186 |
# File 'batch/multi_node_job_definition.rb', line 184 def retry_attempts() jsii_get_property("retryAttempts") end |
#retry_strategies ⇒ Array<AWSCDK::Batch::RetryStrategy>
Defines the retry behavior for this job.
152 153 154 |
# File 'batch/multi_node_job_definition.rb', line 152 def retry_strategies() jsii_get_property("retryStrategies") end |
#scheduling_priority ⇒ Numeric?
The priority of this Job.
Only used in Fairshare Scheduling to decide which job to run first when there are multiple jobs with the same share identifier.
195 196 197 |
# File 'batch/multi_node_job_definition.rb', line 195 def scheduling_priority() jsii_get_property("schedulingPriority") end |
#skip_deregister_on_update ⇒ Boolean?
Default: undefined - AWS Batch default is false
Specifies whether the previous revision of the job definition is retained in an active status after UPDATE events for the resource.
203 204 205 |
# File 'batch/multi_node_job_definition.rb', line 203 def skip_deregister_on_update() jsii_get_property("skipDeregisterOnUpdate") end |
#stack ⇒ AWSCDK::Stack
The stack in which this resource is defined.
103 104 105 |
# File 'batch/multi_node_job_definition.rb', line 103 def stack() jsii_get_property("stack") end |
#timeout ⇒ AWSCDK::Duration?
The timeout time for jobs that are submitted with this job definition.
After the amount of time you specify passes, Batch terminates your jobs if they aren't finished.
213 214 215 |
# File 'batch/multi_node_job_definition.rb', line 213 def timeout() jsii_get_property("timeout") end |
#to_string ⇒ String
Returns a string representation of this construct.
220 221 222 |
# File 'batch/multi_node_job_definition.rb', line 220 def to_string() jsii_call_method("toString", []) end |
#with(*mixins) ⇒ Constructs::IConstruct
Applies one or more mixins to this construct.
Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple with() calls if subsequent mixins should apply to added
constructs.
233 234 235 236 237 238 |
# File 'batch/multi_node_job_definition.rb', line 233 def with(*mixins) mixins.each_with_index do |item, index| Jsii::Type.check_type(item, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLklNaXhpbiJ9")), "mixins[#{index}]") end jsii_call_method("with", [*mixins]) end |