gpt4 book ai didi

node.js - AWS EC2 IAM 角色凭证

转载 作者:太空宇宙 更新时间:2023-11-03 22:26:33 24 4
gpt4 key购买 nike

使用适用于 AWS 的 Node sdk,我尝试使用附加到运行我的 Node 应用程序的 EC2 实例的 IAM 角色提供的凭证和权限。

根据 sdk 文档,可以使用 EC2MetadataCredentials 类为 sdk 分配配置属性来完成。

在我使用 sdk 访问 DynamoDB 实例的文件中,我有配置代码:

import AWS from 'aws-sdk'

AWS.config.region = 'us-east-1'
AWS.config.credentials = new AWS.EC2MetadataCredentials({
httpOptions: { timeout: 5000 },
maxRetries: 10,
retryDelayOptions: { base: 200 }
})

const dynamodb = new AWS.DynamoDB({
endpoint: 'https://dynamodb.us-east-1.amazonaws.com',
apiVersion: '2012-08-10'
})

但是,当我尝试访问网络应用程序时,我总是收到一条错误消息:

Uncaught TypeError: d.default.EC2MetadataCredentials is not a constructor

Uncaught TypeError: _awsSdk2.default.EC2MetadataCredentials is not a constructor

尽管这是文档中的确切用法!我是否遗漏了一些小东西?

<小时/>

更新:

从文件中删除 credentialsregion 定义会导致另一个错误:

错误:配置中缺少区域|凭据

最佳答案

我不知道这是否仍然与您相关,但您确实需要配置 EC2MetadataCredentials,因为它不在默认的 ProviderChain 中(在 sdk 中搜索 new AWS.CredentialProviderChain([ in node_loader.js )。
看来您可能有旧版本的 aws_sdk,因为该代码适用于我:

import AWS from 'aws-sdk';
...
AWS.config.credentials = new AWS.EC2MetadataCredentials();

关于node.js - AWS EC2 IAM 角色凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45423315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com