Amazon web services Amazon Web服务:NoCredentialsError:找不到凭据
我正在使用amazon web services cli。我使用一个makefile来构建我的lambda项目并将其上传到aws lambda。我在windows计算机上,使用powershell调用make 我尝试用以下几行删除lambda函数Amazon web services Amazon Web服务:NoCredentialsError:找不到凭据,amazon-web-services,makefile,cygwin,aws-lambda,Amazon Web Services,Makefile,Cygwin,Aws Lambda,我正在使用amazon web services cli。我使用一个makefile来构建我的lambda项目并将其上传到aws lambda。我在windows计算机上,使用powershell调用make 我尝试用以下几行删除lambda函数 AWS_PATH = /cygdrive/c/Users/TestBox/AppData/Roaming/Python/Scripts/aws AWS_WIN_PATH = $(shell cygpath -aw ${AWS_PATH}) AWS_RE
AWS_PATH = /cygdrive/c/Users/TestBox/AppData/Roaming/Python/Scripts/aws
AWS_WIN_PATH = $(shell cygpath -aw ${AWS_PATH})
AWS_REGION = eu-west-2
lambda_delete:
$(AWS_WIN_PATH) lambda delete-function --function-name LambdaTest --region $(AWS_REGION) --debug
我得到了这个错误
NoCredentialsError:找不到凭据
找不到凭据。您可以通过运行“aws配置”来配置凭据
运行aws配置列表打印出有效的默认配置文件
我想问题是因为我使用的是cygwin在windows机器上安装的gnu make。使用powershell调用make
因此,当aws评估~/.aws/凭证时,凭证的路径看起来像“cygdrive/c/users/testbox/.aws/credentials”,而不是“c:\users\testbox.aws\credentials”。我想:)
我对aws本身的路径也有同样的问题,必须使用$(shell cygpath-aw${aws_path})将其转换为windows python可以使用的路径
有没有办法将凭据直接传递给lambda delete函数,或者通过文件路径间接传递?我似乎想不出办法,因为搜索凭证的代码是botocore的内部代码
这是不是有办法知道?
< P>另类解决方案,考虑使用 使用AWS SAM模板使用CloudFormation部署Lambda函数和AWS资源- 编辑SAM模板并定义AWS资源。例如,定义代码的Lambda函数/路径
打包并将本地代码上载到S3李>aws cloudformation package
使用S3上的更新代码提供和更新aws资源李>aws cloudformation部署
make
麻烦。您还可以将资源版本化为代码,而不必担心在make文件中跟踪或添加新的awsapi
更复杂的无服务器框架供参考:
- AWS圣杯
- Django/烧瓶+Lambda
- 跨云无服务器解决方案