本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中创建自由表单配置文件 Amazon AppConfig
除其他外,配置文件包括一个 Amazon AppConfig 允许在其存储位置查找配置数据的 URI 和配置文件类型。 Amazon AppConfig 支持两种配置文件类型:功能标志和自由格式配置。功能标志配置文件将其数据存储在 Amazon AppConfig 托管配置存储中,URI 很简单hosted
。对于自由格式的配置文件,您可以将数据存储在 Amazon AppConfig 托管配置存储区或以下任何 Amazon
服务和 Systems Manager 功能中:
位置 | 支持的文件类型 |
---|---|
Amazon AppConfig 托管配置存储 |
YAML、JSON 和文本(如果使用添加)。 Amazon Web Services Management Console任何文件类型(如果使用 Amazon AppConfig CreateHostedConfigurationVersionAPI 操作添加)。 |
任何 |
|
管道(由服务定义) |
|
密钥(由服务定义) |
|
标准和安全字符串参数(由参数存储定义) |
|
YAML、JSON、文本 |
配置文件还可以包括可选的验证器,以确保您的配置数据在语法和语义上都是正确的。 Amazon AppConfig 开始部署时使用验证器执行检查。在对配置目标进行任何更改之前,如果检测到任何错误,部署将会停止。
注意
如果可能,我们建议将您的配置数据托管在 Amazon AppConfig 托管配置存储中,因为它提供了最多的功能和增强功能。
对于存储在 Amazon AppConfig 托管配置存储或 SSM 文档中的自由格式配置,您可以在创建配置文件时使用 Systems Manager 控制台创建自由格式配置。本主题稍后将介绍该过程。
对于存储在 Parameter Store、Secrets Manager 或 Amazon S3 中的自由格式配置,您必须先创建参数、密钥或对象,并将其存储在相关配置存储中。存储配置数据后,请使用本主题中的过程创建配置文件。
关于配置存储配额和限制
支持的配置存储 Amazon AppConfig 具有以下配额和限制。
Amazon AppConfig 托管配置存储 | Amazon S3 | Systems Manager Parameter Store | Amazon Secrets Manager | Systems Manager 文档存储 | Amazon CodePipeline | |
---|---|---|---|---|---|---|
配置大小限制 |
默认 2 MB,最大 4 MB |
2MB 由 S3 强制执行 Amazon AppConfig,而不是 S3 |
4 KB(免费套餐)/8 KB(高级参数) |
64 KB |
64 KB |
2MB 由强制执行 Amazon AppConfig,而不是 CodePipeline |
资源存储限制 |
1 GB |
无限制 |
10000 个参数(免费套餐)/100000 个参数(高级参数) |
500,000 |
500 个文档 |
受每个应用程序配置文件数量限制(每个应用程序 100 个配置文件) |
服务器端加密 |
支持 |
支持 |
是 |
否 |
支持 |
|
Amazon CloudFormation 支持 |
支持 |
不用于创建或更新数据 |
支持 |
是 |
否 |
支持 |
定价 |
免费 |
请参阅 Amazon S3 定价 |
免费 |
关于 Amazon AppConfig 托管配置存储
Amazon AppConfig 包括内部或托管配置存储。配置必须为 2 MB 或更小。与其他配置存储选项相比, Amazon AppConfig 托管配置存储具有以下优势。
-
您无需设置和配置其他服务,如 Amazon Simple Storage Service (Amazon S3) 或参数存储。
-
您无需配置 Amazon Identity and Access Management (IAM) 权限即可使用配置存储。
-
您可以按 YAML、JSON 或文本文档格式存储配置。
-
使用存储不产生任何费用。
-
您可以创建配置并在创建配置文件时将其添加到存储。
关于存储在 Amazon S3 中的配置
您可以将配置存储在 Amazon Simple Storage Service (Amazon S3) 存储桶中。在创建配置文件时,将指定存储桶中单个 S3 对象的 URI。您还可以指定授予获取对象 Amazon AppConfig 权限的 (IAM) 角色的 Amazon 资源名称 Amazon Identity and Access Management (ARN)。在为 Amazon S3 对象创建配置文件之前,请注意以下限制。
限制 | 详细信息 |
---|---|
大小 |
存储为 S3 对象的配置的最大大小可以为 1 MB。 |
Object encryption |
配置文件可以 SSE-S3 和 SSE-KMS 加密对象为目标。 |
存储类 |
Amazon AppConfig 支持以下 S3 存储类别: |
版本控制 |
Amazon AppConfig 要求 S3 对象使用版本控制。 |
配置存储为 Amazon S3 对象的配置的权限
在为存储为 S3 对象的配置创建配置文件时,必须为授予获取对象 Amazon AppConfig 权限的 IAM 角色指定 ARN。该角色必须包括以下权限。
对 S3 对象的访问权限
-
s3:GetObject
-
s3:GetObjectVersion
列出 S3 存储桶的权限
s3:ListAllMyBuckets
对用于存储对象的 S3 存储桶的访问权限
-
s3:GetBucketLocation
-
s3:GetBucketVersioning
-
s3:ListBucket
-
s3:ListBucketVersions
完成以下过程以创建允许 Amazon AppConfig 获取存储在 S3 对象中的配置的角色。
创建用于访问 S3 对象的 IAM 策略
使用以下过程创建 IAM 策略,该策略 Amazon AppConfig 允许获取存储在 S3 对象中的配置。
创建用于访问 S3 对象的 IAM 策略
访问:https://console.aws.amazon.com/iam/
,打开 IAM 控制台。 -
在导航窗格中,选择 Policies (策略),然后选择 Create policy (创建策略)。
-
在创建策略页面上,选择 JSON 选项卡。
-
使用有关 S3 存储桶和配置对象的信息更新以下示例策略。然后将策略粘贴到 JSON 选项卡上的文本字段中。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::
my-bucket
/my-configurations
/my-configuration
.json" }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetBucketVersioning", "s3:ListBucketVersions", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-bucket
" ] }, { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" } ] } -
选择查看策略。
-
在 Review policy (查看策略) 页面上,在 Name (名称) 框中键入名称,然后键入描述。
-
选择 创建策略。系统将让您返回到 角色 页面。
创建用于访问 S3 对象的 IAM 角色
使用以下过程创建一个 IAM 角色,该角色 Amazon AppConfig 允许获取存储在 S3 对象中的配置。
创建一个用于访问 Amazon S3 的 IAM 角色
通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择角色,然后选择创建角色。
-
在 选择受信任实体的类型 部分中,选择 Amazon 服务。
-
在 Choose a use case (选择使用案例) 部分中,在 Common use cases (常见使用案例) 下,选择 EC2,然后选择 Next: Permissions (下一步: 权限)。
-
在 Attach permissions policy (附加权限策略) 页面上的搜索框中,输入您在上一过程中创建的策略的名称。
-
选择该策略,然后选择 Next: Tags (下一步: 标签)。
-
在 添加标签(可选) 页面上,输入密钥和可选值,然后选择 下一步: 审核。
-
在 Review (审核) 页面上,在 Role name (角色名称) 字段中键入名称,然后键入描述。
-
选择 Create role (创建角色)。系统将让您返回到 角色 页面。
-
在角色页面中,选择刚刚创建的角色以打开摘要页面。记下角色名称和角色 ARN。在本主题的后面部分中创建配置文件时,您将指定角色 ARN。
创建信任关系
使用以下过程将您刚刚创建的角色配置为信任 Amazon AppConfig。
添加信任关系
-
在刚刚创建的角色的摘要页面上,选择信任关系选项卡,然后选择编辑信任关系。
-
删除
"ec2.amazonaws.com"
并添加"appconfig.amazonaws.com"
,如以下示例所示。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "appconfig.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
选择更新信任策略。
创建自由格式配置和配置文件
本节介绍如何创建自由格式配置和配置文件。开始之前,请注意以下信息。
-
以下过程要求您指定 IAM 服务角色,以便 Amazon AppConfig 能够访问您选择的配置存储中的配置数据。如果您使用 Amazon AppConfig 托管配置存储,则不需要此角色。如果您选择 S3、参数存储或 Systems Manager 文档存储,则必须选择现有 IAM 角色,或选择让系统自动为您创建角色的选项。有关该角色的更多信息,请参阅 关于配置文件 IAM 角色。
-
如果要为 S3 中存储的配置创建配置文件,则必须配置权限。有关使用 S3 作为配置存储的权限和其他要求的更多信息,请参阅 关于存储在 Amazon S3 中的配置。
-
如果您要使用验证程序,请查看使用验证程序的详细信息和要求。有关更多信息,请参阅 关于验证程序。
创建 Amazon AppConfig 自由格式配置文件(控制台)
使用以下步骤使用控制台创建 Amazon AppConfig 自由格式配置文件和(可选)自由格式配置。 Amazon Systems Manager
创建配置文件
打开 Amazon Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/appconfig/
。 -
在 “应用程序” 选项卡上,选择一个应用程序,然后选择 “配置文件和功能标志” 选项卡。
选择创建。
-
选择 “自由格式配置”,然后选择 “选择”。
-
对于 Name (名称),请输入配置文件的名称。
-
对于 Description (描述),请输入有关配置文件的信息。
-
在配置源部分中,选择一个选项。
-
-
如果您选择Amazon AppConfig 了托管配置,请选择文本、JSON 或 YAML,并在字段中输入您的配置。选择 Next (下一步),然后转到此过程中的步骤 10。
-
如果您选择了 Amazon S3 对象,请在 S3 对象源字段中输入对象 URI,然后选择下一步。
-
如果您选择了 Amazon Systems Manager 参数,则从列表中选择参数的名称。选择下一步。
-
如果您选择了 Secrets Manager 密钥,则输入密钥的名称。选择下一步。
-
选择 Amazon CodePipeline,然后选择下一步,然后转到此过程中的步骤 10。
-
如果您选择了 Amazon Systems Manager 文档,请完成以下步骤。
-
在文档源部分中,选择已保存的文档或新建文档。
-
如果选择 已保存的文档,则从列表中选择 SSM 文档。如果选择 New document (新文档),则会显示 Details (详细信息) 和 Content (内容) 部分。
-
在 Details (详细信息) 部分中,输入新应用程序配置的名称。
-
对于 Application configuration schema (应用程序配置架构) 部分,使用列表选择 JSON 架构或选择 Create schema (创建架构)。如果选择 创建架构, 将打开创建架构 页面。在 Content (内容) 部分中输入架构详细信息,然后选择 Create schema (创建架构)。
-
对于 Application configuration schema version (应用程序配置架构版本),从列表中选择版本,或选择 Update schema (更新架构) 以编辑架构并创建新版本。
-
在 Content (内容) 部分中,选择 YAML 或 JSON,然后在字段中输入配置数据。
-
选择下一步。
-
-
在服务角色部分中,选择新建服务角色以 Amazon AppConfig 创建提供配置数据访问权限的 IAM 角色。 Amazon AppConfig 根据您之前输入的名称自动填充角色名称字段。或者,要选择已位于 IAM 中的角色,请选择 现有服务角色。使用 Role ARN (角色 ARN) 列表选择角色。
-
在 Add validators (添加验证程序) 页面上,选择 JSON Schema (JSON 架构) 或 Amazon Lambda。如果选择 JSON Schema (JSON 架构),请在字段中输入 JSON 架构。如果您选择 Amazon Lambda,请从列表中选择函数 Amazon 资源名称 (ARN) 和版本。
重要
在可以将配置添加到系统之前,SSM 文档中存储的配置数据必须对照关联的 JSON 架构进行验证。SSM 参数不需要验证方法,但我们建议您使用为新的或更新的 SSM 参数配置创建验证检查。 Amazon Lambda
-
(可选)在标签部分,输入密钥和可选值。您最多可以为一个资源指定 50 个标签。
-
选择 Create configuration profile (创建配置文件)。
重要
如果您为创建了配置文件 Amazon CodePipeline,则在创建部署策略之后(如下一节所述),则必须在中 CodePipeline 创建一个指定 Amazon AppConfig 为部署提供者的管道。有关创建指定 Amazon AppConfig 为部署提供者的管道的信息,请参阅《Amazon CodePipeline 用户指南》中的教程:创建 Amazon AppConfig 用作部署提供者的管道。
继续执行在 Amazon AppConfig 中部署功能标志和配置数据。
创建 Amazon AppConfig 自由格式配置文件(命令行)
以下过程介绍如何使用 Amazon CLI (在 Linux 或 Windows 上)或 Amazon Tools for PowerShell 如何创建 Amazon AppConfig 自由格式配置文件。如果你愿意,你可以 Amazon CloudShell 使用运行下面列出的命令。有关更多信息,请参阅Amazon CloudShell 《用户指南》中的什么是 Amazon CloudShell?。
注意
对于托管在托管的配置存储中 Amazon AppConfig 托管的自由格式配置,您可以指定hosted
位置 URI。
分步创建配置文件
-
打开 Amazon CLI.
-
运行以下命令以创建自由格式配置文件。
注意
如果您在 Amazon AppConfig 托管配置存储中创建了配置,则可以使用 CreateHostedConfigurationVersionAPI 操作创建配置的新版本。要查看此 API 操作的 Amazon CLI 详细信息和示例命令,请参阅Amazon CLI 命令参考create-hosted-configuration-version中的。