@aws-lambda-powertools/parameters
Version:
The parameters package for the Powertools for AWS Lambda (TypeScript) library
86 lines (85 loc) • 3.33 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.setParameter = void 0;
const DefaultProviders_js_1 = require("../base/DefaultProviders.js");
const SSMProvider_js_1 = require("./SSMProvider.js");
/**
* Set a parameter in AWS Systems Manager Parameter Store.
*
* **Basic Usage**
*
* @example
* ```typescript
* import { setParameter } from '@aws-lambda-powertools/parameters/ssm';
*
* export const handler = async () => {
* // Set a parameter
* const version = await setParameter('/my-parameter', { value: 'my-value' });
* };
* ```
*
* **Overwriting a parameter**
*
* By default, the provider will not overwrite a parameter if it already exists. You can force the provider to overwrite the parameter by using the `overwrite` option.
*
* @example
* ```typescript
* import { setParameter } from '@aws-lambda-powertools/parameters/ssm';
*
* export const handler = async (): Promise<void> => {
* // Set a parameter and overwrite it
* const version = await setParameter('/my-parameter', {
* value: 'my-value',
* overwrite: true,
* });
* console.log(Parameter version: ${version});
* };
* ```
*
* **Extra SDK options**
*
* When setting a parameter, you can pass extra options to the AWS SDK v3 for JavaScript client by using the sdkOptions parameter.
*
* @example
* ```typescript
* import { setParameter } from '@aws-lambda-powertools/parameters/ssm';
*
* export const handler = async (): Promise<void> => {
* // Set a parameter with extra options
* const version = await setParameter('/my-parameter', {
* value: 'my-value',
* sdkOptions: {
* Overwrite: true,
* },
* });
* };
* ```
*
* This object accepts the same options as the AWS SDK v3 for JavaScript `PutParameterCommandInput` interface.
*
* For greater flexibility such as configuring the underlying SDK client used by built-in providers, you can use the {@link SSMProvider} utility.
*
* **Options**
*
* You can customize the storage of the value by passing options to the function:
* * `value` - The value of the parameter, which is a mandatory option.
* * `overwrite` - Whether to overwrite the value if it already exists (default: `false`)
* * `description` - The description of the parameter
* * `parameterType` - The type of the parameter, can be one of `String`, `StringList`, or `SecureString` (default: `String`)
* * `tier` - The parameter tier to use, can be one of `Standard`, `Advanced`, and `Intelligent-Tiering` (default: `Standard`)
* * `kmsKeyId` - The KMS key id to use to encrypt the parameter
* * `sdkOptions` - Extra options to pass to the AWS SDK v3 for JavaScript client
*
* For more usage examples, see [our documentation](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parameters/).
*
* @param name - Name of the parameter
* @param options - Options to configure the parameter
* @see https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parameters/
*/
const setParameter = async (name, options) => {
if (!Object.hasOwn(DefaultProviders_js_1.DEFAULT_PROVIDERS, 'ssm')) {
DefaultProviders_js_1.DEFAULT_PROVIDERS.ssm = new SSMProvider_js_1.SSMProvider();
}
return DefaultProviders_js_1.DEFAULT_PROVIDERS.ssm.set(name, options);
};
exports.setParameter = setParameter;
;