get Snapshot
Use this data source to get information about a DB Snapshot for use when provisioning DB instances
NOTE: This data source does not apply to snapshots created on Aurora DB clusters. See the
aws.rds.ClusterSnapshot
data source for DB Cluster snapshots.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const prod = new aws.rds.Instance("prod", {
allocatedStorage: 10,
engine: "mysql",
engineVersion: "5.6.17",
instanceClass: aws.rds.InstanceType.T2_Micro,
dbName: "mydb",
username: "foo",
password: "bar",
dbSubnetGroupName: "my_database_subnet_group",
parameterGroupName: "default.mysql5.6",
});
const latestProdSnapshot = aws.rds.getSnapshotOutput({
dbInstanceIdentifier: prod.identifier,
mostRecent: true,
});
// Use the latest production snapshot to create a dev instance.
const dev = new aws.rds.Instance("dev", {
instanceClass: aws.rds.InstanceType.T2_Micro,
dbName: "mydbdev",
snapshotIdentifier: latestProdSnapshot.apply(latestProdSnapshot => latestProdSnapshot.id),
});
import pulumi
import pulumi_aws as aws
prod = aws.rds.Instance("prod",
allocated_storage=10,
engine="mysql",
engine_version="5.6.17",
instance_class=aws.rds.InstanceType.T2_MICRO,
db_name="mydb",
username="foo",
password="bar",
db_subnet_group_name="my_database_subnet_group",
parameter_group_name="default.mysql5.6")
latest_prod_snapshot = aws.rds.get_snapshot_output(db_instance_identifier=prod.identifier,
most_recent=True)
# Use the latest production snapshot to create a dev instance.
dev = aws.rds.Instance("dev",
instance_class=aws.rds.InstanceType.T2_MICRO,
db_name="mydbdev",
snapshot_identifier=latest_prod_snapshot.id)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var prod = new Aws.Rds.Instance("prod", new()
{
AllocatedStorage = 10,
Engine = "mysql",
EngineVersion = "5.6.17",
InstanceClass = Aws.Rds.InstanceType.T2_Micro,
DbName = "mydb",
Username = "foo",
Password = "bar",
DbSubnetGroupName = "my_database_subnet_group",
ParameterGroupName = "default.mysql5.6",
});
var latestProdSnapshot = Aws.Rds.GetSnapshot.Invoke(new()
{
DbInstanceIdentifier = prod.Identifier,
MostRecent = true,
});
// Use the latest production snapshot to create a dev instance.
var dev = new Aws.Rds.Instance("dev", new()
{
InstanceClass = Aws.Rds.InstanceType.T2_Micro,
DbName = "mydbdev",
SnapshotIdentifier = latestProdSnapshot.Apply(getSnapshotResult => getSnapshotResult.Id),
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
prod, err := rds.NewInstance(ctx, "prod", &rds.InstanceArgs{
AllocatedStorage: pulumi.Int(10),
Engine: pulumi.String("mysql"),
EngineVersion: pulumi.String("5.6.17"),
InstanceClass: pulumi.String(rds.InstanceType_T2_Micro),
DbName: pulumi.String("mydb"),
Username: pulumi.String("foo"),
Password: pulumi.String("bar"),
DbSubnetGroupName: pulumi.String("my_database_subnet_group"),
ParameterGroupName: pulumi.String("default.mysql5.6"),
})
if err != nil {
return err
}
latestProdSnapshot := rds.LookupSnapshotOutput(ctx, rds.GetSnapshotOutputArgs{
DbInstanceIdentifier: prod.Identifier,
MostRecent: pulumi.Bool(true),
}, nil)
// Use the latest production snapshot to create a dev instance.
_, err = rds.NewInstance(ctx, "dev", &rds.InstanceArgs{
InstanceClass: pulumi.String(rds.InstanceType_T2_Micro),
DbName: pulumi.String("mydbdev"),
SnapshotIdentifier: pulumi.String(latestProdSnapshot.ApplyT(func(latestProdSnapshot rds.GetSnapshotResult) (*string, error) {
return &latestProdSnapshot.Id, nil
}).(pulumi.StringPtrOutput)),
})
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.rds.RdsFunctions;
import com.pulumi.aws.rds.inputs.GetSnapshotArgs;
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 prod = new Instance("prod", InstanceArgs.builder()
.allocatedStorage(10)
.engine("mysql")
.engineVersion("5.6.17")
.instanceClass("db.t2.micro")
.dbName("mydb")
.username("foo")
.password("bar")
.dbSubnetGroupName("my_database_subnet_group")
.parameterGroupName("default.mysql5.6")
.build());
final var latestProdSnapshot = RdsFunctions.getSnapshot(GetSnapshotArgs.builder()
.dbInstanceIdentifier(prod.identifier())
.mostRecent(true)
.build());
// Use the latest production snapshot to create a dev instance.
var dev = new Instance("dev", InstanceArgs.builder()
.instanceClass("db.t2.micro")
.dbName("mydbdev")
.snapshotIdentifier(latestProdSnapshot.applyValue(_latestProdSnapshot -> _latestProdSnapshot.id()))
.build());
}
}
resources:
prod:
type: aws:rds:Instance
properties:
allocatedStorage: 10
engine: mysql
engineVersion: 5.6.17
instanceClass: db.t2.micro
dbName: mydb
username: foo
password: bar
dbSubnetGroupName: my_database_subnet_group
parameterGroupName: default.mysql5.6
# Use the latest production snapshot to create a dev instance.
dev:
type: aws:rds:Instance
properties:
instanceClass: db.t2.micro
dbName: mydbdev
snapshotIdentifier: ${latestProdSnapshot.id}
variables:
latestProdSnapshot:
fn::invoke:
function: aws:rds:getSnapshot
arguments:
dbInstanceIdentifier: ${prod.identifier}
mostRecent: true
Return
A collection of values returned by getSnapshot.
Parameters
A collection of arguments for invoking getSnapshot.
Return
A collection of values returned by getSnapshot.
Parameters
Returns the list of snapshots created by the specific db_instance
Returns information on a specific snapshot_id.
Set this value to true to include manual DB snapshots that are public and can be copied or restored by any AWS account, otherwise set this value to false. The default is false
.
Set this value to true to include shared manual DB snapshots from other AWS accounts that this AWS account has been given permission to copy or restore, otherwise set this value to false. The default is false
.
If more than one result is returned, use the most recent Snapshot.
Type of snapshots to be returned. If you don't specify a SnapshotType value, then both automated and manual snapshots are returned. Shared and public DB snapshots are not included in the returned results by default. Possible values are, automated
, manual
, shared
, public
and awsbackup
.
Mapping of tags, each pair of which must exactly match a pair on the desired DB snapshot.
See also
Return
A collection of values returned by getSnapshot.
Parameters
Builder for com.pulumi.aws.rds.kotlin.inputs.GetSnapshotPlainArgs.