Heim >Backend-Entwicklung >Golang >Wie rufe ich SAM mit Golang von außerhalb des „template'-Verzeichnisses auf?
php-Editor Youzi zeigt Ihnen, wie Sie mit Golang SAM von außerhalb des „template“-Verzeichnisses aufrufen. SAM (Serverless Application Model) ist ein Entwicklungsframework zum Definieren und Bereitstellen serverloser Anwendungen, und Golang ist eine effiziente und benutzerfreundliche Programmiersprache. Während des Entwicklungsprozesses müssen wir möglicherweise die SAM-Vorlage aus einem externen Verzeichnis aufrufen. In diesem Artikel wird dieser Prozess ausführlich beschrieben. Mit den folgenden Schritten können Sie problemlos externe SAM-Vorlagen in Golang verwenden.
Ich habe ein Projekt mit mehreren Modulen, bei dem ein Modul zum Ausführen von Integrationstests verwendet wird und ein anderes Modul meine (zu testende) Anwendung enthält. Ich möchte build
和 invoke
von außerhalb des Sam-Vorlagenverzeichnisses ausführen.
Der Build funktioniert einwandfrei, wenn er mit dem Befehl sam build -ttests/helloworld/template.yaml
wie unten gezeigt ausgeführt wird
~/w/r/sommelier (feature-integrationtests|✔) $ sam build -t tests/helloworld/template.yaml building codeuri: /users/kuldeep/work/repos/sommelier/lambdas/import-recommendations runtime: provided.al2 metadata: {'buildmethod': 'go1.x'} architecture: arm64 functions: helloworldfunction running gomodulesbuilder:build build succeeded built artifacts : .aws-sam/build built template : .aws-sam/build/template.yaml commands you can use next ========================= [*] validate sam template: sam validate [*] invoke function: sam local invoke [*] test function in the cloud: sam sync --stack-name {{stack-name}} --watch [*] deploy: sam deploy --guided
Aber wenn ich versuche anzurufen, scheitert es wie folgt
~/W/r/sommelier (feature-integrationTests|✔) $ sam local invoke -t tests/helloworld/template.yaml Invoking bootstrap (provided.al2) Skip pulling image and use local one: public.ecr.aws/sam/emulation-provided.al2:rapid-1.70.0-arm64. Mounting /Users/kuldeep/Work/repos/sommelier/lambdas/import-recommendations as /var/task:ro,delegated inside runtime container START RequestId: 53716d16-562c-42f1-bad7-b415e27004b3 Version: $LATEST 24 Jan 2023 09:56:03,133 [ERROR] (rapid) Init failed error=fork/exec /var/task/bootstrap: no such file or directory InvokeID= Function 'HelloWorldFunction' timed out after 5 seconds END RequestId: 5eeafe42-303b-40b4-bf96-d74809bb8636 REPORT RequestId: 5eeafe42-303b-40b4-bf96-d74809bb8636 Init Duration: 0.13 ms Duration: 5000.00 ms Billed Duration: 5000 ms Memory Size: 128 MB Max Memory Used: 128 MB No response from invoke container for HelloWorldFunction
Was muss ich tun, um dieses Ziel zu erreichen?
Ich habe es herausgefunden. Im Grunde sam build -t ......
在当前工作目录中构建并生成工件。要运行已构建的内容,我们不需要指定模板位置,而是直接运行 sam local invoke
Das obige ist der detaillierte Inhalt vonWie rufe ich SAM mit Golang von außerhalb des „template'-Verzeichnisses auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!