Skip to content

Commit 0d68f59

Browse files
authored
docs(parameters): main docs for the utility (#1215)
* docs: added main section, SSMProvider, transform, and config * chore: added missing new in front of constructor * docs: added SecretsProvider sections * docs: fixes * docs: added DynamoDBProvider * docs: completed first version of docs * docs: extract code snippets * docs: review comments
1 parent d8e8d38 commit 0d68f59

28 files changed

+792
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { SSMProvider } from '@aws-lambda-powertools/parameters/ssm';
2+
3+
const parametersProvider = new SSMProvider();
4+
5+
export const handler = async (): Promise<void> => {
6+
// Retrieve a single parameter
7+
const parameter = await parametersProvider.get('/my/parameter', { maxAge: 60 }); // 1 minute
8+
console.log(parameter);
9+
10+
// Retrieve multiple parameters from a path prefix
11+
const parameters = await parametersProvider.getMultiple('/my/path/prefix', { maxAge: 120 }); // 2 minutes
12+
for (const [ key, value ] of Object.entries(parameters || {})) {
13+
console.log(`${key}: ${value}`);
14+
}
15+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { AppConfigProvider } from '@aws-lambda-powertools/parameters/appconfig';
2+
import type { AppConfigDataClientConfig } from '@aws-sdk/client-appconfigdata';
3+
4+
const clientConfig: AppConfigDataClientConfig = { region: 'us-east-1' };
5+
const configsProvider = new AppConfigProvider({
6+
application: 'my-app',
7+
environment: 'my-env',
8+
clientConfig,
9+
});
10+
11+
export const handler = async (): Promise<void> => {
12+
// Retrieve a config
13+
const config = await configsProvider.get('my-config');
14+
console.log(config);
15+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { AppConfigProvider } from '@aws-lambda-powertools/parameters/appconfig';
2+
import { AppConfigDataClient } from '@aws-sdk/client-appconfigdata';
3+
4+
// construct your clients with any custom configuration
5+
const appConfigClient = new AppConfigDataClient({ region: 'us-east-1' });
6+
// pass the client to the provider
7+
const configsProvider = new AppConfigProvider({ awsSdkV3Client: appConfigClient });
8+
9+
export const handler = async (): Promise<void> => {
10+
const config = await configsProvider.get('my-config');
11+
console.log(config);
12+
};
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { SSMProvider } from '@aws-lambda-powertools/parameters/ssm';
2+
import type { SSMClientConfig } from '@aws-sdk/client-ssm';
3+
4+
const clientConfig: SSMClientConfig = { region: 'us-east-1' };
5+
const parametersProvider = new SSMProvider({ clientConfig });
6+
7+
export const handler = async (): Promise<void> => {
8+
// Retrieve a single parameter
9+
const value = await parametersProvider.get('/my/parameter');
10+
console.log(value);
11+
};
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { DynamoDBProvider } from '@aws-lambda-powertools/parameters/dynamodb';
2+
3+
const dynamoDBProvider = new DynamoDBProvider({ tableName: 'my-table' });
4+
5+
export const handler = async (): Promise<void> => {
6+
// Retrieve a value from DynamoDB
7+
const value = await dynamoDBProvider.get('my-parameter');
8+
console.log(value);
9+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { DynamoDBProvider } from '@aws-lambda-powertools/parameters/dynamodb';
2+
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
3+
4+
// construct your clients with any custom configuration
5+
const dynamoDBClient = new DynamoDBClient({ region: 'us-east-1' });
6+
// pass the client to the provider
7+
const valuesProvider = new DynamoDBProvider({ awsSdkV3Client: dynamoDBClient });
8+
9+
export const handler = async (): Promise<void> => {
10+
// Retrieve a single value
11+
const value = await valuesProvider.get('my-value');
12+
console.log(value);
13+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { DynamoDBProvider } from '@aws-lambda-powertools/parameters/dynamodb';
2+
3+
const dynamoDBProvider = new DynamoDBProvider({
4+
tableName:'my-table',
5+
keyAttr:'key',
6+
sortAttr:'sort',
7+
valueAttr:'val'
8+
});
9+
10+
export const handler = async (): Promise<void> => {
11+
const value = await dynamoDBProvider.get('my-parameter');
12+
console.log(value);
13+
};
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { DynamoDBProvider } from '@aws-lambda-powertools/parameters/dynamodb';
2+
3+
const dynamoDBProvider = new DynamoDBProvider({
4+
tableName: 'my-table',
5+
clientConfig: {
6+
endpoint: 'http://localhost:8000'
7+
},
8+
});
9+
10+
export const handler = async (): Promise<void> => {
11+
// Retrieve a value from DynamoDB
12+
const value = await dynamoDBProvider.get('my-parameter');
13+
console.log(value);
14+
};
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { DynamoDBProvider } from '@aws-lambda-powertools/parameters/dynamodb';
2+
3+
const dynamoDBProvider = new DynamoDBProvider({ tableName: 'my-table' });
4+
5+
export const handler = async (): Promise<void> => {
6+
/**
7+
* Retrieve multiple values by performing a Query on the DynamoDB table.
8+
* This returns a dict with the sort key attribute as dict key.
9+
*/
10+
const values = await dynamoDBProvider.getMultiple('my-hash-key');
11+
for (const [ key, value ] of Object.entries(values || {})) {
12+
// key: param-a
13+
// value: my-value-a
14+
console.log(`${key}: ${value}`);
15+
}
16+
};
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { getParameter } from '@aws-lambda-powertools/parameters/ssm';
2+
3+
export const handler = async (): Promise<void> => {
4+
// Retrieve a single parameter
5+
const parameter = await getParameter('/my/parameter', { forceFetch: true });
6+
console.log(parameter);
7+
};

0 commit comments

Comments
 (0)