Skip to content
v2.277.0

ParamsAndSecretsOptions Struct ​

Parameters and Secrets Extension configuration options.

Example ​

ts
import * as sm from 'aws-cdk-lib/aws-secretsmanager';
import * as ssm from 'aws-cdk-lib/aws-ssm';

const secret = new sm.Secret(this, 'Secret');
const parameter = new ssm.StringParameter(this, 'Parameter', {
  parameterName: 'mySsmParameterName',
  stringValue: 'mySsmParameterValue',
});

const paramsAndSecrets = lambda.ParamsAndSecretsLayerVersion.fromVersion(lambda.ParamsAndSecretsVersions.V1_0_103, {
  cacheSize: 500,
  logLevel: lambda.ParamsAndSecretsLogLevel.DEBUG,
});

const lambdaFunction = new lambda.Function(this, 'MyFunction', {
  runtime: lambda.Runtime.NODEJS_LATEST,
  handler: 'index.handler',
  architecture: lambda.Architecture.ARM_64,
  code: lambda.Code.fromAsset(path.join(__dirname, 'lambda-handler')),
  paramsAndSecrets,
});

secret.grantRead(lambdaFunction);
parameter.grantRead(lambdaFunction);
python
import aws_cdk.aws_secretsmanager as sm
import aws_cdk.aws_ssm as ssm


secret = sm.Secret(self, "Secret")
parameter = ssm.StringParameter(self, "Parameter",
    parameter_name="mySsmParameterName",
    string_value="mySsmParameterValue"
)

params_and_secrets = lambda_.ParamsAndSecretsLayerVersion.from_version(lambda_.ParamsAndSecretsVersions.V1_0_103,
    cache_size=500,
    log_level=lambda_.ParamsAndSecretsLogLevel.DEBUG
)

lambda_function = lambda_.Function(self, "MyFunction",
    runtime=lambda_.Runtime.NODEJS_LATEST,
    handler="index.handler",
    architecture=lambda_.Architecture.ARM_64,
    code=lambda_.Code.from_asset(path.join(__dirname, "lambda-handler")),
    params_and_secrets=params_and_secrets
)

secret.grant_read(lambda_function)
parameter.grant_read(lambda_function)
java
import software.amazon.awscdk.services.secretsmanager.*;
import software.amazon.awscdk.services.ssm.*;


Secret secret = new Secret(this, "Secret");
StringParameter parameter = StringParameter.Builder.create(this, "Parameter")
        .parameterName("mySsmParameterName")
        .stringValue("mySsmParameterValue")
        .build();

ParamsAndSecretsLayerVersion paramsAndSecrets = ParamsAndSecretsLayerVersion.fromVersion(ParamsAndSecretsVersions.V1_0_103, ParamsAndSecretsOptions.builder()
        .cacheSize(500)
        .logLevel(ParamsAndSecretsLogLevel.DEBUG)
        .build());

Function lambdaFunction = Function.Builder.create(this, "MyFunction")
        .runtime(Runtime.NODEJS_LATEST)
        .handler("index.handler")
        .architecture(Architecture.ARM_64)
        .code(Code.fromAsset(join(__dirname, "lambda-handler")))
        .paramsAndSecrets(paramsAndSecrets)
        .build();

secret.grantRead(lambdaFunction);
parameter.grantRead(lambdaFunction);
csharp
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.AWS.SecretsManager;
using Amazon.CDK.AWS.SSM;


var secret = new Secret(this, "Secret");
var parameter = new StringParameter(this, "Parameter", new StringParameterProps {
    ParameterName = "mySsmParameterName",
    StringValue = "mySsmParameterValue"
});

var paramsAndSecrets = ParamsAndSecretsLayerVersion.FromVersion(ParamsAndSecretsVersions.V1_0_103, new ParamsAndSecretsOptions {
    CacheSize = 500,
    LogLevel = ParamsAndSecretsLogLevel.DEBUG
});

var lambdaFunction = new Function(this, "MyFunction", new FunctionProps {
    Runtime = Runtime.NODEJS_LATEST,
    Handler = "index.handler",
    Architecture = Architecture.ARM_64,
    Code = Code.FromAsset(Join(__dirname, "lambda-handler")),
    ParamsAndSecrets = paramsAndSecrets
});

secret.GrantRead(lambdaFunction);
parameter.GrantRead(lambdaFunction);
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import sm "github.com/aws/aws-cdk-go/awscdk"
import ssm "github.com/aws/aws-cdk-go/awscdk"


secret := sm.NewSecret(this, jsii.String("Secret"))
parameter := ssm.NewStringParameter(this, jsii.String("Parameter"), &StringParameterProps{
	ParameterName: jsii.String("mySsmParameterName"),
	StringValue: jsii.String("mySsmParameterValue"),
})

paramsAndSecrets := lambda.ParamsAndSecretsLayerVersion_FromVersion(lambda.ParamsAndSecretsVersions_V1_0_103, &ParamsAndSecretsOptions{
	CacheSize: jsii.Number(500),
	LogLevel: lambda.ParamsAndSecretsLogLevel_DEBUG,
})

lambdaFunction := lambda.NewFunction(this, jsii.String("MyFunction"), &FunctionProps{
	Runtime: lambda.Runtime_NODEJS_LATEST(),
	Handler: jsii.String("index.handler"),
	Architecture: lambda.Architecture_ARM_64(),
	Code: lambda.Code_FromAsset(path.join(__dirname, jsii.String("lambda-handler"))),
	ParamsAndSecrets: ParamsAndSecrets,
})

secret.grantRead(lambdaFunction)
parameter.grantRead(lambdaFunction)

Properties ​

cacheEnabledoptionalbooleancache_enabledoptionalboolcacheEnabledoptionalBooleanCacheEnabledoptionalboolCacheEnabledoptional*bool= true#
Whether the Parameters and Secrets Extension will cache parameters and secrets.
cacheSizeoptionalnumbercache_sizeoptionalint | floatcacheSizeoptionalNumberCacheSizeoptionaldoubleCacheSizeoptional*float64= 1000#
The maximum number of secrets and parameters to cache.

Must be a value from 0 to 1000. A value of 0 means there is no caching.

Note: This variable is ignored if parameterStoreTtl and secretsManagerTtl are 0.

httpPortoptionalnumberhttp_portoptionalint | floathttpPortoptionalNumberHttpPortoptionaldoubleHttpPortoptional*float64= 2773#
The port for the local HTTP server.

Valid port numbers are 1 - 65535.

logLeveloptionalParamsAndSecretsLogLevellog_leveloptionalParamsAndSecretsLogLevellogLeveloptionalParamsAndSecretsLogLevelLogLeveloptionalParamsAndSecretsLogLevelLogLeveloptionalParamsAndSecretsLogLevel#
The level of logging provided by the Parameters and Secrets Extension.

Default: Logging level will be info

Note: Set to debug to see the cache configuration.

maxConnectionsoptionalnumbermax_connectionsoptionalint | floatmaxConnectionsoptionalNumberMaxConnectionsoptionaldoubleMaxConnectionsoptional*float64= 3#
The maximum number of connection for HTTP clients that the Parameters and Secrets Extension uses to make requests to Parameter Store or Secrets Manager.

There is no maximum limit. Minimum is 1.

Note: Every running copy of this Lambda function may open the number of connections specified by this property. Thus, the total number of connections may exceed this number.

parameterStoreTimeoutoptionalDurationparameter_store_timeoutoptionalDurationparameterStoreTimeoutoptionalDurationParameterStoreTimeoutoptionalDurationParameterStoreTimeoutoptionalDuration= 0#
The timeout for requests to Parameter Store.

A value of 0 means that there is no timeout.

parameterStoreTtloptionalDurationparameter_store_ttloptionalDurationparameterStoreTtloptionalDurationParameterStoreTtloptionalDurationParameterStoreTtloptionalDuration#
The time-to-live of a parameter in the cache.

Default: 300 seconds

A value of 0 means there is no caching. The maximum time-to-live is 300 seconds.

Note: This variable is ignored if cacheSize is 0.

secretsManagerTimeoutoptionalDurationsecrets_manager_timeoutoptionalDurationsecretsManagerTimeoutoptionalDurationSecretsManagerTimeoutoptionalDurationSecretsManagerTimeoutoptionalDuration= 0#
The timeout for requests to Secrets Manager.

A value of 0 means that there is no timeout.

secretsManagerTtloptionalDurationsecrets_manager_ttloptionalDurationsecretsManagerTtloptionalDurationSecretsManagerTtloptionalDurationSecretsManagerTtloptionalDuration#
The time-to-live of a secret in the cache.

Default: 300 seconds

A value of 0 means there is no caching. The maximum time-to-live is 300 seconds.

Note: This variable is ignored if cacheSize is 0.