I’m looking at using Pulumi for a service using AW...
# aws
g
I’m looking at using Pulumi for a service using AWS Fargate. I noticed the TypeScript and Golang examples of this are quite different in terms of the resources they create (https://github.com/pulumi/examples/tree/master/aws-ts-hello-fargate vs https://github.com/pulumi/examples/tree/master/aws-go-fargate). It looks like the TS example is using Crosswalk, which is unavailable for Golang. Any recommendations or gotchas I should take into consideration when selecting which approach to work from?
b
you're correct in that crosswalk isn't currently available in Go.
there aren't any "gotchas" in terms of language support, but crosswalk will make your life easier 🙂
g
Thanks. The service I’m deploying is built in golang, but if Crosswalk will be simpler in the long run, I’m not opposed to using TS. In the Crosswalk version there are 34 resources created vs. 11 in the golang sample. It looks like Crosswalk uses a VPC, different type of load balancer, and a few other changes and looks closer to ‘best practice’, whereas the golang is more of a proof concept. Is that correct?
Also, is it correct with more effort it’s possible to create the equivalent set of resources to TS/Crosswalk using the golang sample?
1
b
the Go example looks up an existing VPC, the TS example creates a new one. Neither is "best practice" - it's more the choices made when putting it together. AWS provides so many services there are a lot of ways to skin the cat 🙂
and yes, you can create the exact same experience in the Go SDK as crosswalk
crosswalk is a "component" which is a collection of Pulumi resources to make your life easier
b
The main "gotcha" in terms of language support is lack of dynamic provider support in Go
1
b
if you want to use the same language as your app, Go is a good choice
g
Thanks! Seems like the tradeoffs are pretty straightforward.