getSnapshot

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

argument

A collection of arguments for invoking getSnapshot.


suspend fun getSnapshot(dbInstanceIdentifier: String? = null, dbSnapshotIdentifier: String? = null, includePublic: Boolean? = null, includeShared: Boolean? = null, mostRecent: Boolean? = null, snapshotType: String? = null, tags: Map<String, String>? = null): GetSnapshotResult

Return

A collection of values returned by getSnapshot.

Parameters

dbInstanceIdentifier

Returns the list of snapshots created by the specific db_instance

dbSnapshotIdentifier

Returns information on a specific snapshot_id.

includePublic

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.

includeShared

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.

mostRecent

If more than one result is returned, use the most recent Snapshot.

snapshotType

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.

tags

Mapping of tags, each pair of which must exactly match a pair on the desired DB snapshot.

See also


suspend fun getSnapshot(argument: suspend GetSnapshotPlainArgsBuilder.() -> Unit): GetSnapshotResult

Return

A collection of values returned by getSnapshot.

Parameters

argument

Builder for com.pulumi.aws.rds.kotlin.inputs.GetSnapshotPlainArgs.

See also