我在项目中经常使用AWS-SDK。我发现加载共享凭据文件(~/.aws/credentials(或在所有需要的地方复制粘贴凭据都很耗时。
只是想知道是否有一种方法可以在全局级别配置它,这样我就不必在nodejs代码中到处包含它们。
提前谢谢。
不知道耗时是什么意思。你的意思是运行时还是开发时?
默认情况下,所有SDK都将根据凭据提供程序的特定层次结构自动加载凭据,包括~/.aws/credentials
。如果使用这些受支持的机制之一,则通常不需要显式加载凭据。
例如,boto3(Python SDK(按顺序从以下位置加载它们:
- 创建客户端对象时传递凭据
- 创建会话对象时传递凭据
- 环境变量
- 共享凭据文件(~/.aws/credentials(
- AWS配置文件(~/.AWS/config(
- 假定角色提供程序
- Boto2配置文件(/etc/boto.cfg和~/.boto(
- 已配置IAM角色的Amazon EC2实例上的实例元数据服务
通常,如果您在开发人员机器上运行应用程序,您可能会使用#4和#5。如果您的应用程序运行在AWS基础设施(如EC2、ECS或Lambda(上,那么您将使用#8。两者都不需要编写任何显式代码来加载凭据。