Wenn die Version von pip in SAM und die Version von local pip nicht übereinstimmen, funktioniert dies möglicherweise nicht. Daher muss die Version von local pip korrigiert werden.
Artikelname | Ausführung |
---|---|
OS | MacOS High Sierra 10.13.6 |
VSCode | 1.40.2 |
SAM | 0.37.0 |
Python | 3.7.3 |
pip | 19.3.1(19 im Artikel.2.Wechseln Sie zu 3) |
Es funktioniert möglicherweise nicht, wenn Sie in einer lokalen Umgebung mit dem AWS Toolkit aus VS Codes "Lokal ausführen" testen möchten. Zum Beispiel der folgende Fehler.
Local invoke of SAM Application has ended.
Preparing to run app.lambda_handler locally...
Building SAM Application...
An error occurred trying to run SAM Application locally: Error with child process: Building resource 'awsToolkitSamLocalResource'
,Running PythonPipBuilder:ResolveDependencies
,Error: PythonPipBuilder:ResolveDependencies - Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: 'module' object is not callable
Es scheint, dass das auf der SAM-Seite aufgetretene Problem vom AWS Toolkit von VS Code noch nicht behoben wurde. GitHub : sam build fails for python3.7 functions with pip==19.3 installed Wenn Sie dieselben Einstellungen versuchen und den folgenden Befehl vom Terminal aus ausführen, gibt es kein Problem, auch wenn SAM und Pip-Version identisch sind.
$ sam local invoke HelloWorldFunction --event events/event.json
Obwohl es sich um eine vorübergehende Maßnahme handelt, können Sie die Version von pip auch über VS-Code normal ausführen, wenn Sie sie wie folgt ändern.
$ pip install pip==19.2.3
Protokollieren Sie "Lokal ausführen" von VS Code, nachdem Sie die Version von pip geändert haben
Fetching lambci/lambda:python3.7 Docker container image......
Mounting /tmp/aws-toolkit-vscode/vsctkytL1AY/output/awsToolkitSamLocalResource as /var/task:ro,delegated inside runtime container
...(Unterlassung)...
{"statusCode":200,"body":"{\"message\": \"hello worldXXX\"}"}