在中创建自由表单配置文件 Amazon AppConfig - Amazon AppConfig
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在中创建自由表单配置文件 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 操作添加)。

Amazon Simple Storage Service (Amazon S3)

任何

Amazon CodePipeline

管道(由服务定义)

Amazon Secrets Manager

密钥(由服务定义)

Amazon Systems Manager 参数存储

标准和安全字符串参数(由参数存储定义)

Amazon Systems Manager 文档存储(SSM 文档)

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 个配置文件)

服务器端加密

支持

SSE-S3SSE-KMS

支持

支持

Amazon CloudFormation 支持

支持

不用于创建或更新数据

支持

支持

定价

免费

请参阅 Amazon S3 定价

请参阅 Amazon Systems Manager 定价

请参阅 Amazon Secrets Manager 定价

免费

请参阅 Amazon CodePipeline 定价

关于 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 存储类别:STANDARDINTELLIGENT_TIERINGREDUCED_REDUNDANCYSTANDARD_IA、和ONEZONE_IA。不支持以下类别:所有 S3 Glacier 类别(GLACIERDEEP_ARCHIVE)。

版本控制

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 策略
  1. 访问:https://console.aws.amazon.com/iam/,打开 IAM 控制台。

  2. 在导航窗格中,选择 Policies (策略),然后选择 Create policy (创建策略)

  3. 创建策略页面上,选择 JSON 选项卡。

  4. 使用有关 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": "*" } ] }
  5. 选择查看策略

  6. Review policy (查看策略) 页面上,在 Name (名称) 框中键入名称,然后键入描述。

  7. 选择 创建策略。系统将让您返回到 角色 页面。

创建用于访问 S3 对象的 IAM 角色

使用以下过程创建一个 IAM 角色,该角色 Amazon AppConfig 允许获取存储在 S3 对象中的配置。

创建一个用于访问 Amazon S3 的 IAM 角色
  1. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  2. 在导航窗格中,选择角色,然后选择创建角色

  3. 选择受信任实体的类型 部分中,选择 Amazon 服务

  4. Choose a use case (选择使用案例) 部分中,在 Common use cases (常见使用案例) 下,选择 EC2,然后选择 Next: Permissions (下一步: 权限)

  5. Attach permissions policy (附加权限策略) 页面上的搜索框中,输入您在上一过程中创建的策略的名称。

  6. 选择该策略,然后选择 Next: Tags (下一步: 标签)

  7. 添加标签(可选) 页面上,输入密钥和可选值,然后选择 下一步: 审核

  8. Review (审核) 页面上,在 Role name (角色名称) 字段中键入名称,然后键入描述。

  9. 选择 Create role (创建角色)。系统将让您返回到 角色 页面。

  10. 角色页面中,选择刚刚创建的角色以打开摘要页面。记下角色名称角色 ARN。在本主题的后面部分中创建配置文件时,您将指定角色 ARN。

创建信任关系

使用以下过程将您刚刚创建的角色配置为信任 Amazon AppConfig。

添加信任关系
  1. 在刚刚创建的角色的摘要页面上,选择信任关系选项卡,然后选择编辑信任关系

  2. 删除 "ec2.amazonaws.com" 并添加 "appconfig.amazonaws.com",如以下示例所示。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "appconfig.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  3. 选择更新信任策略

创建自由格式配置和配置文件

本节介绍如何创建自由格式配置和配置文件。开始之前,请注意以下信息。

  • 以下过程要求您指定 IAM 服务角色,以便 Amazon AppConfig 能够访问您选择的配置存储中的配置数据。如果您使用 Amazon AppConfig 托管配置存储,则不需要此角色。如果您选择 S3、参数存储或 Systems Manager 文档存储,则必须选择现有 IAM 角色,或选择让系统自动为您创建角色的选项。有关该角色的更多信息,请参阅 关于配置文件 IAM 角色

  • 如果要为 S3 中存储的配置创建配置文件,则必须配置权限。有关使用 S3 作为配置存储的权限和其他要求的更多信息,请参阅 关于存储在 Amazon S3 中的配置

  • 如果您要使用验证程序,请查看使用验证程序的详细信息和要求。有关更多信息,请参阅 关于验证程序

创建 Amazon AppConfig 自由格式配置文件(控制台)

使用以下步骤使用控制台创建 Amazon AppConfig 自由格式配置文件和(可选)自由格式配置。 Amazon Systems Manager

创建配置文件
  1. 打开 Amazon Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/appconfig/

  2. 应用程序选项卡上,选择一个应用程序,然后选择配置文件和功能标志选项卡。

  3. 选择 创建

  4. 选择 “自由格式配置”,然后选择 “选择”

  5. 对于 Name (名称),请输入配置文件的名称。

  6. 对于 Description (描述),请输入有关配置文件的信息。

  7. 配置源部分中,选择一个选项。

    • 如果您选择Amazon AppConfig 了托管配置,请选择文本JSONYAML,并在字段中输入您的配置。选择 Next (下一步),然后转到此过程中的步骤 10。

    • 如果您选择了 Amazon S3 对象,请在 S3 对象源字段中输入对象 URI,然后选择下一步

    • 如果您选择了 Amazon Systems Manager 参数,则从列表中选择参数的名称。选择下一步

    • 如果您选择了 Secrets Manager 密钥,则输入密钥的名称。选择下一步

    • 选择 Amazon CodePipeline,然后选择下一步,然后转到此过程中的步骤 10。

    • 如果您选择了 Amazon Systems Manager 文档,请完成以下步骤。

    1. 文档源部分中,选择已保存的文档新建文档

    2. 如果选择 已保存的文档,则从列表中选择 SSM 文档。如果选择 New document (新文档),则会显示 Details (详细信息)Content (内容) 部分。

    3. Details (详细信息) 部分中,输入新应用程序配置的名称。

    4. 对于 Application configuration schema (应用程序配置架构) 部分,使用列表选择 JSON 架构或选择 Create schema (创建架构)。如果选择 创建架构, 将打开创建架构 页面。在 Content (内容) 部分中输入架构详细信息,然后选择 Create schema (创建架构)

      
                      输入 Amazon AppConfig 配置的详细信息
    5. 对于 Application configuration schema version (应用程序配置架构版本),从列表中选择版本,或选择 Update schema (更新架构) 以编辑架构并创建新版本。

    6. Content (内容) 部分中,选择 YAMLJSON,然后在字段中输入配置数据。

    7. 选择下一步

  8. 服务角色部分中,选择新建服务角色以 Amazon AppConfig 创建提供配置数据访问权限的 IAM 角色。 Amazon AppConfig 根据您之前输入的名称自动填充角色名称字段。或者,要选择已位于 IAM 中的角色,请选择 现有服务角色。使用 Role ARN (角色 ARN) 列表选择角色。

  9. Add validators (添加验证程序) 页面上,选择 JSON Schema (JSON 架构)Amazon Lambda。如果选择 JSON Schema (JSON 架构),请在字段中输入 JSON 架构。如果您选择 Amazon Lambda,请从列表中选择函数 Amazon 资源名称 (ARN) 和版本。

    重要

    在可以将配置添加到系统之前,SSM 文档中存储的配置数据必须对照关联的 JSON 架构进行验证。SSM 参数不需要验证方法,但我们建议您使用为新的或更新的 SSM 参数配置创建验证检查。 Amazon Lambda

  10. (可选)在标签部分,输入密钥和可选值。您最多可以为一个资源指定 50 个标签。

  11. 选择 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。

分步创建配置文件
  1. 打开 Amazon CLI.

  2. 运行以下命令以创建自由格式配置文件。

    Linux
    aws appconfig create-configuration-profile \ --application-id The_application_ID \ --name A_name_for_the_configuration_profile \ --description A_description_of_the_configuration_profile \ --location-uri A_URI_to_locate_the_configuration or hosted \ --retrieval-role-arn The_ARN_of_the_IAM_role_with_permission_to_access_the_configuration_at_the_specified_LocationUri \ --tags User_defined_key_value_pair_metadata_of_the_configuration_profile \ --validators "Content=JSON_Schema_content_or_the_ARN_of_an_Amazon Lambda_function,Type=JSON_SCHEMA or LAMBDA"
    Windows
    aws appconfig create-configuration-profile ^ --application-id The_application_ID ^ --name A_name_for_the_configuration_profile ^ --description A_description_of_the_configuration_profile ^ --location-uri A_URI_to_locate_the_configuration or hosted ^ --retrieval-role-arn The_ARN_of_the_IAM_role_with_permission_to_access_the_configuration_at_the_specified_LocationUri ^ --tags User_defined_key_value_pair_metadata_of_the_configuration_profile ^ --validators "Content=JSON_Schema_content_or_the_ARN_of_an_Amazon Lambda_function,Type=JSON_SCHEMA or LAMBDA"
    PowerShell
    New-APPCConfigurationProfile ` -Name A_name_for_the_configuration_profile ` -ApplicationId The_application_ID ` -Description Description_of_the_configuration_profile ` -LocationUri A_URI_to_locate_the_configuration or hosted ` -RetrievalRoleArn The_ARN_of_the_IAM_role_with_permission_to_access_the_configuration_at_the_specified_LocationUri ` -Tag Hashtable_type_user_defined_key_value_pair_metadata_of_the_configuration_profile ` -Validators "Content=JSON_Schema_content_or_the_ARN_of_an_Amazon Lambda_function,Type=JSON_SCHEMA or LAMBDA"
注意

如果您在 Amazon AppConfig 托管配置存储中创建了配置,则可以使用 CreateHostedConfigurationVersionAPI 操作创建配置的新版本。要查看此 API 操作的 Amazon CLI 详细信息和示例命令,请参阅Amazon CLI 命令参考create-hosted-configuration-version中的。