私はamazon Webサービスcliを使用しています。私はmakefileを使って私のラムダプロジェクトをビルドし、それをaws lambdaにアップロードします。私はWindowsマシン上で、PowerShellを使ってmakeを呼び出します。Amazon Web Services:NoCredentialsError:資格情報を見つけることができません
私は..次の行
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」を実行すると、資格情報を設定できます。
aws configure listを実行すると、有効なデフォルトプロファイルが出力されます。
私はgnu makeをcygwinによってWindowsマシンにインストールしているので、問題があると思います。 powershellを使ってmakeを呼び出します。
〜/ .aws/credentialsが以下のように評価された場合、資格情報へのパスは "cygdrive/c/users/testbox/.aws/credentials"の代わりに "c:\ users \ testbox.aws \ credentials" aws。私は思う:)
私はaws自体のパスに同じ問題があり、$(shell cygpath -aw $ {AWS_PATH})を使用して、Pythonが使用できるパスのウィンドウに変換する必要がありました。
ラムダ削除機能に直接資格情報を渡す方法はありますか、またはファイルへのパスを通じて間接的に資格情報を渡す方法はありますか?資格情報を検索するコードがボトコアの内部にあるので、私は考え方がないようです。
これを回避する方法はありますか?
GNUのmakeのデフォルトのシェルは/ binに/ sh、 "この変数があなたのmakefileに設定されていない場合、プログラム/ bin/shはシェルとして使用されます。" https://www.gnu。org/software/make/manual/html_node/Choosing-the-Shell.html – strongjz
@strongjzもう少し詳細に解を説明できますか? – SRG