在中创建自由表单配置文件 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

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

服务器端加密

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:::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": "*" } ] }
  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 角色

  • 以下过程还为您提供了将扩展与功能标志配置文件关联的选项。在创建或部署配置 Amazon AppConfig 的工作流程中,扩展可以增强您在不同时刻注入逻辑或行为的能力。有关更多信息,请参阅 关于 Amazon AppConfig 扩展

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

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

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

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

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

  2. 在导航窗格中,选择应用程序,然后选择您在中创建的应用程序在 Amazon AppConfig中为应用程序创建命名空间

  3. 选择配置文件和功能标志选项卡,然后选择创建配置

  4. 配置选项部分,选择自由格式配置

  5. 配置配置文件名称中,输入配置文件的名称。

  6. (可选)展开描述并输入描述。

  7. (可选)展开其他选项并根据需要完成以下操作。

    1. 在 “关联分机” 部分中,从列表中选择一个分机。

    2. 在 “标签” 部分中,选择 “添加新标签”,然后指定键和可选值。

  8. 选择下一步

  9. 指定配置数据页面的配置定义部分,选择一个选项。

  10. 填写所选选项的字段,如下表所述。

    已选择选项 详细信息

    Amazon AppConfig 托管配置

    选择文本JSONYAML,然后在字段中输入您的配置。转到此过程中的步骤 12。

    亚马逊 S3 对象

    S3 对象源字段中输入对象 URI,然后转到此过程中的步骤 11。

    Amazon CodePipeline

    选择 “下一步”,然后转到此过程中的步骤 12。

    Secrets Manager 秘密

    从列表中选择密钥,转到此过程中的步骤 11。

    Amazon Systems Manager 参数

    从列表中选择参数,然后转到此过程中的步骤 11。

    Amazon Systems Manager 文档

    1. 从列表中选择一个文档或选择 “创建新文档”。

    2. 如果选择 “创建新文档”,请在 “文档名称” 中输入一个名称。(可选)展开版本名称并输入文档版本的名称。

    3. 对于应用程序配置架构,请从列表中选择 JSON 架构或选择创建架构。如果选择 创建架构, 将打开创建架构 页面。输入架构详细信息,然后选择创建应用程序配置架构

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

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

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

    重要

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

  13. 选择下一步

  14. 在 “查看并保存” 页面上,选择 “保存” 并继续部署

重要

如果您为创建了配置文件 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
  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中部署功能标志和配置数据