Comments (6)
Hi, thanks for the asking the question. sam deploy
does not know which bucket too upload to initially for deployment, hence the --s3-bucket flag. However the reason why we can't use the buckets defined in the template file is that they are not yet created yet, they first need to be uploaded then deployed. However before that happens, an actual bucket needs to be provided for the deployment to be uploaded too, hence the ProdArtifactBucket. Let me know if there any other questions you had or if that explanation did not make sense.
from aws-sam-cli.
@jysheng123 Thank you for reply. Yes, the explanation makes sense.
I am simply worried about the fact that just in order to create a simple Hello Lambda sam project you need:
- S3 bucket for deployment pipeline
- S3 bucket for logging of the previous bucket, and
- S3 bucket for
--s3-bucket
flag.
This seems to be overkill, doesn't it?
So, what I do is first I run pipeline without providing a bucket (inside samconfig.toml
). Upon successful deployment , the pipeline stack it will start the pipeline (for the first time), but will fail building because the no bucket is provided. Then I simply copy the newly created S3 bucket, update the samconfig.toml
with this bucket, commit and push. It triggers the pipeline again and deploys successfully. Thus I reduce the the num of buckets to 2 at the cost of the first failure. Makes sense or looks like antipattern? Actually, I could not find a flag saying to the pipeline not to run when it is first created. If it existed then I could just turn off the first run and could avoid that failure. I think running the pipeline as soon as it is deployed does not make much sense. It should be only deployment and not trigger. What do you think?
from aws-sam-cli.
Hmm, I understand your logic but creating multiple buckets doesn't cost much resources at all, and to us, this many buckets is normal for creating a deployment pipeline since each of the buckets serve it's own unique purpose. That is why we don't really have functionality for not running the pipeline when it is first created. Is there a use case in why you want to only have 2 buckets? If you specify the bucket getting deployed before, you would limit the buckets created in the process to 2 as well.
from aws-sam-cli.
@jysheng123 No specific use case, just want to keep S3 Dashboard clean :-). But I found another solution.
When I first time create a pipeline I store the bucket as an ENV var for a specific stage/action like
EnvironmentVariables: !Sub |
[
{"name": "ENV_BUCKET", "value": "${PipelineArtifactsBucket}"}
]
and later use it with the deploy command
sam deploy --config-env ${CONFIGENV} \
--s3-bucket ${ENV_BUCKET} \
--resolve-image-repos \
--no-confirm-changeset \
--no-fail-on-empty-changeset
from aws-sam-cli.
Ah sounds good, thanks for bringing up the question then, apologies if I was not helpful enough for this question.
from aws-sam-cli.
⚠️ COMMENT VISIBILITY WARNING⚠️
Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.
from aws-sam-cli.
Related Issues (20)
- `sam init` fails to deploy a standard sample on Windows platform HOT 3
- Bug: sam local start-api not working in a docker-out-of-docker setup, due to an empty /var/task directory. HOT 2
- Bug: TITLE"Invalid API identifier specified" when attaching resources to an existing AWS::ApiGatewayV2::Api HOT 2
- Bug: sam build - UnsupportedBuilderException HOT 3
- SAM build crashes using terraform HOT 9
- Bug: sam local start-api - AttributeError HOT 9
- SAM local invocation with CDK generated template with typescript not able to find module index (index.mjs) HOT 5
- How to add tags with sam deploy HOT 10
- Bug: Got issue when using 1.116.0_1 for deployment HOT 2
- Bug: [WinError 3] The system cannot find the path specified HOT 4
- Feature request: Deploy Lambdas with concurrency HOT 3
- Bug: sam sync with python causes endless cpu saturation HOT 11
- Bug: sam build - EmptyKeyError HOT 1
- Bug: Unable to run sam local invoke on Apple Silicon HOT 13
- Cannot sam local start-api without specifying an image HOT 1
- Bug: sam local start-api - ReadTimeout HOT 3
- Bug: "Timed out while attempting to establish a connection to the container" error after fresh install of Docker and AWS SAM HOT 4
- Bug: sam build - JSONDecodeError HOT 1
- Bug: No new Lambda Versions are deployed with Lambda configurations changes HOT 2
- Bug: Change Parameter's Default value doesn't reflect HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aws-sam-cli.