Hnr*_*ppk 9 amazon-dynamodb aws-sdk aws-sdk-nodejs aws-sdk-js github-actions
最近是否有人注意到 AWS JS SDK 的行为发生了变化?
因为我在 Github Actions 中有一个 CI 管道,其中使用以下 docClient 设置启动本地 DynamoDB 并将其写入 DyanmoDB:
const docClient = new AWS.DynamoDB.DocumentClient({
region: 'localhost',
endpoint: 'http://localhost:8000',
accessKeyId: 'DEFAULTACCESSKEY',
secretAccessKey: 'DEFAULTSECRETKEY',
convertEmptyValues: true,
});
Run Code Online (Sandbox Code Playgroud)
到目前为止,这也非常有效,只是从今天中午开始,这个错误就失败了。
我没有更改源代码中的任何内容,只是再次运行 CI 作业。
UnrecognizedClientException: The Access Key ID or security token is invalid.
281
at Request.extractError (node_modules/aws-sdk/lib/protocol/json.js:80:27)
282
at Request.callListeners (node_modules/aws-sdk/lib/sequential_executor.js:106:20)
283
at Request.emit (node_modules/aws-sdk/lib/sequential_executor.js:78:10)
284
at Request.emit (node_modules/aws-sdk/lib/request.js:686:14)
Run Code Online (Sandbox Code Playgroud)
我在今天发布的 aws-sdk 包 (2.1409.0) 中找不到任何可以表明这一点的内容。
dom*_*egg 12
如果您使用这些 NPM 软件包,请进行以下替换:
dynamodb-localhost->aws-dynamodb-localserverless-dynamodb-local->serverless-dynamodb如果您使用dynamodb-localhost或serverless-dynamodb-local,您最近会遇到此错误,因为较新版本的 AWS DynamoDB Local(自 2023 年 6 月 28 日或版本 1.23.0 起)更改了验证访问密钥的方式。这些软件包会自动下载最新版本,因此它可能在您没有意识到的情况下已升级 - 导致事情明显失败而没有警告。
不幸的是,这些软件包似乎没有得到维护,NPM 已经两年多没有发布新版本了。
您可以改用aws-dynamodb-local和serverless-dynamodb维护的分支。(免责声明:我是这个分叉的贡献者)。它是此软件包的直接替代品,并进行更新以修复此错误。
迁移大约需要 2 分钟,自述文件中有完整的指南。当然,这一切仍然是开源的并获得麻省理工学院的许可。这个新套餐的所有权属于一家注册慈善机构,该慈善机构致力于在未来维护该套餐,并对社区的捐款开放。
自最新版本以来,对可以使用的访问密钥进行了强制执行:
\nDynamoDB local version 2.0.0 and greater AWS_ACCESS_KEY_ID can contain the only letters (A\xe2\x80\x93Z, a\xe2\x80\x93z) and numbers (0\xe2\x80\x939).
此外,如果您使用的是serverless-dynamodb-local等外部软件包,您可以升级到最新版本,因为它们都已被修改以处理 DynamoDB Local 中的此更改
\n\n| 归档时间: |
|
| 查看次数: |
4209 次 |
| 最近记录: |