Experimental
@aws-cdk/aws-apprunner-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.
Secret Class
A secret environment variable.
Example
ts
import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
import * as ssm from 'aws-cdk-lib/aws-ssm';
declare const stack: Stack;
const secret = new secretsmanager.Secret(stack, 'Secret');
const parameter = ssm.StringParameter.fromSecureStringParameterAttributes(stack, 'Parameter', {
parameterName: '/name',
version: 1,
});
const service = new apprunner.Service(stack, 'Service', {
source: apprunner.Source.fromEcrPublic({
imageConfiguration: {
port: 8000,
environmentSecrets: {
SECRET: apprunner.Secret.fromSecretsManager(secret),
PARAMETER: apprunner.Secret.fromSsmParameter(parameter),
SECRET_ID: apprunner.Secret.fromSecretsManagerVersion(secret, { versionId: 'version-id' }),
SECRET_STAGE: apprunner.Secret.fromSecretsManagerVersion(secret, { versionStage: 'version-stage' }),
},
},
imageIdentifier: 'public.ecr.aws/aws-containers/hello-app-runner:latest',
})
});
service.addSecret('LATER_SECRET', apprunner.Secret.fromSecretsManager(secret, 'field'));
python
import aws_cdk.aws_secretsmanager as secretsmanager
import aws_cdk.aws_ssm as ssm
# stack: Stack
secret = secretsmanager.Secret(stack, "Secret")
parameter = ssm.StringParameter.from_secure_string_parameter_attributes(stack, "Parameter",
parameter_name="/name",
version=1
)
service = apprunner.Service(stack, "Service",
source=apprunner.Source.from_ecr_public(
image_configuration=apprunner.ImageConfiguration(
port=8000,
environment_secrets={
"SECRET": apprunner.Secret.from_secrets_manager(secret),
"PARAMETER": apprunner.Secret.from_ssm_parameter(parameter),
"SECRET_ID": apprunner.Secret.from_secrets_manager_version(secret, version_id="version-id"),
"SECRET_STAGE": apprunner.Secret.from_secrets_manager_version(secret, version_stage="version-stage")
}
),
image_identifier="public.ecr.aws/aws-containers/hello-app-runner:latest"
)
)
service.add_secret("LATER_SECRET", apprunner.Secret.from_secrets_manager(secret, "field"))
java
import software.amazon.awscdk.services.secretsmanager.*;
import software.amazon.awscdk.services.ssm.*;
Stack stack;
Secret secret = new Secret(stack, "Secret");
IStringParameter parameter = StringParameter.fromSecureStringParameterAttributes(stack, "Parameter", SecureStringParameterAttributes.builder()
.parameterName("/name")
.version(1)
.build());
Service service = Service.Builder.create(stack, "Service")
.source(Source.fromEcrPublic(EcrPublicProps.builder()
.imageConfiguration(ImageConfiguration.builder()
.port(8000)
.environmentSecrets(Map.of(
"SECRET", Secret.fromSecretsManager(secret),
"PARAMETER", Secret.fromSsmParameter(parameter),
"SECRET_ID", Secret.fromSecretsManagerVersion(secret, SecretVersionInfo.builder().versionId("version-id").build()),
"SECRET_STAGE", Secret.fromSecretsManagerVersion(secret, SecretVersionInfo.builder().versionStage("version-stage").build())))
.build())
.imageIdentifier("public.ecr.aws/aws-containers/hello-app-runner:latest")
.build()))
.build();
service.addSecret("LATER_SECRET", Secret.fromSecretsManager(secret, "field"));
csharp
// Install: dotnet add package Amazon.CDK.AWS.AppRunner.Alpha
using Amazon.CDK.AWS.SecretsManager;
using Amazon.CDK.AWS.SSM;
Stack stack;
var secret = new Secret(stack, "Secret");
var parameter = StringParameter.FromSecureStringParameterAttributes(stack, "Parameter", new SecureStringParameterAttributes {
ParameterName = "/name",
Version = 1
});
var service = new Service(stack, "Service", new ServiceProps {
Source = Source.FromEcrPublic(new EcrPublicProps {
ImageConfiguration = new ImageConfiguration {
Port = 8000,
EnvironmentSecrets = new Dictionary<string, Secret> {
{ "SECRET", Secret.FromSecretsManager(secret) },
{ "PARAMETER", Secret.FromSsmParameter(parameter) },
{ "SECRET_ID", Secret.FromSecretsManagerVersion(secret, new SecretVersionInfo { VersionId = "version-id" }) },
{ "SECRET_STAGE", Secret.FromSecretsManagerVersion(secret, new SecretVersionInfo { VersionStage = "version-stage" }) }
}
},
ImageIdentifier = "public.ecr.aws/aws-containers/hello-app-runner:latest"
})
});
service.AddSecret("LATER_SECRET", Secret.FromSecretsManager(secret, "field"));
go
// Install: go get github.com/aws/aws-cdk-go/awscdkapprunneralpha/v2
import secretsmanager "github.com/aws/aws-cdk-go/awscdk"
import ssm "github.com/aws/aws-cdk-go/awscdk"
var stack Stack
secret := secretsmanager.NewSecret(stack, jsii.String("Secret"))
parameter := ssm.StringParameter_FromSecureStringParameterAttributes(stack, jsii.String("Parameter"), &SecureStringParameterAttributes{
ParameterName: jsii.String("/name"),
Version: jsii.Number(1),
})
service := apprunner.NewService(stack, jsii.String("Service"), &ServiceProps{
Source: apprunner.Source_FromEcrPublic(&EcrPublicProps{
ImageConfiguration: &ImageConfiguration{
Port: jsii.Number(8000),
EnvironmentSecrets: map[string]Secret{
"SECRET": apprunner.Secret_fromSecretsManager(secret),
"PARAMETER": apprunner.Secret_fromSsmParameter(parameter),
"SECRET_ID": apprunner.Secret_fromSecretsManagerVersion(secret, &SecretVersionInfo{
"versionId": jsii.String("version-id"),
}),
"SECRET_STAGE": apprunner.Secret_fromSecretsManagerVersion(secret, &SecretVersionInfo{
"versionStage": jsii.String("version-stage"),
}),
},
},
ImageIdentifier: jsii.String("public.ecr.aws/aws-containers/hello-app-runner:latest"),
}),
})
service.AddSecret(jsii.String("LATER_SECRET"), apprunner.Secret_FromSecretsManager(secret, jsii.String("field")))
Initializer
ts
new Secret()
python
Secret()
java
new Secret()
csharp
new Secret()
go
NewSecret()
Properties
Methods
fromSecretsManager(secret: ISecret, field?: string): Secret // chainable@staticmethod def from_secrets_manager(secret: ISecret, field: typing.Optional[str] = None) -> Secretpublic static Secret fromSecretsManager(ISecret secret, String field)public static Secret FromSecretsManager(ISecret secret, string? field = null)func FromSecretsManager(Secret ISecret, Field *string) Secretstatic#Creates a environment variable value from a secret stored in AWS Secrets Manager.
2 parameters
Parameters
secretsecretsecretsecretSecret— the secret stored in AWS Secrets Manager.fieldfieldfieldfieldField— the name of the field with the value that you want to set as the environment variable value.
fromSecretsManagerVersion(secret: ISecret, versionInfo: SecretVersionInfo, field?: string): Secret // chainable@staticmethod def from_secrets_manager_version(secret: ISecret, version_info: SecretVersionInfo, field: typing.Optional[str] = None) -> Secretpublic static Secret fromSecretsManagerVersion(ISecret secret, SecretVersionInfo versionInfo, String field)public static Secret FromSecretsManagerVersion(ISecret secret, SecretVersionInfo versionInfo, string? field = null)func FromSecretsManagerVersion(Secret ISecret, VersionInfo SecretVersionInfo, Field *string) Secretstatic#Creates a environment variable value from a secret stored in AWS Secrets Manager.
3 parameters
Parameters
secretsecretsecretsecretSecret— the secret stored in AWS Secrets Manager.versionInfoversion_infoversionInfoversionInfoVersionInfo— the version information to reference the secret.fieldfieldfieldfieldField— the name of the field with the value that you want to set as the environment variable value.
fromSsmParameter(parameter: IParameter): Secret // chainable@staticmethod def from_ssm_parameter(parameter: IParameter) -> Secretpublic static Secret fromSsmParameter(IParameter parameter)public static Secret FromSsmParameter(IParameter parameter)func FromSsmParameter(Parameter IParameter) Secretstatic#Creates an environment variable value from a parameter stored in AWS Systems Manager Parameter Store.
grantRead(grantee: IGrantable): Grantdef grant_read(self, grantee: IGrantable) -> Grantpublic Grant grantRead(IGrantable grantee)public Grant GrantRead(IGrantable grantee)func GrantRead(Grantee IGrantable) Grant#Grants reading the secret to a principal.
[disable-awslint:no-grants]