AWS CodeStar 项目模板 - AWS CodeStar

2024 年 7 月 31 日,亚马逊 Web Services (AWS) 将停止支持创建和查看 AWS CodeStar 项目。2024 年 7 月 31 日之后,您将无法再访问 AWS CodeStar 控制台或创建新项目。但是,由 AWS CodeStar创建的 AWS 资源(包括您的源存储库、管道和构建)将不受此更改的影响,并将继续运行。 AWS CodeStar 此次停用不会影响连接和 AWS CodeStar 通知。

 

如果您想跟踪工作、开发代码以及构建、测试和部署应用程序,Amazon CodeCatalyst 提供了简化的入门流程和其他功能来管理您的软件项目。详细了解 Amazon 的功能定价 CodeCatalyst。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS CodeStar 项目模板

通过 AWS CodeStar 项目模板,您可以从一个示例应用程序开始,使用事先创建的 AWS 资源部署该应用程序,以支持您的开发项目。当您选择一个 AWS CodeStar 项目模板时,系统将会为您预配置应用程序类型、编程语言和计算平台。创建具有 Web 应用程序、Web 服务,Alexa 技能和静态网页的项目后,您便可将示例应用程序替换为自己的应用程序。

在 AWS CodeStar 创建项目后,您可以修改支持应用程序交付的 AWS 资源。AWS CodeStar 与 AWS CloudFormation 配合使用,允许您使用代码在云创建支持服务和服务器/无服务器平台。借助 AWS CloudFormation,您可将整个基础设施建模在一个文本文件中。

AWS CodeStar 项目文件和资源

AWS CodeStar 项目是源代码和为部署代码而创建的资源的组合。帮助您构建、发布和部署您的代码的资源集合称为工具链资源。在创建项目期间,AWS CloudFormation 模板将工具链资源预配置在一个持续集成/持续部署 (CI/CD) 管道中。

根据您创建 AWS 资源的经验水平,您可以通过两种方式使用 AWS CodeStar 创建项目:

  • 当您使用控制台创建项目时,AWS CodeStar 会为您创建具有存储库的工具链资源,并用示例应用程序代码和项目文件填充存储库。使用控制台可根据一组预配置的项目选项快速设置示例项目。

  • 当您使用 CLI 创建项目时,您将提供创建工具链资源的 AWS CloudFormation 模板和应用程序源代码。使用 CLI 时允许 AWS CodeStar 从模板创建项目,然后用示例代码填充存储库。

一个提供单一管理点的 AWS CodeStar 项目。您可以使用控制台中的创建项目向导设置示例项目。然后,可将该项目用作管理您团队的权限和资源的协作平台。有关更多信息,请参阅什么是 AWS CodeStar?。当您使用控制台创建项目时,会将您的源代码作为示例代码提供,并会为您创建 CI/CD 工具链资源

在控制台中创建项目时,AWS CodeStar 预配置以下资源:

  • GitHub 或 CodeCommit 中的代码存储库。

  • 项目存储库中的 README.md 文件,提供文件和目录的详细信息。

  • 项目存储库中的 template.yml 文件,存储应用程序运行时堆栈的定义。使用此文件添加或修改不属于工具链资源的项目资源,如用于通知、数据库支持、监控和跟踪的 AWS 资源。

  • 与管道一起创建的 AWS 服务和资源,如 Amazon S3 构件存储桶、Amazon CloudWatch Events 及相关的服务角色。

  • 具有完整源代码和公有 HTTP 终端节点的一个运行中的示例应用程序。

  • AWS 计算资源,基于 AWS CodeStar 项目模板类型:

    • Lambda 函数。

    • 一个 Amazon EC2 实例。

    • 一个 AWS Elastic Beanstalk 环境。

  • 自太平洋夏令时 2018 年 12 月 6 日起:

    • 一个权限边界,它是用于控制对项目资源的访问的专用 IAM 策略。默认情况下,权限边界附加到示例项目中的角色。有关更多信息,请参阅工作线程角色的 IAM 权限边界

    • 用于使用 AWS CloudFormation 创建项目资源的 AWS CloudFormation IAM 角色,其中包括所有 AWS CloudFormation 支持的资源(包括 IAM 角色)的权限。

    • 工具链 IAM 角色。

    • 应用程序堆栈中定义的 Lambda 的执行角色,您可以修改它。

  • 在太平洋夏令时 2018 年 12 月 6 日前:

    • 用于创建项目资源的 AWS CloudFormation IAM 角色,支持一组有限的 AWS CloudFormation 资源。

    • 用于创建 CodePipeline 资源的 IAM 角色。

    • 用于创建 CodeBuild 资源的 IAM 角色。

    • 用于创建 CodeDeploy 资源的 IAM 角色(如果适用于您的项目类型)。

    • 用于创建 Amazon EC2 Web 应用程序的 IAM 角色(如果适用于您的项目类型)。

    • 用于创建 CloudWatch Events 资源的 IAM 角色。

    • Lambda 的执行角色,可动态修改以包含部分资源集。

该项目包括详细信息页面,其中显示了状态,包括指向团队管理的链接、指向 IDE 或存储库设置说明的链接以及存储库中源代码更改的提交历史记录。此外,您还可以选择工具来连接到外部问题跟踪工具(如 Jira)。

入门:选择项目模板

在控制台中选择 AWS CodeStar 项目时,您将从具有示例代码和资源的一组预配置选项中进行选择,以便快速入门。这些选项称为项目模板。每个 AWS CodeStar 项目模板由编程语言、应用程序类型和计算平台组成。该项目模板由您选择的组合确定。

选择模板计算平台

每个模板都会配置以下计算平台类型之一:

  • 当您选择 AWS Elastic Beanstalk 项目时,您将部署到云中 Amazon Elastic Compute Cloud 实例上的 AWS Elastic Beanstalk 环境。

  • 当您选择 Amazon EC2 项目时,AWS CodeStar 会创建 Linux EC2 实例以在云中托管您的应用程序。您的项目团队成员可以访问这些实例,并且您的团队使用您提供给 SSH 的密钥对连接到您的 Amazon EC2 实例。AWS CodeStar 还具有使用团队成员权限来管理密钥对连接的托管 SSH。

  • 当您选择 AWS Lambda 时,AWS CodeStar 会创建通过 Amazon API Gateway 访问的无服务器环境,其中没有实例或服务器,无需进行维护。

选择模板应用程序类型

每个模板会配置以下应用程序类型之一:

  • Web 服务

    Web 服务用于在后台运行的任务(如调用 API)。在 AWS CodeStar 创建示例 Web 服务项目后,您可以选择终端节点 URL 查看 Hello World 输出,但此应用程序类型的主要用途不是用作用户界面 (UI)。此类别中的 AWS CodeStar 项目模板支持使用 Ruby、Java、ASP.NET、PHP、Node.js 等编程语言进行的开发。

  • Web 应用程序

    Web 应用程序提供 UI。在 AWS CodeStar 创建示例 Web 应用程序项目后,您可以选择终端节点 URL 查看交互式 Web 应用程序。此类别中的 AWS CodeStar 项目模板支持使用 Ruby、Java、ASP.NET、PHP、Node.js 等编程语言进行的开发。

  • 静态网页

    如果您希望项目用于 HTML 网站,请选择此模板。此类别中的 AWS CodeStar 项目模板支持使用 HTML5 进行的开发。

  • Alexa 技能

    如果您需要面向具有 AWS Lambda 函数的 Alexa 技能的项目,请选择此模板。当您创建技能项目时,AWS CodeStar 会返回可用作服务端点的 Amazon 资源名称 (ARN)。有关更多信息,请参阅托管自定义技能作为 AWS Lambda 函数

    注意

    仅美国东部(弗吉利亚北部)、美国西部(俄勒冈)、欧洲(爱尔兰)和亚太地区(东京)区域支持 Alexa 技能的 Lambda 函数。

  • Config 规则

    如果您希望项目用于一个 AWS Config 规则(可在您账户的 AWS 资源之间自动执行规则),请选择此模板。该函数返回可用作规则的服务终端节点的 ARN。

选择模板编程语言

当您选择项目模板时,将选择一种编程语言,如 Ruby、Java、ASP.NET、PHP、Node.js 等。

如何对您的 AWS CodeStar 项目进行更改

您可以通过修改以下内容来更新您的项目:

  • 用于您应用程序的示例代码和编程语言资源。

  • 存储和部署您应用程序的基础设施所包含的资源(操作系统、支持应用程序和服务、部署参数和云计算平台)。您可以在 template.yml 文件中修改应用程序资源。这是对您应用程序的运行时环境进行建模的 AWS CloudFormation 文件。

注意

如果您使用的是 Alexa 技能 AWS CodeStar 项目,则不能对 AWS CodeStar 源存储库之外的技能(CodeCommit 或 GitHub)进行更改。如果您在 Alexa 开发人员门户中编辑技能,则更改可能在源存储库中不可见,并且两个版本将不同步。

更改应用程序源代码并推送更改

要修改示例源代码、脚本及其他应用程序源文件,请通过以下方法编辑源存储库中的文件:

  • 在 CodeCommit 或 GitHub 中使用编辑模式。

  • 在 IDE(如 AWS Cloud9)中打开项目。

  • 在本地克隆存储库,然后提交并推送您的更改。有关信息,请参阅 步骤 4:提交更改

使用 Template.yml 文件更改应用程序资源

无需手动修改基础设施资源,而是使用 AWS CloudFormation 对应用程序的运行时资源进行建模并加以部署。

您可以通过编辑项目存储库中的 template.yml 文件,在运行时堆栈中修改或添加应用程序资源(如 Lambda 函数)。您可以添加可用作 AWS CloudFormation 资源的任何资源。

要更改 AWS Lambda 函数的代码或设置,请参阅将资源添加到项目

修改项目存储库中的 template.yml 文件,以添加作为应用程序资源的 AWS CloudFormation 资源的类型。当您将应用程序资源添加到 template.yml 文件的 Resources 部分时,AWS CloudFormation 和 AWS CodeStar 会为您创建资源。有关 AWS CloudFormation 资源及其必需属性的列表,请参阅 AWS 资源类型参考。有关更多信息,请参阅步骤 1:在 IAM 中编辑 CloudFormation 工作线程角色中的此示例。

借助 AWS CodeStar,您可以对应用程序运行时环境进行配置和建模,从而实施最佳做法。

如何管理更改应用程序资源的权限

当您使用 AWS CloudFormation 添加运行时应用程序资源(如 Lambda 函数)时,AWS CloudFormation 工作线程角色可以使用其已有的权限。对于某些运行时应用程序资源,您必须先手动调整 AWS CloudFormation 工作线程角色的权限,然后再编辑 template.yml 文件。

有关更改 AWS CloudFormation 工作线程角色的权限的示例,请参阅步骤 5:使用内联策略添加资源权限