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

不使用 Amazon AppConfig 代理检索配置数据

从 Amazon AppConfig 检索配置数据的建议方法是使用 Amazon 开发和管理的 Amazon AppConfig 代理。使用该代理,可以在本地缓存配置数据,并以异步方式轮询 Amazon AppConfig 数据面板服务来获取更新。这种缓存/轮询过程可确保配置数据始终可用于应用程序,同时最大限度地减少延迟和成本。如果您不想使用代理,则可以直接从 Amazon AppConfig 数据面板服务调用公有 API。

数据面板服务使用两个 API 操作:StartConfigurationSessionGetLatestConfiguration。数据面板服务还使用 Amazon AppConfig 控制面板中的 separate endpoints

注意

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

工作方式

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

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

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

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

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

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

重要

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

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

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

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

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

重要

请注意以下重要信息。

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

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

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

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

以下 Amazon CLI 示例演示如何使用 Amazon AppConfig 数据 StartConfigurationSessionGetLatestConfiguration API 操作检索配置数据。第一个命令启动配置会话。该调用包括 Amazon AppConfig 应用程序、环境和配置文件的 ID(或名称)。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 调用的轮询频率。