在没有代理的情况下 Amazon AppConfig 检索配置数据 - Amazon AppConfig
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在没有代理的情况下 Amazon AppConfig 检索配置数据

从中检索配置数据的推荐方法 Amazon AppConfig 是使用亚马逊开发和托管 Amazon AppConfig 的代理。使用代理,您可以在本地缓存配置数据,也可以异步轮询 Amazon AppConfig 数据平面服务以获取更新。这种缓存/轮询过程可确保配置数据始终可用于应用程序,同时最大限度地减少延迟和成本。如果您不想使用代理,则可以 APIs 直接从 Amazon AppConfig 数据平面服务拨打公共电话。

数据平面服务使用两个 API 操作,StartConfigurationSessionGetLatestConfiguration。数据平面服务还使用与 Amazon AppConfig 控制平面不同的端点

注意

数据面板服务取代了之前使用 GetConfiguration API 操作来检索配置数据的过程。GetConfiguration API 已弃用。

工作方式

以下是 Amazon AppConfig APIs 使用数据平面服务直接调用的过程的工作原理。

您的应用程序首先使用 StartConfigurationSessionAPI 操作建立配置会话来检索配置数据。然后,您的会话客户端会定期调用 GetLatestConfiguration 以检查和检索最新的可用数据。

在调用 StartConfigurationSession 时,代码发送以下信息:

  • 会话跟踪的 Amazon AppConfig 应用程序、环境和配置文件的标识符(ID 或名称)。

  • (可选)会话的客户端在调用至 GetLatestConfiguration 之间必须等待的最短时间。

作为响应, Amazon AppConfig 提供InitialConfigurationToken给会话的客户端,并在它第一次调GetLatestConfiguration用该会话时使用。

重要

此令牌在第一次调用 GetLatestConfiguration 时只能使用一次。您必须在对 GetLatestConfiguration 的每次后续调用中在 GetLatestConfiguration 响应 (NextPollConfigurationToken) 中使用新令牌。为了支持长时间轮询用例,令牌的有效期最长为 24 小时。如果 GetLatestConfiguration 调用使用过期的令牌,系统将返回 BadRequestException

调用 GetLatestConfiguration 时,您的客户端代码会发送它所拥有的最新 ConfigurationToken 值,并接收响应:

  • NextPollConfigurationToken:下次调用 GetLatestConfiguration 时要使用的 ConfigurationToken 值。

  • NextPollIntervalInSeconds:客户端在下次调用 GetLatestConfiguration 之前应等待的持续时间。

  • 配置:用于会话的最新数据。如果客户端已有最新版本的配置,则此字段可能为空。

重要

请注意以下重要信息。

  • 每个应用程序、环境、配置文件和客户端只能调用一次 StartConfigurationSessionAPI,才能与服务建立会话。这通常在应用程序启动时或首次检索配置之前完成。

  • 如果您的配置是使用 KmsKeyIdentifier 部署的,则接收配置的请求必须包含调用 kms:Decrypt 的权限。有关更多信息,请参阅 Amazon Key Management Service API 参考 中的 Decrypt

  • 以前用于检索配置数据的 API 操作 GetConfiguration 已弃用。GetConfiguration API 接口不支持加密配置。

(示例)通过调用检索配置 Amazon AppConfig APIs

以下 Amazon CLI 示例演示如何使用数据StartConfigurationSessionGetLatestConfiguration API 操作检索配置 Amazon AppConfig 数据。第一个命令启动配置会话。此调用包括 Amazon AppConfig 应用程序 IDs (或名称)、环境和配置配置文件。API 返回用于获取配置数据的 InitialConfigurationToken

aws appconfigdata start-configuration-session \ --application-identifier application_name_or_ID \ --environment-identifier environment_name_or_ID \ --configuration-profile-identifier configuration_profile_name_or_ID

系统使用以下格式的信息进行响应。

{ "InitialConfigurationToken": initial configuration token }

启动会话后,InitialConfigurationToken使用调GetLatestConfiguration用获取您的配置数据。配置数据将保存到 mydata.json 文件中。

aws appconfigdata get-latest-configuration \ --configuration-token initial configuration token mydata.json

GetLatestConfiguration 的第一次调用使用从 StartConfigurationSession 获取的 ConfigurationToken。返回信息如下。

{ "NextPollConfigurationToken" : next configuration token, "ContentType" : content type of configuration, "NextPollIntervalInSeconds" : 60 }

GetLatestConfiguration 的后续调用必须提供上一个响应的 NextPollConfigurationToken

aws appconfigdata get-latest-configuration \ --configuration-token next configuration token mydata.json
重要

请注意有关 GetLatestConfiguration API 操作的以下重要详细信息:

  • GetLatestConfiguration 响应包括显示配置数据的 Configuration 部分。仅当系统找到新的或更新的配置数据时,才会显示 Configuration 部分。如果系统找不到新的或更新的配置数据,则 Configuration 数据为空。

  • 在来自 GetLatestConfiguration 的每个响应中,您都会收到一个新的 ConfigurationToken

  • 我们建议您根据预算、配置部署的预期频率以及配置目标数以调整 GetLatestConfiguration API 调用的轮询频率。