aws / aws/aws-extensions-for-dotnet-cli

Support versioned S3 artifacts for lambda package-ci code uploads

Open
#141 5 comments 0 reactions 0 assignees View on GitHub
feature-request module/cli-ext p3 queued
Dominant language
C#
Stars
393
Forks
90
Avg merge
2d 19m
Merged PRs (30d)
3

Description

Allowing the use of versioned S3 buckets for code artifacts could greatly simplify management of old versions & deduplication of new versions.

## Describe the Feature
When you repackage the same code artifact, it could be uploaded as a new version of the same S3 object

### Is your Feature Request related to a problem?
Managing version history across many thousand timestamped items is much more complex than using a single versioned S3 object.

## Proposed Solution
* If versioning is enabled for the target bucket, don't add a timestamp to the target location in `UploadToS3Async`: https://github.com/aws/aws-extensions-for-dotnet-cli/blob/d32048587fcbac721e183dcb260d3f6868cabfc6/src/Amazon.Common.DotNetCli.Tools/Utilities.cs#L556
* Don't add a timestamp to the generated zip file name here: https://github.com/aws/aws-extensions-for-dotnet-cli/blob/6b3c0eaf04bb62995ca1c5dd71b0db7e564e8b74/src/Amazon.Lambda.Tools/TemplateProcessor/TemplateProcessorManager.cs#L260

## Additional Context
We currently have many thousand objects in our S3 buckets from our CI system. Managing versioned artifacts is a lot simpler, particularly where ETags are able to be file hashes. Making these changes may also make it a lot simpler to only upload changed artifacts, per #83

---

This is a :rocket: Feature Request

Contributor guide

Open the contributing guide

Research direction

Start with UploadToS3Async in src/Amazon.Common.DotNetCli.Tools/Utilities.cs and the zip naming logic in src/Amazon.Lambda.Tools/TemplateProcessor/TemplateProcessorManager.cs. Review how versioned target buckets should affect both locations, then verify that repeated packaging uses the requested S3 object behavior without timestamps.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, csharp
Domain
cli, cloud
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.