1. Packages
  2. AWS
  3. API Docs
  4. emr
  5. InstanceGroup
AWS v6.77.0 published on Wednesday, Apr 9, 2025 by Pulumi

aws.emr.InstanceGroup

Explore with Pulumi AI

Provides an Elastic MapReduce Cluster Instance Group configuration. See Amazon Elastic MapReduce Documentation for more information.

NOTE: At this time, Instance Groups cannot be destroyed through the API nor web interface. Instance Groups are destroyed when the EMR Cluster is destroyed. this provider will resize any Instance Group to zero when destroying the resource.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {
    clusterId: tf_test_cluster.id,
    instanceCount: 1,
    instanceType: "m5.xlarge",
    name: "my little instance group",
});
Copy
import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task",
    cluster_id=tf_test_cluster["id"],
    instance_count=1,
    instance_type="m5.xlarge",
    name="my little instance group")
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ClusterId:     pulumi.Any(tf_test_cluster.Id),
			InstanceCount: pulumi.Int(1),
			InstanceType:  pulumi.String("m5.xlarge"),
			Name:          pulumi.String("my little instance group"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ClusterId = tf_test_cluster.Id,
        InstanceCount = 1,
        InstanceType = "m5.xlarge",
        Name = "my little instance group",
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .clusterId(tf_test_cluster.id())
            .instanceCount(1)
            .instanceType("m5.xlarge")
            .name("my little instance group")
            .build());

    }
}
Copy
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      clusterId: ${["tf-test-cluster"].id}
      instanceCount: 1
      instanceType: m5.xlarge
      name: my little instance group
Copy

Create InstanceGroup Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new InstanceGroup(name: string, args: InstanceGroupArgs, opts?: CustomResourceOptions);
@overload
def InstanceGroup(resource_name: str,
                  args: InstanceGroupArgs,
                  opts: Optional[ResourceOptions] = None)

@overload
def InstanceGroup(resource_name: str,
                  opts: Optional[ResourceOptions] = None,
                  cluster_id: Optional[str] = None,
                  instance_type: Optional[str] = None,
                  autoscaling_policy: Optional[str] = None,
                  bid_price: Optional[str] = None,
                  configurations_json: Optional[str] = None,
                  ebs_configs: Optional[Sequence[InstanceGroupEbsConfigArgs]] = None,
                  ebs_optimized: Optional[bool] = None,
                  instance_count: Optional[int] = None,
                  name: Optional[str] = None)
func NewInstanceGroup(ctx *Context, name string, args InstanceGroupArgs, opts ...ResourceOption) (*InstanceGroup, error)
public InstanceGroup(string name, InstanceGroupArgs args, CustomResourceOptions? opts = null)
public InstanceGroup(String name, InstanceGroupArgs args)
public InstanceGroup(String name, InstanceGroupArgs args, CustomResourceOptions options)
type: aws:emr:InstanceGroup
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. InstanceGroupArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. InstanceGroupArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. InstanceGroupArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. InstanceGroupArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. InstanceGroupArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var instanceGroupResource = new Aws.Emr.InstanceGroup("instanceGroupResource", new()
{
    ClusterId = "string",
    InstanceType = "string",
    AutoscalingPolicy = "string",
    BidPrice = "string",
    ConfigurationsJson = "string",
    EbsConfigs = new[]
    {
        new Aws.Emr.Inputs.InstanceGroupEbsConfigArgs
        {
            Size = 0,
            Type = "string",
            Iops = 0,
            VolumesPerInstance = 0,
        },
    },
    EbsOptimized = false,
    InstanceCount = 0,
    Name = "string",
});
Copy
example, err := emr.NewInstanceGroup(ctx, "instanceGroupResource", &emr.InstanceGroupArgs{
	ClusterId:          pulumi.String("string"),
	InstanceType:       pulumi.String("string"),
	AutoscalingPolicy:  pulumi.String("string"),
	BidPrice:           pulumi.String("string"),
	ConfigurationsJson: pulumi.String("string"),
	EbsConfigs: emr.InstanceGroupEbsConfigArray{
		&emr.InstanceGroupEbsConfigArgs{
			Size:               pulumi.Int(0),
			Type:               pulumi.String("string"),
			Iops:               pulumi.Int(0),
			VolumesPerInstance: pulumi.Int(0),
		},
	},
	EbsOptimized:  pulumi.Bool(false),
	InstanceCount: pulumi.Int(0),
	Name:          pulumi.String("string"),
})
Copy
var instanceGroupResource = new InstanceGroup("instanceGroupResource", InstanceGroupArgs.builder()
    .clusterId("string")
    .instanceType("string")
    .autoscalingPolicy("string")
    .bidPrice("string")
    .configurationsJson("string")
    .ebsConfigs(InstanceGroupEbsConfigArgs.builder()
        .size(0)
        .type("string")
        .iops(0)
        .volumesPerInstance(0)
        .build())
    .ebsOptimized(false)
    .instanceCount(0)
    .name("string")
    .build());
Copy
instance_group_resource = aws.emr.InstanceGroup("instanceGroupResource",
    cluster_id="string",
    instance_type="string",
    autoscaling_policy="string",
    bid_price="string",
    configurations_json="string",
    ebs_configs=[{
        "size": 0,
        "type": "string",
        "iops": 0,
        "volumes_per_instance": 0,
    }],
    ebs_optimized=False,
    instance_count=0,
    name="string")
Copy
const instanceGroupResource = new aws.emr.InstanceGroup("instanceGroupResource", {
    clusterId: "string",
    instanceType: "string",
    autoscalingPolicy: "string",
    bidPrice: "string",
    configurationsJson: "string",
    ebsConfigs: [{
        size: 0,
        type: "string",
        iops: 0,
        volumesPerInstance: 0,
    }],
    ebsOptimized: false,
    instanceCount: 0,
    name: "string",
});
Copy
type: aws:emr:InstanceGroup
properties:
    autoscalingPolicy: string
    bidPrice: string
    clusterId: string
    configurationsJson: string
    ebsConfigs:
        - iops: 0
          size: 0
          type: string
          volumesPerInstance: 0
    ebsOptimized: false
    instanceCount: 0
    instanceType: string
    name: string
Copy

InstanceGroup Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The InstanceGroup resource accepts the following input properties:

ClusterId
This property is required.
Changes to this property will trigger replacement.
string
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
InstanceType
This property is required.
Changes to this property will trigger replacement.
string
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
AutoscalingPolicy string
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
BidPrice Changes to this property will trigger replacement. string
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ConfigurationsJson string
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="ebsconfigs_csharp">

EbsConfigs Changes to this property will trigger replacement. List<InstanceGroupEbsConfig>

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
EbsOptimized Changes to this property will trigger replacement. bool
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
InstanceCount int
target number of instances for the instance group. defaults to 0.
Name Changes to this property will trigger replacement. string
Human friendly name given to the instance group. Changing this forces a new resource to be created.

ClusterId
This property is required.
Changes to this property will trigger replacement.
string
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
InstanceType
This property is required.
Changes to this property will trigger replacement.
string
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
AutoscalingPolicy string
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
BidPrice Changes to this property will trigger replacement. string
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ConfigurationsJson string
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="ebsconfigs_go">

EbsConfigs Changes to this property will trigger replacement. []InstanceGroupEbsConfigArgs

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
EbsOptimized Changes to this property will trigger replacement. bool
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
InstanceCount int
target number of instances for the instance group. defaults to 0.
Name Changes to this property will trigger replacement. string
Human friendly name given to the instance group. Changing this forces a new resource to be created.

clusterId
This property is required.
Changes to this property will trigger replacement.
String
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
instanceType
This property is required.
Changes to this property will trigger replacement.
String
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
autoscalingPolicy String
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
bidPrice Changes to this property will trigger replacement. String
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
configurationsJson String
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="ebsconfigs_java">

ebsConfigs Changes to this property will trigger replacement. List<InstanceGroupEbsConfig>

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
ebsOptimized Changes to this property will trigger replacement. Boolean
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
instanceCount Integer
target number of instances for the instance group. defaults to 0.
name Changes to this property will trigger replacement. String
Human friendly name given to the instance group. Changing this forces a new resource to be created.

clusterId
This property is required.
Changes to this property will trigger replacement.
string
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
instanceType
This property is required.
Changes to this property will trigger replacement.
string
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
autoscalingPolicy string
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
bidPrice Changes to this property will trigger replacement. string
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
configurationsJson string
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="ebsconfigs_nodejs">

ebsConfigs Changes to this property will trigger replacement. InstanceGroupEbsConfig[]

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
ebsOptimized Changes to this property will trigger replacement. boolean
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
instanceCount number
target number of instances for the instance group. defaults to 0.
name Changes to this property will trigger replacement. string
Human friendly name given to the instance group. Changing this forces a new resource to be created.

cluster_id
This property is required.
Changes to this property will trigger replacement.
str
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
instance_type
This property is required.
Changes to this property will trigger replacement.
str
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
autoscaling_policy str
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
bid_price Changes to this property will trigger replacement. str
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
configurations_json str
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="ebs_configs_python">

ebs_configs Changes to this property will trigger replacement. Sequence[InstanceGroupEbsConfigArgs]

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
ebs_optimized Changes to this property will trigger replacement. bool
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
instance_count int
target number of instances for the instance group. defaults to 0.
name Changes to this property will trigger replacement. str
Human friendly name given to the instance group. Changing this forces a new resource to be created.

clusterId
This property is required.
Changes to this property will trigger replacement.
String
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
instanceType
This property is required.
Changes to this property will trigger replacement.
String
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
autoscalingPolicy String
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
bidPrice Changes to this property will trigger replacement. String
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
configurationsJson String
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="ebsconfigs_yaml">

ebsConfigs Changes to this property will trigger replacement. List<Property Map>

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
ebsOptimized Changes to this property will trigger replacement. Boolean
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
instanceCount Number
target number of instances for the instance group. defaults to 0.
name Changes to this property will trigger replacement. String
Human friendly name given to the instance group. Changing this forces a new resource to be created.

Outputs

All input properties are implicitly available as output properties. Additionally, the InstanceGroup resource produces the following output properties:

Id string
The provider-assigned unique ID for this managed resource.
RunningInstanceCount int
The number of instances currently running in this instance group.
Status string
The current status of the instance group.
Id string
The provider-assigned unique ID for this managed resource.
RunningInstanceCount int
The number of instances currently running in this instance group.
Status string
The current status of the instance group.
id String
The provider-assigned unique ID for this managed resource.
runningInstanceCount Integer
The number of instances currently running in this instance group.
status String
The current status of the instance group.
id string
The provider-assigned unique ID for this managed resource.
runningInstanceCount number
The number of instances currently running in this instance group.
status string
The current status of the instance group.
id str
The provider-assigned unique ID for this managed resource.
running_instance_count int
The number of instances currently running in this instance group.
status str
The current status of the instance group.
id String
The provider-assigned unique ID for this managed resource.
runningInstanceCount Number
The number of instances currently running in this instance group.
status String
The current status of the instance group.

Look up Existing InstanceGroup Resource

Get an existing InstanceGroup resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: InstanceGroupState, opts?: CustomResourceOptions): InstanceGroup
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        autoscaling_policy: Optional[str] = None,
        bid_price: Optional[str] = None,
        cluster_id: Optional[str] = None,
        configurations_json: Optional[str] = None,
        ebs_configs: Optional[Sequence[InstanceGroupEbsConfigArgs]] = None,
        ebs_optimized: Optional[bool] = None,
        instance_count: Optional[int] = None,
        instance_type: Optional[str] = None,
        name: Optional[str] = None,
        running_instance_count: Optional[int] = None,
        status: Optional[str] = None) -> InstanceGroup
func GetInstanceGroup(ctx *Context, name string, id IDInput, state *InstanceGroupState, opts ...ResourceOption) (*InstanceGroup, error)
public static InstanceGroup Get(string name, Input<string> id, InstanceGroupState? state, CustomResourceOptions? opts = null)
public static InstanceGroup get(String name, Output<String> id, InstanceGroupState state, CustomResourceOptions options)
resources:  _:    type: aws:emr:InstanceGroup    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
AutoscalingPolicy string
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
BidPrice Changes to this property will trigger replacement. string
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ClusterId Changes to this property will trigger replacement. string
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
ConfigurationsJson string
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="state_ebsconfigs_csharp">

EbsConfigs Changes to this property will trigger replacement. List<InstanceGroupEbsConfig>

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
EbsOptimized Changes to this property will trigger replacement. bool
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
InstanceCount int
target number of instances for the instance group. defaults to 0.
InstanceType Changes to this property will trigger replacement. string
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
Name Changes to this property will trigger replacement. string
Human friendly name given to the instance group. Changing this forces a new resource to be created.
RunningInstanceCount int
The number of instances currently running in this instance group.
Status string
The current status of the instance group.

AutoscalingPolicy string
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
BidPrice Changes to this property will trigger replacement. string
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ClusterId Changes to this property will trigger replacement. string
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
ConfigurationsJson string
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="state_ebsconfigs_go">

EbsConfigs Changes to this property will trigger replacement. []InstanceGroupEbsConfigArgs

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
EbsOptimized Changes to this property will trigger replacement. bool
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
InstanceCount int
target number of instances for the instance group. defaults to 0.
InstanceType Changes to this property will trigger replacement. string
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
Name Changes to this property will trigger replacement. string
Human friendly name given to the instance group. Changing this forces a new resource to be created.
RunningInstanceCount int
The number of instances currently running in this instance group.
Status string
The current status of the instance group.

autoscalingPolicy String
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
bidPrice Changes to this property will trigger replacement. String
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
clusterId Changes to this property will trigger replacement. String
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
configurationsJson String
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="state_ebsconfigs_java">

ebsConfigs Changes to this property will trigger replacement. List<InstanceGroupEbsConfig>

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
ebsOptimized Changes to this property will trigger replacement. Boolean
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
instanceCount Integer
target number of instances for the instance group. defaults to 0.
instanceType Changes to this property will trigger replacement. String
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. String
Human friendly name given to the instance group. Changing this forces a new resource to be created.
runningInstanceCount Integer
The number of instances currently running in this instance group.
status String
The current status of the instance group.

autoscalingPolicy string
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
bidPrice Changes to this property will trigger replacement. string
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
clusterId Changes to this property will trigger replacement. string
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
configurationsJson string
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="state_ebsconfigs_nodejs">

ebsConfigs Changes to this property will trigger replacement. InstanceGroupEbsConfig[]

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
ebsOptimized Changes to this property will trigger replacement. boolean
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
instanceCount number
target number of instances for the instance group. defaults to 0.
instanceType Changes to this property will trigger replacement. string
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. string
Human friendly name given to the instance group. Changing this forces a new resource to be created.
runningInstanceCount number
The number of instances currently running in this instance group.
status string
The current status of the instance group.

autoscaling_policy str
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
bid_price Changes to this property will trigger replacement. str
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
cluster_id Changes to this property will trigger replacement. str
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
configurations_json str
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="state_ebs_configs_python">

ebs_configs Changes to this property will trigger replacement. Sequence[InstanceGroupEbsConfigArgs]

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
ebs_optimized Changes to this property will trigger replacement. bool
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
instance_count int
target number of instances for the instance group. defaults to 0.
instance_type Changes to this property will trigger replacement. str
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. str
Human friendly name given to the instance group. Changing this forces a new resource to be created.
running_instance_count int
The number of instances currently running in this instance group.
status str
The current status of the instance group.

autoscalingPolicy String
The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
bidPrice Changes to this property will trigger replacement. String
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
clusterId Changes to this property will trigger replacement. String
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
configurationsJson String
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

task = aws.emr.InstanceGroup("task", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var task = new Aws.Emr.InstanceGroup("task", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var task = new InstanceGroup("task", InstanceGroupArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  task:
    type: aws:emr:InstanceGroup
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
title="Optional"> <span id="state_ebsconfigs_yaml">

ebsConfigs Changes to this property will trigger replacement. List<Property Map>

One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
ebsOptimized Changes to this property will trigger replacement. Boolean
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
instanceCount Number
target number of instances for the instance group. defaults to 0.
instanceType Changes to this property will trigger replacement. String
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. String
Human friendly name given to the instance group. Changing this forces a new resource to be created.
runningInstanceCount Number
The number of instances currently running in this instance group.
status String
The current status of the instance group.

Supporting Types

InstanceGroupEbsConfig
, InstanceGroupEbsConfigArgs

Size
This property is required.
Changes to this property will trigger replacement.
int
The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
Type
This property is required.
Changes to this property will trigger replacement.
string
The volume type. Valid options are 'gp2', 'io1' and 'standard'.
Iops Changes to this property will trigger replacement. int
The number of I/O operations per second (IOPS) that the volume supports.
VolumesPerInstance Changes to this property will trigger replacement. int
The number of EBS Volumes to attach per instance.
Size
This property is required.
Changes to this property will trigger replacement.
int
The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
Type
This property is required.
Changes to this property will trigger replacement.
string
The volume type. Valid options are 'gp2', 'io1' and 'standard'.
Iops Changes to this property will trigger replacement. int
The number of I/O operations per second (IOPS) that the volume supports.
VolumesPerInstance Changes to this property will trigger replacement. int
The number of EBS Volumes to attach per instance.
size
This property is required.
Changes to this property will trigger replacement.
Integer
The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
type
This property is required.
Changes to this property will trigger replacement.
String
The volume type. Valid options are 'gp2', 'io1' and 'standard'.
iops Changes to this property will trigger replacement. Integer
The number of I/O operations per second (IOPS) that the volume supports.
volumesPerInstance Changes to this property will trigger replacement. Integer
The number of EBS Volumes to attach per instance.
size
This property is required.
Changes to this property will trigger replacement.
number
The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
type
This property is required.
Changes to this property will trigger replacement.
string
The volume type. Valid options are 'gp2', 'io1' and 'standard'.
iops Changes to this property will trigger replacement. number
The number of I/O operations per second (IOPS) that the volume supports.
volumesPerInstance Changes to this property will trigger replacement. number
The number of EBS Volumes to attach per instance.
size
This property is required.
Changes to this property will trigger replacement.
int
The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
type
This property is required.
Changes to this property will trigger replacement.
str
The volume type. Valid options are 'gp2', 'io1' and 'standard'.
iops Changes to this property will trigger replacement. int
The number of I/O operations per second (IOPS) that the volume supports.
volumes_per_instance Changes to this property will trigger replacement. int
The number of EBS Volumes to attach per instance.
size
This property is required.
Changes to this property will trigger replacement.
Number
The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
type
This property is required.
Changes to this property will trigger replacement.
String
The volume type. Valid options are 'gp2', 'io1' and 'standard'.
iops Changes to this property will trigger replacement. Number
The number of I/O operations per second (IOPS) that the volume supports.
volumesPerInstance Changes to this property will trigger replacement. Number
The number of EBS Volumes to attach per instance.

Import

Using pulumi import, import EMR task instance group using their EMR Cluster id and Instance Group id separated by a forward-slash /. For example:

$ pulumi import aws:emr/instanceGroup:InstanceGroup task_group j-123456ABCDEF/ig-15EK4O09RZLNR
Copy

To learn more about importing existing cloud resources, see Importing resources.

Package Details

Repository
AWS Classic pulumi/pulumi-aws
License
Apache-2.0
Notes
This Pulumi package is based on the aws Terraform Provider.