winglang / wing

A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡
https://winglang.io
Other
5.05k stars 198 forks source link

Specify cloud.Bucket name #6725

Open ekeren opened 5 months ago

ekeren commented 5 months ago

Use Case

you can now create a bucket with a name

Proposed Solution

new cloud.Bucket(name: "a-globally-unique-name-or-it-will-fail-when-trying-to-deploy-on-aws") ;

Implementation Notes

No response

Component

SDK

Community Notes

Chriscbr commented 4 months ago

Out of curiosity what's the use case for using a specific bucket name? On AWS all buckets globally must have unique names, so any fixed name you choose in your Wing source code would only be able to be used once (and it would cause issues if you are trying to define a reusable library or deploy your app to multiple environments).

Maybe it makes sense to support this through a platform parameter instead?

ekeren commented 4 months ago

I was working on recreating a blog post that used a bucket as the source of images

But even when I was using bucket before, it was convenient to have names especially when they where public. It is true the I had buckets prefixed with the environment.

Do you mind showing how this will work with platform parameters, I am interested seeing a simple solution for such a common requirement

hasanaburayyan commented 4 months ago

Do you mind showing how this will work with platform parameters, I am interested seeing a simple solution for such a common requirement

@ekeren

It would be simple to add custom prefix to a bucket using platform parameters, i.e. you could have a wing.toml with something like

[ my-tf-aws-platform ]
bucket_prefix = "blah"

And then just a simple hook on newInstance that adds this to instances of buckets

However if your naming conventions or even desired full name is different per bucket, then this is not ideal for platform parameters, as it becomes very obscure and the platform code becomes tightly coupled to your Wing code.


Im not sure of the use case for specifying full names of bucket, I know it can definitely cause issues as @Chriscbr mentioned with libraries.

I know there are certain types of patterns where naming buckets matter, like very simple static sites hosted in s3 sometimes will use a www.xxxx.com naming convention.

github-actions[bot] commented 1 month ago

Hi,

This issue hasn't seen activity in 90 days. Therefore, we are marking this issue as stale for now. It will be closed after 7 days. Feel free to re-open this issue when there's an update or relevant information to be added. Thanks!