Blog
Wie man AWS SAM mit Go in Visual Studio Code verwendet

Richten Sie Visual Studio Code als Ihre IDE ein, um einen AWS SAM-Stack mit Go zu erstellen und bereitzustellen.
Ich habe vor kurzem begonnen, mit Go zu experimentieren und die beste Art zu lernen ist, damit zu spielen und etwas zu bauen. Also beschloss ich, eine einfache Anwendung zu erstellen. Dabei stieß ich auf das Problem, dass meine IDE es nicht mochte, wenn ich viele Go-Module in einem Projekt hatte.
Projekt-Layout
Mit AWS SAM können Sie Ihren Stack bauen und bereitstellen oder über eine CI/CD-Pipeline, der Prozess ist derselbe. Zunächst führen Sie eine
Das Problem, mit dem ich konfrontiert wurde, war, dass jede Funktion eine go.mod im Quellordner benötigt. Visual Studio Code erwartet eine einzige go.mod Datei im Projekt.
Infolgedessen werden Importe im Unit-Test nicht erkannt:
- Die
RequestEventStruktur. - Die Methode
handler. - Die
ResponseEventStruktur.
Der Grund dafür ist, dass die IDE die GOPATH auf das Stammverzeichnis des Projekts gesetzt hat. Daher sind die Importe nicht korrekt. Durch die Verwendung von Arbeitsbereichsordnern können Sie dieses Verhalten ändern, so dass jeder Ordner seinen eigenen Bereich hat.
Ab Go 1.16+ ist der Standard-Build-Modus von GOPATH auf Go-Module umgestellt worden.
Zu diesem Zweck müssen Sie eine Datei workspace.code-workspace erstellen. Legen Sie diese im Stammverzeichnis Ihres Projekts mit folgendem Inhalt ab:
{
"folders": [
{
"path": "functions/api"
},
{
"path": "functions/confirm"
},
{
"path": "functions/ship"
},
{
"path": "functions/stock"
},
{
"path": "."
}
]
}
Da nun jedes Go-Modul in seinem eigenen Bereich lebt, sind die Importe korrekt. Daher können Sie mit der Aktion ⌘ click durch den Code navigieren.
Fazit
Wenn Sie mit vielen Go-Modulen in einem Projekt arbeiten, ist es wichtig, Ihre IDE zu konfigurieren. Dies verbessert die Lesbarkeit, reduziert Fehler und erhöht Ihre Entwicklungsgeschwindigkeit!
Verfasst von

Joris Conijn
Joris is the AWS Practise CTO of the Xebia Cloud service line and has been working with the AWS cloud since 2009 and focussing on building event-driven architectures. While working with the cloud from (almost) the start, he has seen most of the services being launched. Joris strongly believes in automation and infrastructure as code and is open to learning new things and experimenting with them because that is the way to learn and grow.
Unsere Ideen
Weitere Blogs
Contact



