本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中创建自由表单配置文件 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 |
2 MB 由 S3 强制执行 Amazon AppConfig,而不是 S3 |
4 KB(免费套餐)/8 KB(高级参数) |
64 KB |
64 KB |
2 MB 由强制执行 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:::
DOC-EXAMPLE-BUCKET
/my-configurations
/my-configuration
.json" }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetBucketVersioning", "s3:ListBucketVersions", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-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 角色。
-
以下过程还为您提供了将扩展与功能标志配置文件关联的选项。在创建或部署配置 Amazon AppConfig 的工作流程中,扩展可以增强您在不同时刻注入逻辑或行为的能力。有关更多信息,请参阅 关于 Amazon AppConfig 扩展。
-
如果要为 S3 中存储的配置创建配置文件,则必须配置权限。有关使用 S3 作为配置存储的权限和其他要求的更多信息,请参阅 关于存储在 Amazon S3 中的配置。
-
如果您要使用验证程序,请查看使用验证程序的详细信息和要求。有关更多信息,请参阅 关于验证程序。
创建 Amazon AppConfig 自由格式配置文件(控制台)
使用以下步骤使用控制台创建 Amazon AppConfig 自由格式配置文件和(可选)自由格式配置。 Amazon Systems Manager
创建自由格式配置文件
打开 Amazon Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/appconfig/
。 -
在导航窗格中,选择应用程序,然后选择您在中创建的应用程序在 Amazon AppConfig中为应用程序创建命名空间。
-
选择配置文件和功能标志选项卡,然后选择创建配置。
-
在配置选项部分,选择自由格式配置。
-
在配置配置文件名称中,输入配置文件的名称。
-
(可选)展开描述并输入描述。
-
(可选)展开其他选项并根据需要完成以下操作。
-
在 “关联分机” 部分中,从列表中选择一个分机。
-
在 “标签” 部分中,选择 “添加新标签”,然后指定键和可选值。
-
-
选择下一步。
-
在指定配置数据页面的配置定义部分,选择一个选项。
-
填写所选选项的字段,如下表所述。
已选择选项 详细信息 Amazon AppConfig 托管配置
选择文本、JSON 或 YAML,然后在字段中输入您的配置。转到此过程中的步骤 12。
亚马逊 S3 对象
在 S3 对象源字段中输入对象 URI,然后转到此过程中的步骤 11。
Amazon CodePipeline
选择 “下一步”,然后转到此过程中的步骤 12。
Secrets Manager 秘密
从列表中选择密钥,转到此过程中的步骤 11。
Amazon Systems Manager 参数
从列表中选择参数,然后转到此过程中的步骤 11。
Amazon Systems Manager 文档
-
从列表中选择一个文档或选择 “创建新文档”。
-
如果选择 “创建新文档”,请在 “文档名称” 中输入一个名称。(可选)展开版本名称并输入文档版本的名称。
-
对于应用程序配置架构,请从列表中选择 JSON 架构或选择创建架构。如果选择 创建架构, 将打开创建架构 页面。输入架构详细信息,然后选择创建应用程序配置架构。
-
在 Content (内容) 部分中,选择 YAML 或 JSON,然后在字段中输入配置数据。
-
-
在服务角色部分中,选择新建服务角色以 Amazon AppConfig 创建提供配置数据访问权限的 IAM 角色。 Amazon AppConfig 根据您之前输入的名称自动填充角色名称字段。或者,选择现有服务角色。使用 Role ARN (角色 ARN) 列表选择角色。
-
或者,在添加验证器页面上,选择 JSON 架构或。Amazon Lambda如果选择 JSON Schema (JSON 架构),请在字段中输入 JSON 架构。如果您选择 Amazon Lambda,请从列表中选择函数 Amazon 资源名称 (ARN) 和版本。
重要
在可以将配置添加到系统之前,SSM 文档中存储的配置数据必须对照关联的 JSON 架构进行验证。SSM 参数不需要验证方法,但我们建议您使用为新的或更新的 SSM 参数配置创建验证检查。 Amazon Lambda
-
选择下一步。
-
在 “查看并保存” 页面上,选择 “保存” 并继续部署。
重要
如果您为创建了配置文件 Amazon CodePipeline,则必须在中创建指定 CodePipeline Amazon AppConfig 为部署提供者的管道。您不需要执行 在 Amazon AppConfig中部署功能标志和配置数据。但是,您必须配置客户端以接收应用程序配置更新,如 通过直接调用 API 获取配置 中所述。有关创建指定 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 CLI.
-
运行以下命令以创建自由格式配置文件。
重要
请注意以下重要信息。
-
如果您为创建了配置文件 Amazon CodePipeline,则必须在中创建指定 CodePipeline Amazon AppConfig 为部署提供者的管道。您不需要执行 在 Amazon AppConfig中部署功能标志和配置数据。但是,您必须配置客户端以接收应用程序配置更新,如 通过直接调用 API 获取配置 中所述。有关创建指定 Amazon AppConfig 为部署提供者的管道的信息,请参阅《Amazon CodePipeline 用户指南》中的教程:创建 Amazon AppConfig 用作部署提供者的管道。
-
如果您在 Amazon AppConfig 托管配置存储中创建了配置,则可以使用 CreateHostedConfigurationVersionAPI 操作创建配置的新版本。要查看此 API 操作的 Amazon CLI 详细信息和示例命令,请参阅Amazon CLI 命令参考create-hosted-configuration-version中的。
继续执行在 Amazon AppConfig中部署功能标志和配置数据。