[ECS] [request]: Support version and label filters for parameter store
- Dominant language
- Shell
- Stars
- 5.4k
- Forks
- 334
- PR merge metrics
- No merged PRs in 30d
Description
### Community Note
* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment
**Tell us about your request**
The Parameter Store API allows the user to specify a version or label simply by appending it to the parameter name:
```
# version
aws ssm get-parameters --names "/hello-world/config.json:2"
# label
aws ssm get-parameters --names "/hello-world/config.json:testlabel"
```
However, there is no (documented) way to specify a version or label of a Parameter Store value in our task definition.
In our task definition, we've tried appending a version in a similar way:
```json
"secrets": [
{
"name": "SERVICE_CONFIG_JSON",
"valueFrom": "/hello-world/config.json:2"
}
]
```
However, this results in the following error:
> The Systems Manager parameter name specified for secret SERVICE_CONFIG_JSON is invalid. The parameter name can be up to 2048 characters and include the following letters and symbols: a-zA-Z0-9_.-,
**Which service(s) is this request for?**
ECS
**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
We wish to use the version or labeling feature provided by Parameter Store in our task definitions. Instead, we must use completely separate, but mostly duplicated parameters.
We are suggesting supporting the colon-delimited format of the Parameter Store API to specify the version and label of configs in the `valueFrom` parameter, or otherwise allow us to specify this value in our task definitions through a new `secrets` parameter, ie `selector`:
```json
"secrets": [
{
"name": "SERVICE_CONFIG_JSON",
"valueFrom": "/hello-world/config.json",
"selector": "label or version"
}
]
```
Contributor guide
Research direction
Start by reviewing the ECS task-definition secrets behavior and the Systems Manager Parameter Store syntax shown in the issue. Determine whether version and label selection belongs in valueFrom or a new selector field, then verify that the completed behavior retrieves the requested parameter version or label without requiring duplicate parameters.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws
- Domain
- cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100