我正在使用亞馬遜網絡服務cli。我使用makefile來構建我的lambda項目並將其上傳到aws lambda。我在一臺Windows機器上使用PowerShell來調用make。亞馬遜網絡服務:NoCredentialsError:找不到憑據
我試圖刪除我的lambda函數與以下行
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 configure」來配置憑據。
Running aws configure list打印出一個有效的默認配置文件。
我認爲這個問題是因爲我在Windows機器上使用由cygwin安裝的gnu make。使用PowerShell來調用make。
因此,當〜/ .aws/credentials被評估時,證書的路徑如下所示:「cygdrive/c/users/testbox/.aws/credentials」而不是「c:\ users \ testbox.aws \ credentials」 AWS。我認爲:)
我有與aws本身的路徑相同的問題,並不得不使用$(shell cygpath -aw $ {AWS_PATH})將其轉換爲一個窗口蟒蛇可以使用的路徑。
是否有任何方式直接將憑證直接傳遞給lambda刪除函數或間接通過文件路徑?我似乎不能想到一種方式,因爲搜索憑據的代碼是botocore的內部代碼。
有沒有辦法解決這個問題?
GNU make的默認的shell /斌/ sh「,如果這個變量沒有在你的makefile中設置,程序/ bin/sh將被用作shell。」 HTTPS://www.gnu。org/software/make/manual/html_node/Choosing-the-Shell.html – strongjz
@strongjz您能否更詳細地解釋解決方案? – SRG