Skip to content

EnvironmentEC2 ​

The EnvironmentEC2 resource allows you to create and manage AWS Cloud9 EnvironmentEC2s for cloud-based development environments.

Minimal Example ​

Create a basic Cloud9 EnvironmentEC2 with required properties and a couple of optional settings.

ts
import AWS from "alchemy/aws/control";

const basicEnvironment = await AWS.Cloud9.EnvironmentEC2("basicEnvironment", {
  imageId: "ami-12345678", // Specify a valid AMI ID
  instanceType: "t2.micro", // Choose an appropriate instance type
  automaticStopTimeMinutes: 30, // Environment stops after 30 minutes of inactivity
  name: "MyBasicEnvironment" // Name your environment
});

Advanced Configuration ​

Configure a Cloud9 EnvironmentEC2 with additional options such as repository settings and custom tags.

ts
const advancedEnvironment = await AWS.Cloud9.EnvironmentEC2("advancedEnvironment", {
  imageId: "ami-12345678", // Specify a valid AMI ID
  instanceType: "t2.medium", // Choose a larger instance type for more resources
  automaticStopTimeMinutes: 15, // Environment stops after 15 minutes of inactivity
  repositories: [
    {
      pathComponent: "my-repo", // Path to the repository in the environment
      repositoryUrl: "https://github.com/my-org/my-repo.git" // URL to the Git repository
    }
  ],
  tags: [
    {
      key: "Environment",
      value: "Development"
    },
    {
      key: "Project",
      value: "MyProject"
    }
  ],
  name: "MyAdvancedEnvironment" // Name your environment
});

Custom Networking ​

Create an EnvironmentEC2 that specifies a subnet and owner ARN for advanced networking configurations.

ts
const networkedEnvironment = await AWS.Cloud9.EnvironmentEC2("networkedEnvironment", {
  imageId: "ami-12345678", // Specify a valid AMI ID
  instanceType: "t2.large", // Use a larger instance type
  subnetId: "subnet-0abc12345def67890", // Specify the subnet for the environment
  ownerArn: "arn:aws:iam::123456789012:user/my-user", // Specify the ARN of the owner
  description: "Development environment with custom networking." // Description of your environment
});

Adoption of Existing Resource ​

Use the adopt property to take over an existing Cloud9 EnvironmentEC2 without creating a new one.

ts
const adoptedEnvironment = await AWS.Cloud9.EnvironmentEC2("adoptedEnvironment", {
  imageId: "ami-12345678", // Specify a valid AMI ID
  instanceType: "t2.micro",
  adopt: true, // Adopt existing resource if it already exists
  name: "MyAdoptedEnvironment" // Name your environment
});