客户托管环境 - AWS Proton

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

客户托管环境

在客户管理的环境中,您可以使用已部署的现有基础架构(例如)作为您的 AWS Proton 环境。VPC在使用客户管理的环境时,您可以在外部配置自己的共享资源。 AWS Proton但是,您仍然可以 AWS Proton 允许在部署 AWS Proton 服务时使用相关的配置输出作为服务的输入。如果输出可以更改, AWS Proton 则可以接受更新。 AWS Proton 但是,由于配置是在外部管理的,因此无法直接更改环境 AWS Proton。

创建环境后,您负责提供与创建环境时 AWS Proton 所创建的输出相同的输出 AWS Proton ,例如 Amazon ECS 集群名称或 Amazon VPC IDs。

使用此功能,您可以将 AWS Proton 服务资源从 AWS Proton 服务模板部署和更新到此环境。但是,环境本身不会通过中的模板更新进行修改 AWS Proton。你负责执行环境更新并在中更新这些输出 AWS Proton。

您可以在一个账户中拥有多个环境,这些环境由托管环境和客户 AWS Proton 托管环境混合而成。您也可以关联第二个账户,并使用主账户中的 AWS Proton 模板在第二个关联账户中执行环境和服务的部署和更新。

如何使用客户托管环境

管理员需要做的第一件事是,注册导入的客户托管环境模板。不要在模板捆绑包中提供清单或基础设施文件。仅提供架构。

下面的架构概述了使用开放API格式的输出列表,并复制了 AWS CloudFormation 模板中的输出。

重要

输出仅允许使用字符串输入。

以下示例是相应的 Fargate AWS CloudFormation 模板的模板输出部分的片段。

Outputs: ClusterName: Description: The name of the ECS cluster Value: !Ref 'ECSCluster' ECSTaskExecutionRole: Description: The ARN of the ECS role Value: !GetAtt 'ECSTaskExecutionRole.Arn' VpcId: Description: The ID of the VPC that this stack is deployed in Value: !Ref 'VPC' [...]

相应 AWS Proton 导入环境的架构类似于以下内容。不要在架构中提供默认值。

schema: format: openapi: "3.0.0" environment_input_type: "EnvironmentOutput" types: EnvironmentOutput: type: object description: "Outputs of the environment" properties: ClusterName: type: string description: "The name of the ECS cluster" ECSTaskExecutionRole: type: string description: "The ARN of the ECS role" VpcId: type: string description: "The ID of the VPC that this stack is deployed in" [...]

在注册模板时,您表示已导入此模板并提供捆绑包的 Amazon S3 存储桶位置。 AWS Proton 在将模板置于草稿之前,验证架构是否仅包含environment_input_type AWS CloudFormation 模板参数而不包含模板参数。

您提供以下内容以创建一个导入的环境。

  • 进行部署时要使用的IAM角色。

  • 包含所需输出值的规范。

您可以通过控制台或 AWS CLI 使用类似于部署常规环境的过程来提供这两者。