Skip to content

Commit e13bbef

Browse files
committed
docs(parameters): add get_parameters_by_name
Signed-off-by: heitorlessa <[email protected]>
1 parent a22f7db commit e13bbef

File tree

1 file changed

+48
-17
lines changed

1 file changed

+48
-17
lines changed

Diff for: docs/utilities/parameters.md

+48-17
Original file line numberDiff line numberDiff line change
@@ -24,36 +24,67 @@ This utility requires additional permissions to work as expected.
2424
???+ note
2525
Different parameter providers require different permissions.
2626

27-
| Provider | Function/Method | IAM Permission |
28-
| ------------------- | -----------------------------------------------------------------| -----------------------------------------------------------------------------|
29-
| SSM Parameter Store | `get_parameter`, `SSMProvider.get` | `ssm:GetParameter` |
30-
| SSM Parameter Store | `get_parameters`, `SSMProvider.get_multiple` | `ssm:GetParametersByPath` |
31-
| SSM Parameter Store | If using `decrypt=True` | You must add an additional permission `kms:Decrypt` |
32-
| Secrets Manager | `get_secret`, `SecretsManager.get` | `secretsmanager:GetSecretValue` |
33-
| DynamoDB | `DynamoDBProvider.get` | `dynamodb:GetItem` |
34-
| DynamoDB | `DynamoDBProvider.get_multiple` | `dynamodb:Query` |
35-
| App Config | `get_app_config`, `AppConfigProvider.get_app_config` | `appconfig:GetLatestConfiguration` and `appconfig:StartConfigurationSession` |
27+
| Provider | Function/Method | IAM Permission |
28+
| ------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------- |
29+
| SSM Parameter Store | `get_parameter`, `SSMProvider.get` | `ssm:GetParameter` |
30+
| SSM Parameter Store | `get_parameters`, `SSMProvider.get_multiple` | `ssm:GetParametersByPath` |
31+
| SSM Parameter Store | If using `decrypt=True` | You must add an additional permission `kms:Decrypt` |
32+
| Secrets Manager | `get_secret`, `SecretsManager.get` | `secretsmanager:GetSecretValue` |
33+
| DynamoDB | `DynamoDBProvider.get` | `dynamodb:GetItem` |
34+
| DynamoDB | `DynamoDBProvider.get_multiple` | `dynamodb:Query` |
35+
| App Config | `get_app_config`, `AppConfigProvider.get_app_config` | `appconfig:GetLatestConfiguration` and `appconfig:StartConfigurationSession` |
3636

3737
### Fetching parameters
3838

3939
You can retrieve a single parameter using `get_parameter` high-level function.
4040

41-
For multiple parameters, you can use `get_parameters` and pass a path to retrieve them recursively.
42-
43-
```python hl_lines="1 5 9" title="Fetching multiple parameters recursively"
41+
```python hl_lines="5" title="Fetching a single parameter"
4442
from aws_lambda_powertools.utilities import parameters
4543

4644
def handler(event, context):
4745
# Retrieve a single parameter
4846
value = parameters.get_parameter("/my/parameter")
4947

50-
# Retrieve multiple parameters from a path prefix recursively
51-
# This returns a dict with the parameter name as key
52-
values = parameters.get_parameters("/my/path/prefix")
53-
for k, v in values.items():
54-
print(f"{k}: {v}")
5548
```
5649

50+
For multiple parameters, you can use either:
51+
52+
* `get_parameters` to recursively fetch all parameters by path
53+
* `get_parameters_by_name` to fetch distinct parameters by their full name. It also accepts custom caching, transform, and decrypt per parameter.
54+
55+
=== "get_parameters"
56+
57+
```python hl_lines="1 6"
58+
from aws_lambda_powertools.utilities import parameters
59+
60+
def handler(event, context):
61+
# Retrieve multiple parameters from a path prefix recursively
62+
# This returns a dict with the parameter name as key
63+
values = parameters.get_parameters("/my/path/prefix")
64+
for parameter, value in values.items():
65+
print(f"{parameter}: {value}")
66+
```
67+
68+
=== "get_parameters_by_name"
69+
70+
```python hl_lines="1 3 13"
71+
from aws_lambda_powertools.utilities import get_parameters_by_name
72+
73+
parameters = {
74+
"/develop/service/commons/telemetry/config": {"max_age": 300, "transform": "json"},
75+
"/develop/service/amplify/auth/userpool/arn": {"max_age": 300},
76+
# inherit default values
77+
"/develop/service/payment/api/capture/url": {},
78+
"/develop/service/payment/api/charge/url": {},
79+
}
80+
81+
def handler(event, context):
82+
# This returns a dict with the parameter name as key
83+
values = parameters.get_parameters_by_name(parameters=parameters, max_age=60)
84+
for parameter, value in values.items():
85+
print(f"{parameter}: {value}")
86+
```
87+
5788
### Fetching secrets
5889

5990
You can fetch secrets stored in Secrets Manager using `get_secrets`.

0 commit comments

Comments
 (0)