Parameter
Provides an SSM Parameter resource.
Note: The
overwrite
argument makes it possible to overwrite an existing SSM Parameter created outside of IAC.
Example Usage
Basic example
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const foo = new aws.ssm.Parameter("foo", {
name: "foo",
type: aws.ssm.ParameterType.String,
value: "bar",
});
import pulumi
import pulumi_aws as aws
foo = aws.ssm.Parameter("foo",
name="foo",
type=aws.ssm.ParameterType.STRING,
value="bar")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var foo = new Aws.Ssm.Parameter("foo", new()
{
Name = "foo",
Type = Aws.Ssm.ParameterType.String,
Value = "bar",
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := ssm.NewParameter(ctx, "foo", &ssm.ParameterArgs{
Name: pulumi.String("foo"),
Type: pulumi.String(ssm.ParameterTypeString),
Value: pulumi.String("bar"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ssm.Parameter;
import com.pulumi.aws.ssm.ParameterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var foo = new Parameter("foo", ParameterArgs.builder()
.name("foo")
.type("String")
.value("bar")
.build());
}
}
resources:
foo:
type: aws:ssm:Parameter
properties:
name: foo
type: String
value: bar
Encrypted string using default SSM KMS key
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const _default = new aws.rds.Instance("default", {
allocatedStorage: 10,
storageType: aws.rds.StorageType.GP2,
engine: "mysql",
engineVersion: "5.7.16",
instanceClass: aws.rds.InstanceType.T2_Micro,
dbName: "mydb",
username: "foo",
password: databaseMasterPassword,
dbSubnetGroupName: "my_database_subnet_group",
parameterGroupName: "default.mysql5.7",
});
const secret = new aws.ssm.Parameter("secret", {
name: "/production/database/password/master",
description: "The parameter description",
type: aws.ssm.ParameterType.SecureString,
value: databaseMasterPassword,
tags: {
environment: "production",
},
});
import pulumi
import pulumi_aws as aws
default = aws.rds.Instance("default",
allocated_storage=10,
storage_type=aws.rds.StorageType.GP2,
engine="mysql",
engine_version="5.7.16",
instance_class=aws.rds.InstanceType.T2_MICRO,
db_name="mydb",
username="foo",
password=database_master_password,
db_subnet_group_name="my_database_subnet_group",
parameter_group_name="default.mysql5.7")
secret = aws.ssm.Parameter("secret",
name="/production/database/password/master",
description="The parameter description",
type=aws.ssm.ParameterType.SECURE_STRING,
value=database_master_password,
tags={
"environment": "production",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var @default = new Aws.Rds.Instance("default", new()
{
AllocatedStorage = 10,
StorageType = Aws.Rds.StorageType.GP2,
Engine = "mysql",
EngineVersion = "5.7.16",
InstanceClass = Aws.Rds.InstanceType.T2_Micro,
DbName = "mydb",
Username = "foo",
Password = databaseMasterPassword,
DbSubnetGroupName = "my_database_subnet_group",
ParameterGroupName = "default.mysql5.7",
});
var secret = new Aws.Ssm.Parameter("secret", new()
{
Name = "/production/database/password/master",
Description = "The parameter description",
Type = Aws.Ssm.ParameterType.SecureString,
Value = databaseMasterPassword,
Tags =
{
{ "environment", "production" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := rds.NewInstance(ctx, "default", &rds.InstanceArgs{
AllocatedStorage: pulumi.Int(10),
StorageType: pulumi.String(rds.StorageTypeGP2),
Engine: pulumi.String("mysql"),
EngineVersion: pulumi.String("5.7.16"),
InstanceClass: pulumi.String(rds.InstanceType_T2_Micro),
DbName: pulumi.String("mydb"),
Username: pulumi.String("foo"),
Password: pulumi.Any(databaseMasterPassword),
DbSubnetGroupName: pulumi.String("my_database_subnet_group"),
ParameterGroupName: pulumi.String("default.mysql5.7"),
})
if err != nil {
return err
}
_, err = ssm.NewParameter(ctx, "secret", &ssm.ParameterArgs{
Name: pulumi.String("/production/database/password/master"),
Description: pulumi.String("The parameter description"),
Type: pulumi.String(ssm.ParameterTypeSecureString),
Value: pulumi.Any(databaseMasterPassword),
Tags: pulumi.StringMap{
"environment": pulumi.String("production"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.rds.Instance;
import com.pulumi.aws.rds.InstanceArgs;
import com.pulumi.aws.ssm.Parameter;
import com.pulumi.aws.ssm.ParameterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new Instance("default", InstanceArgs.builder()
.allocatedStorage(10)
.storageType("gp2")
.engine("mysql")
.engineVersion("5.7.16")
.instanceClass("db.t2.micro")
.dbName("mydb")
.username("foo")
.password(databaseMasterPassword)
.dbSubnetGroupName("my_database_subnet_group")
.parameterGroupName("default.mysql5.7")
.build());
var secret = new Parameter("secret", ParameterArgs.builder()
.name("/production/database/password/master")
.description("The parameter description")
.type("SecureString")
.value(databaseMasterPassword)
.tags(Map.of("environment", "production"))
.build());
}
}
resources:
default:
type: aws:rds:Instance
properties:
allocatedStorage: 10
storageType: gp2
engine: mysql
engineVersion: 5.7.16
instanceClass: db.t2.micro
dbName: mydb
username: foo
password: ${databaseMasterPassword}
dbSubnetGroupName: my_database_subnet_group
parameterGroupName: default.mysql5.7
secret:
type: aws:ssm:Parameter
properties:
name: /production/database/password/master
description: The parameter description
type: SecureString
value: ${databaseMasterPassword}
tags:
environment: production
Import
Using pulumi import
, import SSM Parameters using the parameter store name
. For example:
$ pulumi import aws:ssm/parameter:Parameter my_param /my_path/my_paramname
Properties
Regular expression used to validate the parameter value.
Data type of the parameter. Valid values: text
, aws:ssm:integration
and aws:ec2:image
for AMI format, see the Native parameter support for Amazon Machine Image IDs.
Description of the parameter.
Value of the parameter. Use caution: This value is never marked as sensitive in the pulumi preview output. This argument is not valid with a type
of SecureString
.
Name of the parameter. If the name contains a path (e.g., any forward slashes (/
)), it must be fully qualified with a leading forward slash (/
). For additional requirements and constraints, see the AWS SSM User Guide.
Overwrite an existing parameter. If not specified, defaults to false
during create operations to avoid overwriting existing resources and then true
for all subsequent operations once the resource is managed by IAC. Lifecycle rules should be used to manage non-standard update behavior.
Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are Standard
, Advanced
, and Intelligent-Tiering
. Downgrading an Advanced
tier parameter to Standard
will recreate the resource. For more information on parameter tiers, see the AWS SSM Parameter tier comparison and guide.