@@ -33,7 +33,7 @@ This utility requires additional permissions to work as expected.
33
33
| SSM | ** ` get_parameters ` ** , ** ` SSMProvider.get_multiple ` ** | ** ` ssm:GetParametersByPath ` ** |
34
34
| SSM | ** ` get_parameters_by_name ` ** , ** ` SSMProvider.get_parameters_by_name ` ** | ** ` ssm:GetParameter ` ** and ** ` ssm:GetParameters ` ** |
35
35
| SSM | If using ** ` decrypt=True ` ** | You must add an additional permission ** ` kms:Decrypt ` ** |
36
- | Secrets | ** ` get_secret ` ** , ** ` SecretsProvider.get ` ** | ** ` secretsmanager:GetSecretValue ` ** |
36
+ | Secrets | ** ` get_secret ` ** , ** ` SecretsProvider.get ` ** | ** ` secretsmanager:GetSecretValue ` ** |
37
37
| DynamoDB | ** ` DynamoDBProvider.get ` ** | ** ` dynamodb:GetItem ` ** |
38
38
| DynamoDB | ** ` DynamoDBProvider.get_multiple ` ** | ** ` dynamodb:Query ` ** |
39
39
| AppConfig | ** ` get_app_config ` ** , ** ` AppConfigProvider.get_app_config ` ** | ** ` appconfig:GetLatestConfiguration ` ** and ** ` appconfig:StartConfigurationSession ` ** |
@@ -53,26 +53,34 @@ For multiple parameters, you can use either:
53
53
* ` get_parameters_by_name ` to fetch distinct parameters by their full name. It also accepts custom caching, transform, decrypt per parameter.
54
54
55
55
=== "getting_started_recursive_ssm_parameter.py"
56
- ```python hl_lines="3 10 13"
56
+ This is useful when you want to fetch all parameters from a given path, say ` /dev ` , e.g., ` /dev/config ` , ` /dev/webhook/config `
57
+
58
+ To ease readability in deeply nested paths, we strip the path name. For example:
59
+
60
+ * `/dev/config` -> `config`
61
+ * `/dev/webhook/config` -> `webhook/config`
62
+
63
+ ```python hl_lines="3 11 18"
57
64
--8<-- "examples/parameters/src/getting_started_recursive_ssm_parameter.py"
58
65
```
59
66
60
67
=== "getting_started_parameter_by_name.py"
61
- ```python hl_lines="3 14 "
68
+ ```python hl_lines="3 15 "
62
69
--8<-- "examples/parameters/src/getting_started_parameter_by_name.py"
63
70
```
64
71
65
- ???+ tip " ` get_parameters_by_name ` supports graceful error handling "
66
- By default, we will raise ` GetParameterError ` when any parameter fails to be fetched. You can override it by setting ` raise_on_error=False ` .
72
+ === "get_parameter_by_name_error_handling.py "
73
+ !!! tip "Failing gracefully if one or more parameters cannot be fetched or decrypted."
67
74
68
- When disabled , we take the following actions:
75
+ By default , we will raise ` GetParameterError ` when any parameter fails to be fetched.
69
76
70
- * Add failed parameter name in the `_errors` key, _e.g._, `{_errors: ["/param1", "/param2"]}`
71
- * Keep only successful parameter names and their values in the response
72
- * Raise `GetParameterError` if any of your parameters is named `_errors`
77
+ You can override it by setting `raise_on_error=False`. When disabled, we take the following actions:
73
78
74
- === "get_parameter_by_name_error_handling.py"
75
- ```python hl_lines="3 5 12-13 15"
79
+ * Add failed parameter name in the ` _errors ` key, _ e.g._ , ` {_errors: ["/param1", "/param2"]} `
80
+ * Keep only successful parameter names and their values in the response
81
+ * Raise ` GetParameterError ` if any of your parameters is named ` _errors `
82
+
83
+ ```python hl_lines="3 5 13-17"
76
84
--8<-- "examples/parameters/src/get_parameter_by_name_error_handling.py"
77
85
```
78
86
@@ -389,16 +397,16 @@ You can use arbitrary keyword arguments to pass it directly to the underlying SD
389
397
390
398
Here is the mapping between this utility's functions and methods and the underlying SDK:
391
399
392
- | Provider | Function/Method | Client name | Function name |
393
- | ------------------- | ------------------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
394
- | SSM Parameter Store | ` get_parameter ` | ` ssm ` | [ get_parameter] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.get_parameter ) {target="_ blank"} |
395
- | SSM Parameter Store | ` get_parameters ` | ` ssm ` | [ get_parameters_by_path] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.get_parameters_by_path ) {target="_ blank"} |
396
- | SSM Parameter Store | ` SSMProvider.get ` | ` ssm ` | [ get_parameter] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.get_parameter ) {target="_ blank"} |
397
- | SSM Parameter Store | ` SSMProvider.get_multiple ` | ` ssm ` | [ get_parameters_by_path] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.get_parameters_by_path ) {target="_ blank"} |
398
- | Secrets Manager | ` get_secret ` | ` secretsmanager ` | [ get_secret_value] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/secretsmanager.html#SecretsManager.Client.get_secret_value ) {target="_ blank"} |
399
- | Secrets Manager | ` SecretsProvider.get ` | ` secretsmanager ` | [ get_secret_value] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/secretsmanager.html#SecretsManager.Client.get_secret_value ) {target="_ blank"} |
400
- | DynamoDB | ` DynamoDBProvider.get ` | ` dynamodb ` | ([ Table resource] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#table ) {target="_ blank"}) | [ get_item] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#DynamoDB.Table.get_item ) |
401
- | DynamoDB | ` DynamoDBProvider.get_multiple ` | ` dynamodb ` | ([ Table resource] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#table ) {target="_ blank"}) | [ query] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#DynamoDB.Table.query ) |
400
+ | Provider | Function/Method | Client name | Function name |
401
+ | ------------------- | ------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
402
+ | SSM Parameter Store | ` get_parameter ` | ` ssm ` | [ get_parameter] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.get_parameter ) {target="_ blank"} |
403
+ | SSM Parameter Store | ` get_parameters ` | ` ssm ` | [ get_parameters_by_path] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.get_parameters_by_path ) {target="_ blank"} |
404
+ | SSM Parameter Store | ` SSMProvider.get ` | ` ssm ` | [ get_parameter] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.get_parameter ) {target="_ blank"} |
405
+ | SSM Parameter Store | ` SSMProvider.get_multiple ` | ` ssm ` | [ get_parameters_by_path] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.get_parameters_by_path ) {target="_ blank"} |
406
+ | Secrets Manager | ` get_secret ` | ` secretsmanager ` | [ get_secret_value] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/secretsmanager.html#SecretsManager.Client.get_secret_value ) {target="_ blank"} |
407
+ | Secrets Manager | ` SecretsProvider.get ` | ` secretsmanager ` | [ get_secret_value] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/secretsmanager.html#SecretsManager.Client.get_secret_value ) {target="_ blank"} |
408
+ | DynamoDB | ` DynamoDBProvider.get ` | ` dynamodb ` | ([ Table resource] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#table ) {target="_ blank"}) | [ get_item] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#DynamoDB.Table.get_item ) |
409
+ | DynamoDB | ` DynamoDBProvider.get_multiple ` | ` dynamodb ` | ([ Table resource] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#table ) {target="_ blank"}) | [ query] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#DynamoDB.Table.query ) |
402
410
| App Config | ` get_app_config ` | ` appconfigdata ` | [ start_configuration_session] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/appconfigdata.html#AppConfigData.Client.start_configuration_session ) {target="_ blank"} and [ get_latest_configuration] ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/appconfigdata.html#AppConfigData.Client.get_latest_configuration ) {target="_ blank"} |
403
411
404
412
### Bring your own boto client
0 commit comments