第 3 步:创建配置和配置文件 - AmazonAppConfig
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

第 3 步:创建配置和配置文件

配置 是一组影响应用程序行为的设置。例如,您可以创建和部署配置,这些配置谨慎地引入对应用程序的更改,或者启用要求及时部署的新功能(如产品发布或公告)。以下是访问列表配置的一个非常简单的示例。

{ "AccessList": [ { "user_name": "Mateo_Jackson" }, { "user_name": "Jane_Doe" } ] }

A配置文件使能AmazonAppConfig 以从源位置访问您的配置。您可以按以下格式和位置存储配置:

  • YAML、JSON 或文本文档AmazonAppConfig 托管配置存储

  • Amazon Simple Storage Service (Amazon S3) 存储桶中的对象

  • Systems Manager 文档存储中的文档

  • Parameter Store 中的参数

  • 任何集成源操作支持Amazon CodePipeline

配置文件包含以下信息。

  • 存储配置所在的 URI 位置。

  • 提供配置访问权限的 AWS Identity or Access Management (IAM) 角色。

  • 配置数据的验证程序。您可以使用 JSON 架构或 Amazon Lambda 函数验证配置文件。配置文件最多可以具有两个验证程序。

对于存储在AmazonAppConfig 托管配置存储或 SSM 文档,您可以在创建配置文件时使用 Systems Manager 控制台创建配置。本主题后面将介绍该过程。

对于存储在 SSM 参数或 S3 中的配置,您必须先创建参数或对象,然后将其添加到参数存储或 S3。创建参数或对象后,您可以使用本主题中的过程创建配置文件。有关在参数存储中创建参数的信息,请参阅创建 Systems Manager 参数中的Amazon Web Services Systems Manager用户指南

关于配置存储配额和限制

AmazonAppConfig 支持的配置存储具有以下配额和限制。

AmazonAppConfig 托管配置存储 S3 Parameter Store 文档存储 Amazon CodePipeline

配置大小限制

64 KB

1MB

强制实施AmazonAppConfig,而不是 S3

4 KB(免费套餐)/8 KB(高级参数)

64 KB

1MB

强制实施AmazonAppConfig,而不是 CodePipeline

资源存储限制

1GB

无限

10000 个参数(免费套餐)/100000 个参数(高级参数)

500 个文档

受每个应用程序配置文件数量的限制(每个应用程序 100 个配置文件)

服务器端加密

SSE-S3

Amazon CloudFormation 支持

不用于创建或更新数据

验证创建或更新 API 操作

不支持

不支持

支持正则表达式

所有放置和更新 API 操作都需要 JSON 架构

不支持

定价

免费

请参阅Amazon S3 定价

请参阅Amazon Web Services Systems Manager定价

免费

请参阅Amazon CodePipeline定价

关于AmazonAppConfig 托管配置存储

AmazonAppConfig 包括内部或托管配置存储。配置必须为 64 KB 或更小。这些区域有:Amazon与其他配置存储选项相比,AppConfig 托管配置存储提供了以下好处。

  • 您无需设置和配置其他服务,如 Amazon Simple Storage Service (Amazon S3) 或参数存储。

  • 您无需配置 AWS Identity and Access Management (IAM) 权限即可使用配置存储。

  • 您可以按 YAML、JSON 或文本文档格式存储配置。

  • 使用存储不产生任何费用。

  • 您可以创建配置并在创建配置文件时将其添加到存储。

创建配置和配置文件

开始前的准备工作

在完成本节中的过程之前,请阅读以下相关内容。

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

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

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

创建AmazonAppConfig

使用以下过程创建AmazonAppConfig 配置文件和(可选)配置通过使用Amazon Web Services Systems Manager控制台。

创建配置文件

  1. 打开Amazon Web Services Systems Manager控制台位置https://console.aws.amazon.com/systems-manager/appconfig/

  2. 在存储库的应用程序选项卡上,选择您在创建AmazonAppConfig,然后选择配置文件选项卡。

  3. 选择 Create configuration profile (创建配置文件)

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

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

  6. Select configuration source (选择配置源) 页面上,选择一个选项。

    • 如果您选择AmazonAppConfig 托管配置,然后选择YAMLJSON,或者Text,然后在字段中输入您的配置。选择 Next (下一步),然后转到此过程中的步骤 10。

    • 如果您选择Amazon S3 对象,然后输入对象 URI。选择 Next

    • 如果您选择Amazon Web Services Systems Managerparameter,然后从列表中选择参数的名称。选择 Next

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

    • 如果您选择Amazon Web Services Systems Manager文档,然后完成以下步骤。

    1. 文档源部分中,选择保存的文档或者新文档

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

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

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

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

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

      
                    在中输入配置数据AmazonAppConfig 配置文件
    7. 选择 Next

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

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

    重要

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

  9. Tags (标签) 部分中,输入一个键和可选的值。您最多可以为一个资源指定 50 个标签。

  10. 选择 Create configuration profile (创建配置文件)

重要

如果您为Amazon CodePipeline,那么在创建部署策略后,如下一节所述,您必须在 CodePipeline 中创建一个指定AmazonAppConfig部署提供程序。有关创建指定Amazon应 AppConfig 作为部署提供程序,请参阅教程:创建使用的管道Amazon作为部署提供商的应 AppConfig中的Amazon CodePipeline用户指南

继续执行第 4 步:创建部署策略

创建AmazonAppConfig 置文件(命令行)

以下过程介绍如何使用AmazonCLI(在 Linux 或 Windows 上)或AmazonTools for PowerShellAmazonAppConfig 配置文件。

逐步创建配置配置文件

  1. 安装和配置AmazonCLI 或AmazonTools for PowerShell,如果您还没有。

    有关信息,请参阅 安装或升级 Amazon 命令行工具

  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 \ --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=validators_of_type_JSON_SCHEMA_and_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 ^ --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=validators_of_type_JSON_SCHEMA_and_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 ` -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=validators_of_type_JSON_SCHEMA_and_LAMBDA"

    系统将返回类似于以下内容的信息。

    Linux
    {
       "ApplicationId": "The application ID",
       "Id": "The configuration profile ID",
       "Name": "The name of the configuration profile",
       "Description": "The configuration profile description",
       "LocationUri": "The URI location of the configuration",
       "RetrievalRoleArn": "The ARN of an IAM role with permission to access the configuration at the specified LocationUri",
       "Validators": [ 
          { 
             "Content": "The JSON Schema content or the ARN of a Lambda function",
             "Type": "Validators of type JSON_SCHEMA and LAMBDA"
          }
       ]
    }
    Windows
    {
       "ApplicationId": "The application ID",
       "Id": "The configuration profile ID",
       "Name": "The name of the configuration profile",
       "Description": "The configuration profile description",
       "Id": "The configuration profile ID",
       "LocationUri": "The URI location of the configuration",
       "RetrievalRoleArn": "The ARN of an IAM role with permission to access the configuration at the specified LocationUri",
       "Validators": [ 
          { 
             "Content": "The JSON Schema content or the ARN of a Lambda function",
             "Type": "Validators of type JSON_SCHEMA and LAMBDA"
          }
       ]
    }
    PowerShell
    ApplicationId    : The application ID
    ContentLength    : Runtime of the command
    Description      : The configuration profile description
    HttpStatusCode   : HTTP Status of the runtime
    Id               : The configuration profile ID
    LocationUri      : The URI location of the configuration
    Name             : The name of the configuration profile
    ResponseMetadata : Runtime Metadata
    RetrievalRoleArn : The ARN of an IAM role with permission to access the configuration at the specified LocationUri
    Validators       : {Content: The JSON Schema content or the ARN of a Lambda function, Type : Validators of type JSON_SCHEMA and LAMBDA}