AWS Cloud9

基于浏览器的集成开发环境,在 EC2 实例上提供编码、调试和终端环境的服务

概述

AWS Cloud9 是一个仅通过浏览器即可编写、运行和调试代码的云端集成开发环境 (IDE)。后端使用 EC2 实例或 SSH 连接的服务器,提供 40 多种编程语言的语法高亮、代码补全和终端访问。预装了 AWS CLI 和 SAM CLI,与 Lambda 函数本地测试和 CloudFormation 模板编辑等 AWS 开发工作流深度集成是其特色。

环境类型与 EC2 实例生命周期

Cloud9 的环境分为 EC2 环境和 SSH 环境两种。EC2 环境由 Cloud9 自动启动和管理 EC2 实例,关闭 IDE 后经过一定时间 (默认 30 分钟) 会自动停止实例。这种自动休眠功能可以降低非开发时段的成本。实例类型可从 t2.micro 到 m5.large 中选择,机器学习原型开发等需要计算资源时可指定较大的实例。SSH 环境是连接到现有本地服务器或其他云实例的方式,适用于仅需使用 Cloud9 编辑器功能的场景。EC2 环境的存储默认为 10 GB EBS 卷,但 Docker 镜像构建或大型项目可能不够用,因此环境创建后运行 EBS 卷扩展脚本是常见的运维做法。通过指定 VPC 和子网,可以构建能直接访问私有子网内资源的开发环境。

协作功能与实时共同编辑

Cloud9 的突出功能是实时协作。环境所有者邀请其他 IAM 用户后,多名工程师可以同时编辑同一文件,各用户的光标位置会实时显示。在远程进行结对编程或代码审查时,比屏幕共享工具更高效。邀请时可将访问权限设置为只读 (read-only) 或读写 (read-write),可以实现资深工程师实时审查初级工程师代码并指导的使用方式。共享环境中终端也是共享的,所有人可以同时查看命令执行结果。但需要注意,终端共享是在同一 OS 用户下执行的,进行敏感操作 (查看密钥等) 时需谨慎。还内置了聊天功能,可以一边讨论代码的特定行一边进行修改。

AWS 服务集成与 SAM 本地测试

Cloud9 环境预装了 AWS CLI、SAM CLI、Git、Docker,无需环境搭建即可开始 AWS 开发。在 Lambda 函数开发中,使用 SAM CLI 的本地测试特别方便。通过 sam local invoke 命令在本地 Docker 容器中运行 Lambda 函数,可以在接近实际运行时环境的状态下进行调试。Cloud9 的内置调试器支持 Node.js 和 Python 的单步执行,断点设置、变量监视、调用栈确认都可以在 IDE 中完成。编辑 CloudFormation 模板时,YAML 语法高亮和自动缩进生效,资源类型的输入补全也可用。IAM 认证信息通过 EC2 实例配置文件自动获取,无需硬编码访问密钥。启用 AWS Toolkit 插件后,可以从 IDE 侧边栏直接操作 Lambda 函数列表查看、CloudWatch Logs 浏览、S3 存储桶浏览等。

共有するXB!