@aws-cdk/aws-cloud9-alpha

中文文档
2.275.0-alpha.0发布于 2026/10/27Apache-2.0TypeScriptCommonJS零依赖近 30 天下载 3233

AWS 的 CDK 构造库: Cloud9

中文使用文档
文档目录5 节
  1. 创建 EC2 环境
  2. 指定EC2 AMI
  3. 克隆存储器
  4. 指定所有者
  5. 自动榴弹

AWS Cloud9 构造库


cdk-constructs: Experimental

本单元中更高层次的构件的API是实验性的并正在积极开发中. 在今后任何版本中,它们都须作非背向相容的修改或去除。 这些是 不适用 语义版本 模型和断开的更改 在发行笔记中宣布. 这意味着虽然你可能使用它们,但可能需要更新 当更新到此软件包的更新版本时,您的源代码.


这个模块是 AWS 云开发套件 项目.

AWS Cloud9 是一个以云为基础的集成开发环境(IDE),它允许您仅用一个来写、运行和调试您的代码 浏览器. 它包括一个代码编辑器,调试器,和终端. "Cloud9"预装了流行的基本工具 编程语言, 包括 JavaScript、 Python、 PHP 等, 因此不需要安装文件或配置 开发机器以启动新项目。 由于您的 Cloud9 IDE 以云为主, 您可以从您的文档中进行您的工程 办公室 家 或任何使用互联网连接的机器的地方 Cloud9还为发展提供了无缝的经验 无服务器应用程序使您能够轻松定义资源,调试,并在本地和远程执行之间切换 无服务器应用程序。 有了Cloud9,你就可以很快地与团队分享你的开发环境,使你能够配对 程序和实时跟踪对方的投入.

创建 EC2 环境

EC2 环境定义为: Ec2Environment中创建 EC2 环境 subnetSelection 专用 subnetType。 。 。 .

// create a cloud9 ec2 environment in a new VPC
const vpc = new ec2.Vpc(this, 'VPC', { maxAzs: 3});
new cloud9.Ec2Environment(this, 'Cloud9Env', { vpc, imageId: cloud9.ImageId.AMAZON_LINUX_2, });

// or create the cloud9 environment in the default VPC with specific instanceType
const defaultVpc = ec2.Vpc.fromLookup(this, 'DefaultVPC', { isDefault: true });
new cloud9.Ec2Environment(this, 'Cloud9Env2', {
  vpc: defaultVpc,
  instanceType: new ec2.InstanceType('t3.large'),
  imageId: cloud9.ImageId.AMAZON_LINUX_2,
});

// or specify in a different subnetSelection
const c9env = new cloud9.Ec2Environment(this, 'Cloud9Env3', {
  vpc,
  subnetSelection: {
    subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
  },
  imageId: cloud9.ImageId.AMAZON_LINUX_2,
});

// print the Cloud9 IDE URL in the output
new CfnOutput(this, 'URL', { value: c9env.ideUrl });

指定EC2 AMI

使用 imageId 指定要使用的 EC2 AMI 图像:

const defaultVpc = ec2.Vpc.fromLookup(this, 'DefaultVPC', { isDefault: true });
new cloud9.Ec2Environment(this, 'Cloud9Env2', {
  vpc: defaultVpc,
  instanceType: new ec2.InstanceType('t3.large'),
  imageId: cloud9.ImageId.UBUNTU_18_04,
});

克隆存储器

使用 clonedRepositories 以复制一个或多个 AWS 编码寄存器到环境中 :

import * as codecommit from 'aws-cdk-lib/aws-codecommit';

// create a codecommit repository to clone into the cloud9 environment
const repoNew = new codecommit.Repository(this, 'RepoNew', {
  repositoryName: 'new-repo',
});

// import an existing codecommit repository to clone into the cloud9 environment
const repoExisting = codecommit.Repository.fromRepositoryName(this, 'RepoExisting', 'existing-repo');

// create a new Cloud9 environment and clone the two repositories
declare const vpc: ec2.Vpc;
new cloud9.Ec2Environment(this, 'C9Env', {
  vpc,
  clonedRepositories: [
    cloud9.CloneRepository.fromCodeCommit(repoNew, '/src/new-repo'),
    cloud9.CloneRepository.fromCodeCommit(repoExisting, '/src/existing-repo'),
  ],
  imageId: cloud9.ImageId.AMAZON_LINUX_2,
});

指定所有者

每个Cloud9环境都有 拥有者拥有者完全控制环境,可以邀请更多的成员参与环境合作。 更多信息见 AWS Cloud9 与共享环境合作) (中文(简体) ).

默认情况下, 所有者将是创建环境的身份, 当环境使用 CloudFormation 创建时, 这最有可能是您的 CloudFormation 执行角色 。 提供方 owner 属性来指定不同的所有者,无论是特定的 IAM 用户还是 AWS 账户根用户.

Owner 是一个拥有Cloud9环境的IAM实体. Owner 拥有自己的访问权限和资源。 您可以指定一个 Owner在EC2环境中,可分为以下类型:

  1. 账户根
  2. IAM 用户
  3. IAM 联邦用户
  4. IAM 假定的作用

所有者的ARN必须满足下列正则表达式: ^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(iam|sts)::\d+:(root|(user\/[\w+=/:,.@-]{1,64}|federated-user\/[\w+=/:,.@-]{2,32}|assumed-role\/[\w+=:,.@-]{1,64}\/[\w+=,.@-]{1,64}))$

注:不建议使用账户根用户,参见 交流最佳做法。 。 。 .

要指定 AWS 账户根用户为环境所有者, 请使用 Owner.accountRoot()

declare const vpc: ec2.Vpc;
new cloud9.Ec2Environment(this, 'C9Env', {
  vpc,
  imageId: cloud9.ImageId.AMAZON_LINUX_2,
  owner: cloud9.Owner.accountRoot('111111111')
})

指定特定 IAM 用户为环境所有者,使用 Owner.user()。用户应当拥有 AWSCloud9Administrator 管理政策

用户应该拥有 AWSCloud9User (首选)或 AWSCloud9Administrator 附有管理的政策.

import * as iam from 'aws-cdk-lib/aws-iam';

const user = new iam.User(this, 'user');
user.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('AWSCloud9Administrator'));
declare const vpc: ec2.Vpc;
new cloud9.Ec2Environment(this, 'C9Env', {
  vpc,
  imageId: cloud9.ImageId.AMAZON_LINUX_2,

  owner: cloud9.Owner.user(user)
})

指定特定 IAM 联盟用户为环境所有者,使用 Owner.federatedUser(accountId, userName)。 。 。 .

用户应该拥有 AWSCloud9User (首选)或 AWSCloud9Administrator 附有管理的政策.

import * as iam from 'aws-cdk-lib/aws-iam';

declare const vpc: ec2.Vpc;
new cloud9.Ec2Environment(this, 'C9Env', {
  vpc,
  imageId: cloud9.ImageId.AMAZON_LINUX_2,
  owner: cloud9.Owner.federatedUser(Stack.of(this).account, "Admin/johndoe")
})

指定一个IAM作为环境所有者的角色,使用 Owner.assumedRole(accountId: string, roleName: string)。 。 。 .

该角色应具有: AWSCloud9User (首选)或 AWSCloud9Administrator 附有管理的政策.

import * as iam from 'aws-cdk-lib/aws-iam';

declare const vpc: ec2.Vpc;
new cloud9.Ec2Environment(this, 'C9Env', {
  vpc,
  imageId: cloud9.ImageId.AMAZON_LINUX_2,
  owner: cloud9.Owner.assumedRole(Stack.of(this).account, "Admin/johndoe-role")
})

自动榴弹

Cloud9环境可以自动启动并停止相关的EC2实例来降低成本.

使用 automaticStop 以指定在环境被最后一次使用后运行实例被关闭之前的分钟.

const defaultVpc = ec2.Vpc.fromLookup(this, 'DefaultVPC', { isDefault: true });
new cloud9.Ec2Environment(this, 'Cloud9Env2', {
  vpc: defaultVpc,
  imageId: cloud9.ImageId.AMAZON_LINUX_2,
  automaticStop: Duration.minutes(30),
});

版本与发布记录

@aws-cdk/aws-cloud9-alpha 共发布 380 个版本,首次发布于 2021/10/14;过去 12 个月发布了 64 个版本。

版本发布日期距今
2.275.0-alpha.0latest2026/10/2712 天前
2.274.0-alpha.02026/10/2018 天前
2.273.0-alpha.02026/10/0929 天前
2.272.0-alpha.02026/09/301 个月前
2.271.0-alpha.02026/09/261 个月前
2.270.0-alpha.02026/09/181 个月前

关于 @aws-cdk/aws-cloud9-alpha 的常见问题

@aws-cdk/aws-cloud9-alpha 是什么?

AWS 的 CDK 构造库: Cloud9

如何安装 @aws-cdk/aws-cloud9-alpha?

在项目目录运行 npm install @aws-cdk/aws-cloud9-alpha,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:constructs(^10.5.0)、aws-cdk-lib(^2.275.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws-cdk/aws-cloud9-alpha 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aws-cdk/aws-cloud9-alpha 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@aws-cdk/aws-cloud9-alpha 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 20.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aws-cdk/aws-cloud9-alpha 可以商用吗?

@aws-cdk/aws-cloud9-alpha 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws-cdk/aws-cloud9-alpha 的下载量有多少?

根据 npm 官方下载统计,@aws-cdk/aws-cloud9-alpha 在 2026/10/07 – 2026/11/05 这 30 天内被下载 3,233 次,日均约 108 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws-cdk/aws-cloud9-alpha 还在维护吗?

最新版本 2.275.0-alpha.0 发布于 2026/10/27(12 天前);至今共发布 380 个版本,其中过去 12 个月发布了 64 个;首次发布于 2021/10/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。