在适用于 Ruby 的 AWS SDK 中配置服务客户端 - AWS 适用于 Ruby 的 SDK

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

在适用于 Ruby 的 AWS SDK 中配置服务客户端

要以编程方式访问 AWS 服务,适用于 Ruby 的 AWS SDK 对每个 AWS 服务使用一个客户端类。例如,如果您的应用程序需要访问 Amazon EC2,则您的应用程序会创建一个 Amazon EC2 客户端对象来与该服务交互。然后,您可以使用服务客户端向该 AWS 服务 发出请求。

要向 AWS 服务发出请求,您必须先创建和配置服务客户端。对于您的代码使用的每个 AWS 服务,它都有自己的 gem 和用于与之交互的专用类型。客户端为服务公开的每个 API 操作公开一种方法。

配置 SDK 行为的方法有很多,但归根结底,一切都与服务客户端的行为有关。除非使用基于配置创建的服务客户端,否则任何配置都不会生效。

在使用 AWS 服务进行开发时,您必须确定您的代码是如何使用 AWS 进行身份验证的。您还必须设置要使用的 AWS 区域。

AWS SDK 和工具参考指南还介绍了在许多 AWS SDK 中常见的设置、功能和其他基础概念。

共享 configcredentials 文件可用于配置设置。有关所有 AWS SDK 设置,请参阅《AWS SDK 和工具参考指南》中的设置参考

可使用不同的配置文件来存储不同的配置。要指定 SDK 加载的活动配置文件,可以使用 AWS_PROFILE 环境变量或 Aws.configprofile 选项。

设置的优先级

全局设置配置了大多数 SDK 支持并在整个 AWS 服务 中具有广泛影响的功能、凭证提供者和其他功能。所有 AWS SDK 都有一系列地点(或来源),它们会检查这些地点(或来源),以便找到全局设置的值。并非所有设置在所有来源中都可用。以下是设置查找优先级的方法:

  1. 在代码中或服务客户端本身上设置的任何显式设置均优先于其他任何设置。

    1. 直接传入客户端构造函数的任何参数优先级最高。

    2. 检查 Aws.config 中是否存在全局或服务特定设置。

  2. 系统会检查环境变量。

  3. 已检查共享 AWS credentials 文件。

  4. 已检查共享 AWS config 文件。

  5. 最后才会使用适用于 Ruby 的 AWS SDK 源代码本身提供的任何默认值。