使用serverless invoke local时AWS.config.credentials返回null如何解决?
解决Serverless Invoke Local下AWS SDK无法加载本地凭证的问题
以下是几种可行的解决方法:
在Serverless配置文件中指定AWS Profile
在serverless.yml的provider区块中添加profile字段,对应你本地~/.aws/credentials文件中的配置项:provider: name: aws profile: your-local-profile-name # 替换为你的实际profile名称运行命令时显式指定Profile
执行invoke local命令时通过--aws-profile参数指定本地凭证profile:serverless invoke local --function your-function-name --aws-profile your-local-profile-name代码中手动加载凭证
如果需要临时调试,可以在appsync.js中手动加载本地凭证文件:const AWS = require('aws-sdk'); // 加载指定profile的凭证 const credentials = new AWS.SharedIniFileCredentials({ profile: 'your-local-profile-name' }); AWS.config.credentials = credentials;检查并清理冲突的环境变量
确保当前终端环境中没有设置无效的AWS_ACCESS_KEY_ID或AWS_SECRET_ACCESS_KEY环境变量,这些变量会覆盖本地凭证文件的加载。可以通过以下命令清空(仅当前终端生效):unset AWS_ACCESS_KEY_ID unset AWS_SECRET_ACCESS_KEY
内容的提问来源于stack exchange,提问作者JimmyTheCode
相关产品推荐
相关产品推荐

