亚马逊AWS官方博客

新增功能 — AWS Proton 支持 Terraform 和 Git 存储库来管理模板

我们宣布启动适用于 AWS Proton 的两项功能。首先,在 AWS Proton 开放路线图中,最需要的是使用 Terraform 定义和预置基础设施。 其次,要能够直接从 Git 存储库管理 AWS Proton 模板。

AWS Proton 是在 2020 年重塑期间宣布的一项针对容器和无服务器应用程序的完全托管式的应用程序交付服务。AWS Proton 旨在帮助基础设施团队在不影响开发人员生产力的情况下实现基础设施自动化。它允许开发人员获得交付应用程序所需的模板,而无需平台团队的参与。

使用 AWS Proton 时,基础设施团队需要定义环境和服务模板。了解有关模板的更多信息。

模板同步
AWS Proton 中的这项新功能使平台团队能够直接从其 Git 存储库推送、更新和发布模板。现在,当您创建新的服务或环境模板时,您可以指定一个包含模板的远程 Git 存储库。AWS Proton 将自动同步这些模板并使其可供使用。当 Git 存储库发生更改时,AWS Proton 将负责更新。

创建环境模板

使用存储库和同步模板的一个重要优势是,它简化了管理员上载、更新和注册模板的过程。手动完成此过程可能容易出错且操作不便。现在,您可以自动化创作和更新模板的过程。此外,您可以使用拉取请求添加更多验证并跟踪对模板的更改。

模板同步允许平台团队和开发人员之间进行协作。通过将所有的模板放在一个 Git 存储库中,GitHub 等平台中所有可用的协作工具对每个人都变得可用。现在开发人员可以看到所有模板,当他们想要改进时,可以创建包含更改的拉取请求。此外,还可以使用错误跟踪器和功能请求等工具来管理模板。

配置存储库链接
要开始使用模板同步,您需要向 AWS Proton 授予访问存储库的权限。为此,您需要在 AWS Proton 和存储库之间创建一个链接。

为此,首先为您的 GitHub 账户创建一个新的源连接。然后,您需要从 AWS Proton 创建一个新的存储库链接。转到侧栏中的“存储库”选项。然后在链接新存储库屏幕中,使用您刚刚创建的 GitHub 连接并指定一个存储库名称。

创建新的链接存储库

AWS Proton 支持 Terraform
到目前为止,AWS CloudFormation 是 AWS Proton 中唯一可用的基础设施即代码 (IaC) 引擎。现在,您可以根据使用 Terraform 定义的基础架构定义服务和环境模板,并通过基于拉取请求的机制,使用 Terraform 来预置和更新基础设施。

平台团队用 Terraform 语言 HCL 创作他们的 IaC 模板,然后使用 Terraform 开源预置基础设施。AWS Proton 呈现可供预置的 Terraform 模块,并向您的基础设施存储库发出拉取请求,您可以从中规划和应用更改。

此操作是异步操作,因为 AWS Proton 不是管理基础设施预置的操作。因此,重要的是在配置基础设施的过程中,有一个步骤可以通知 AWS Proton 部署的状态。

我想给您演示一下,如何使用 Terraform 建立一个环境。为此,您将使用 GitHub 操作在您的 AWS 账户中预置 Terraform 基础设施。

要开始使用 Terraform 模板,首先,按照之前的说明配置存储库链接。然后,您需要创建一个新角色以授予 GitHub 操作的权限,以便在您的 AWS 账户中执行某些活动。您可以在此处找到此角色的 AWS CloudFormation 模板。

创建一个空的 GitHub 存储库并创建一个文件夹 .github/workflows/。创建一个名为 terraform.yml 的文件。在该文件中,您需要定义 GitHub 操作以规划和应用基础设施更改。从 terraform 示例文件中复制模板

此模板用于配置您的 AWS 凭证、配置 Terraform、规划整个基础设施,并使用 Terraform 应用基础设施中的更改,然后将此过程的状态通知 AWS Proton。

此外,您需要修改位于该文件夹内的 env_config.json 文件。在该文件中,您需要为计划创建的环境添加配置。您可以将新环境附加到 JSON 文件。在示例中,环境被称之为 tf-test。该角色是您之前创建的角色,而区域是您要部署此基础设施的区域。查看示例文件

{
    “tf-test”: {
        “role”: “arn:aws:iam::123456789:role/TerraformGitHubActionsRole”,
        “region”: “us-west-2”
    }
}

在此示例中,您将 Terraform 项目上载到 Amazon S3。查看 Terraform 项目的示例

现在是时候在 AWS Proton 中创建一个新的环境模板了。您可以按照控制台中的说明进行操作。

环境模板准备就绪后,使用刚创建的模板创建新环境。配置环境时,选择通过拉取请求预置,然后使用正确的参数配置存储库。

配置新环境现在,在环境详细信息中,您可以看到部署状态为正在进行。在 GitHub 操作完成之前,这将保持这种状态。

环境详细信息

如果前往存储库,您会看到一个新的拉取请求。在拉取请求名称旁边,您将看到一个红十字、黄点或绿色对勾。该图标取决于 GitHub 操作的状态。如果看到的是黄点,请等待该点变成红色或绿色。如果出现错误,则需要查看 GitHub 操作日志中发生了什么。

如果在拉取请求上看到绿色勾选,则表示 GitHub 操作已完成,拉取请求可以合并。合并拉取请求后,将预置基础设施。返回 “环境详细信息” 页面。过了一会儿,在您的基础设施预置完毕后(根据模板的不同可能需要几分钟时间),您应该会看到部署状态为成功。

Github 拉取请求

在本演示结束时,您已经使用 AWS Proton 预置了基础设施来处理环境模板和 GitHub 操作,并使用 Terraform 开源在您的 AWS 账户中预置基础设施。

可用性
Terraform 支持在公有预览模式下可用。

这些新功能在提供 AWS Proton 的区域提供:美国东部(俄亥俄)、美国东部(弗吉尼亚北部)、美国西部(俄勒冈)、亚太地区(东京)和欧洲(爱尔兰)。

要了解有关这些功能的更多信息,请访问 AWS Proton 服务页面。

Marcia