EnvironmentEC2

class EnvironmentEC2 : KotlinCustomResource

Provides a Cloud9 EC2 Development Environment.

Example Usage

Basic usage:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.cloud9.EnvironmentEC2("example", {
instanceType: "t2.micro",
name: "example-env",
imageId: "amazonlinux-2023-x86_64",
});
import pulumi
import pulumi_aws as aws
example = aws.cloud9.EnvironmentEC2("example",
instance_type="t2.micro",
name="example-env",
image_id="amazonlinux-2023-x86_64")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Cloud9.EnvironmentEC2("example", new()
{
InstanceType = "t2.micro",
Name = "example-env",
ImageId = "amazonlinux-2023-x86_64",
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloud9"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := cloud9.NewEnvironmentEC2(ctx, "example", &cloud9.EnvironmentEC2Args{
InstanceType: pulumi.String("t2.micro"),
Name: pulumi.String("example-env"),
ImageId: pulumi.String("amazonlinux-2023-x86_64"),
})
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.cloud9.EnvironmentEC2;
import com.pulumi.aws.cloud9.EnvironmentEC2Args;
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 example = new EnvironmentEC2("example", EnvironmentEC2Args.builder()
.instanceType("t2.micro")
.name("example-env")
.imageId("amazonlinux-2023-x86_64")
.build());
}
}
resources:
example:
type: aws:cloud9:EnvironmentEC2
properties:
instanceType: t2.micro
name: example-env
imageId: amazonlinux-2023-x86_64

Get the URL of the Cloud9 environment after creation:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.cloud9.EnvironmentEC2("example", {instanceType: "t2.micro"});
const cloud9Instance = aws.ec2.getInstanceOutput({
filters: [{
name: "tag:aws:cloud9:environment",
values: [example.id],
}],
});
export const cloud9Url = pulumi.interpolate`https://${region}.console.aws.amazon.com/cloud9/ide/${example.id}`;
import pulumi
import pulumi_aws as aws
example = aws.cloud9.EnvironmentEC2("example", instance_type="t2.micro")
cloud9_instance = aws.ec2.get_instance_output(filters=[{
"name": "tag:aws:cloud9:environment",
"values": [example.id],
}])
pulumi.export("cloud9Url", example.id.apply(lambda id: f"https://{region}.console.aws.amazon.com/cloud9/ide/{id}"))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Cloud9.EnvironmentEC2("example", new()
{
InstanceType = "t2.micro",
});
var cloud9Instance = Aws.Ec2.GetInstance.Invoke(new()
{
Filters = new[]
{
new Aws.Ec2.Inputs.GetInstanceFilterInputArgs
{
Name = "tag:aws:cloud9:environment",
Values = new[]
{
example.Id,
},
},
},
});
return new Dictionary<string, object?>
{
["cloud9Url"] = example.Id.Apply(id => $"https://{region}.console.aws.amazon.com/cloud9/ide/{id}"),
};
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloud9"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := cloud9.NewEnvironmentEC2(ctx, "example", &cloud9.EnvironmentEC2Args{
InstanceType: pulumi.String("t2.micro"),
})
if err != nil {
return err
}
_ = ec2.LookupInstanceOutput(ctx, ec2.GetInstanceOutputArgs{
Filters: ec2.GetInstanceFilterArray{
&ec2.GetInstanceFilterArgs{
Name: pulumi.String("tag:aws:cloud9:environment"),
Values: pulumi.StringArray{
example.ID(),
},
},
},
}, nil)
ctx.Export("cloud9Url", example.ID().ApplyT(func(id string) (string, error) {
return fmt.Sprintf("https://%v.console.aws.amazon.com/cloud9/ide/%v", region, id), nil
}).(pulumi.StringOutput))
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloud9.EnvironmentEC2;
import com.pulumi.aws.cloud9.EnvironmentEC2Args;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetInstanceArgs;
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 example = new EnvironmentEC2("example", EnvironmentEC2Args.builder()
.instanceType("t2.micro")
.build());
final var cloud9Instance = Ec2Functions.getInstance(GetInstanceArgs.builder()
.filters(GetInstanceFilterArgs.builder()
.name("tag:aws:cloud9:environment")
.values(example.id())
.build())
.build());
ctx.export("cloud9Url", example.id().applyValue(id -> String.format("https://%s.console.aws.amazon.com/cloud9/ide/%s", region,id)));
}
}
resources:
example:
type: aws:cloud9:EnvironmentEC2
properties:
instanceType: t2.micro
variables:
cloud9Instance:
fn::invoke:
function: aws:ec2:getInstance
arguments:
filters:
- name: tag:aws:cloud9:environment
values:
- ${example.id}
outputs:
cloud9Url: https://${region}.console.aws.amazon.com/cloud9/ide/${example.id}

Allocate a static IP to the Cloud9 environment:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.cloud9.EnvironmentEC2("example", {instanceType: "t2.micro"});
const cloud9Instance = aws.ec2.getInstanceOutput({
filters: [{
name: "tag:aws:cloud9:environment",
values: [example&#46;id],
}],
});
const cloud9Eip = new aws.ec2.Eip("cloud9_eip", {
instance: cloud9Instance.apply(cloud9Instance => cloud9Instance.id),
domain: "vpc",
});
export const cloud9PublicIp = cloud9Eip.publicIp;
import pulumi
import pulumi_aws as aws
example = aws.cloud9.EnvironmentEC2("example", instance_type="t2.micro")
cloud9_instance = aws.ec2.get_instance_output(filters=[{
"name": "tag:aws:cloud9:environment",
"values": [example&#46;id],
}])
cloud9_eip = aws.ec2.Eip("cloud9_eip",
instance=cloud9_instance.id,
domain="vpc")
pulumi.export("cloud9PublicIp", cloud9_eip.public_ip)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Cloud9.EnvironmentEC2("example", new()
{
InstanceType = "t2.micro",
});
var cloud9Instance = Aws.Ec2.GetInstance.Invoke(new()
{
Filters = new[]
{
new Aws.Ec2.Inputs.GetInstanceFilterInputArgs
{
Name = "tag:aws:cloud9:environment",
Values = new[]
{
example.Id,
},
},
},
});
var cloud9Eip = new Aws.Ec2.Eip("cloud9_eip", new()
{
Instance = cloud9Instance.Apply(getInstanceResult => getInstanceResult.Id),
Domain = "vpc",
});
return new Dictionary<string, object?>
{
["cloud9PublicIp"] = cloud9Eip.PublicIp,
};
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloud9"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := cloud9.NewEnvironmentEC2(ctx, "example", &cloud9.EnvironmentEC2Args{
InstanceType: pulumi.String("t2.micro"),
})
if err != nil {
return err
}
cloud9Instance := ec2.LookupInstanceOutput(ctx, ec2.GetInstanceOutputArgs{
Filters: ec2.GetInstanceFilterArray{
&ec2.GetInstanceFilterArgs{
Name: pulumi.String("tag:aws:cloud9:environment"),
Values: pulumi.StringArray{
example.ID(),
},
},
},
}, nil)
cloud9Eip, err := ec2.NewEip(ctx, "cloud9_eip", &ec2.EipArgs{
Instance: pulumi.String(cloud9Instance.ApplyT(func(cloud9Instance ec2.GetInstanceResult) (*string, error) {
return &cloud9Instance.Id, nil
}).(pulumi.StringPtrOutput)),
Domain: pulumi.String("vpc"),
})
if err != nil {
return err
}
ctx.Export("cloud9PublicIp", cloud9Eip.PublicIp)
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloud9.EnvironmentEC2;
import com.pulumi.aws.cloud9.EnvironmentEC2Args;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetInstanceArgs;
import com.pulumi.aws.ec2.Eip;
import com.pulumi.aws.ec2.EipArgs;
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 example = new EnvironmentEC2("example", EnvironmentEC2Args.builder()
.instanceType("t2.micro")
.build());
final var cloud9Instance = Ec2Functions.getInstance(GetInstanceArgs.builder()
.filters(GetInstanceFilterArgs.builder()
.name("tag:aws:cloud9:environment")
.values(example.id())
.build())
.build());
var cloud9Eip = new Eip("cloud9Eip", EipArgs.builder()
.instance(cloud9Instance.applyValue(getInstanceResult -> getInstanceResult).applyValue(cloud9Instance -> cloud9Instance.applyValue(getInstanceResult -> getInstanceResult.id())))
.domain("vpc")
.build());
ctx.export("cloud9PublicIp", cloud9Eip.publicIp());
}
}
resources:
example:
type: aws:cloud9:EnvironmentEC2
properties:
instanceType: t2.micro
cloud9Eip:
type: aws:ec2:Eip
name: cloud9_eip
properties:
instance: ${cloud9Instance.id}
domain: vpc
variables:
cloud9Instance:
fn::invoke:
function: aws:ec2:getInstance
arguments:
filters:
- name: tag:aws:cloud9:environment
values:
- ${example.id}
outputs:
cloud9PublicIp: ${cloud9Eip.publicIp}

Properties

Link copied to clipboard
val arn: Output<String>

The ARN of the environment.

Link copied to clipboard

The number of minutes until the running instance is shut down after the environment has last been used.

Link copied to clipboard
val connectionType: Output<String>?

The connection type used for connecting to an Amazon EC2 environment. Valid values are CONNECT_SSH and CONNECT_SSM. For more information please refer AWS documentation for Cloud9.

Link copied to clipboard
val description: Output<String>?

The description of the environment.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val imageId: Output<String>

The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. Valid values are

Link copied to clipboard
val instanceType: Output<String>

The type of instance to connect to the environment, e.g., t2.micro.

Link copied to clipboard
val name: Output<String>

The name of the environment.

Link copied to clipboard
val ownerArn: Output<String>

The ARN of the environment owner. This can be ARN of any AWS IAM principal. Defaults to the environment's creator.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val subnetId: Output<String>?

The ID of the subnet in Amazon VPC that AWS Cloud9 will use to communicate with the Amazon EC2 instance.

Link copied to clipboard
val tags: Output<Map<String, String>>?

Key-value map of resource tags. .If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Link copied to clipboard
val tagsAll: Output<Map<String, String>>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Link copied to clipboard
val type: Output<String>

The type of the environment (e.g., ssh or ec2).

Link copied to clipboard
val urn: Output<String>