@@ -24,36 +24,67 @@ This utility requires additional permissions to work as expected.
24
24
???+ note
25
25
Different parameter providers require different permissions.
26
26
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 ` |
36
36
37
37
### Fetching parameters
38
38
39
39
You can retrieve a single parameter using ` get_parameter ` high-level function.
40
40
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"
44
42
from aws_lambda_powertools.utilities import parameters
45
43
46
44
def handler (event , context ):
47
45
# Retrieve a single parameter
48
46
value = parameters.get_parameter(" /my/parameter" )
49
47
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} " )
55
48
```
56
49
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
+
57
88
### Fetching secrets
58
89
59
90
You can fetch secrets stored in Secrets Manager using ` get_secrets ` .
0 commit comments