Utilisation de DescribeDBSnapshots avec un kit AWS SDK ou une interface de ligne de commande - Exemples de code de kit AWS SDK

D’autres exemples de kits AWS SDK sont disponibles dans le référentiel GitHub AWS Doc SDK Examples.

Utilisation de DescribeDBSnapshots avec un kit AWS SDK ou une interface de ligne de commande

Les exemples de code suivants illustrent comment utiliser DescribeDBSnapshots.

Les exemples d’actions sont des extraits de code de programmes de plus grande envergure et doivent être exécutés en contexte. Vous pouvez voir cette action en contexte dans l’exemple de code suivant :

.NET
SDK pour .NET
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

/// <summary> /// Return a list of DB snapshots for a particular DB instance. /// </summary> /// <param name="dbInstanceIdentifier">DB instance identifier.</param> /// <returns>List of DB snapshots.</returns> public async Task<List<DBSnapshot>> DescribeDBSnapshots(string dbInstanceIdentifier) { var results = new List<DBSnapshot>(); var snapshotsPaginator = _amazonRDS.Paginators.DescribeDBSnapshots( new DescribeDBSnapshotsRequest() { DBInstanceIdentifier = dbInstanceIdentifier }); // Get the entire list using the paginator. await foreach (var snapshots in snapshotsPaginator.DBSnapshots) { results.Add(snapshots); } return results; }
  • Pour plus d’informations sur l’API, consultez DescribeDBSnapshots dans la Référence d’API AWS SDK pour .NET.

C++
kit SDK pour C++
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

Aws::Client::ClientConfiguration clientConfig; // Optional: Set to the AWS Region (overrides config file). // clientConfig.region = "us-east-1"; Aws::RDS::RDSClient client(clientConfig); Aws::RDS::Model::DescribeDBSnapshotsRequest request; request.SetDBSnapshotIdentifier(snapshotID); Aws::RDS::Model::DescribeDBSnapshotsOutcome outcome = client.DescribeDBSnapshots(request); if (outcome.IsSuccess()) { snapshot = outcome.GetResult().GetDBSnapshots()[0]; } else { std::cerr << "Error with RDS::DescribeDBSnapshots. " << outcome.GetError().GetMessage() << std::endl; cleanUpResources(PARAMETER_GROUP_NAME, DB_INSTANCE_IDENTIFIER, client); return false; }
  • Pour plus de détails sur l’API, consultez DescribeDBSnapshots dans la Référence des API du kit AWS SDK pour C++.

CLI
AWS CLI

Exemple 1 : description d’un instantané de base de données pour une instance de base de données

L’exemple describe-db-snapshots suivant récupère les détails d’un instantané de base de données pour une instance de base de données.

aws rds describe-db-snapshots \ --db-snapshot-identifier mydbsnapshot

Sortie :

{ "DBSnapshots": [ { "DBSnapshotIdentifier": "mydbsnapshot", "DBInstanceIdentifier": "mysqldb", "SnapshotCreateTime": "2018-02-08T22:28:08.598Z", "Engine": "mysql", "AllocatedStorage": 20, "Status": "available", "Port": 3306, "AvailabilityZone": "us-east-1f", "VpcId": "vpc-6594f31c", "InstanceCreateTime": "2018-02-08T22:24:55.973Z", "MasterUsername": "mysqladmin", "EngineVersion": "5.6.37", "LicenseModel": "general-public-license", "SnapshotType": "manual", "OptionGroupName": "default:mysql-5-6", "PercentProgress": 100, "StorageType": "gp2", "Encrypted": false, "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mydbsnapshot", "IAMDatabaseAuthenticationEnabled": false, "ProcessorFeatures": [], "DbiResourceId": "db-AKIAIOSFODNN7EXAMPLE" } ] }

Pour plus d’informations, consulter Création d’un instantané de base de données dans le Guide de l’utilisateur Amazon RDS.

Exemple 2 : recherche du nombre d’instantanés pris manuellement

L’exemple describe-db-snapshots suivant utilise l’opérateur length dans l’option --query pour renvoyer le nombre d’instantanés manuels qui ont été pris dans une région AWS donnée.

aws rds describe-db-snapshots \ --snapshot-type manual \ --query "length(*[].{DBSnapshots:SnapshotType})" \ --region eu-central-1

Sortie :

35

Pour plus d’informations, consulter Création d’un instantané de base de données dans le Guide de l’utilisateur Amazon RDS.

  • Pour plus d’informations sur l’API, consultez DescribeDBSnapshots dans la Référence des commandes AWS CLI.

Go
Kit SDK for Go V2
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

import ( "context" "errors" "log" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" ) type DbInstances struct { RdsClient *rds.Client } // GetSnapshot gets a DB instance snapshot. func (instances *DbInstances) GetSnapshot(ctx context.Context, snapshotName string) (*types.DBSnapshot, error) { output, err := instances.RdsClient.DescribeDBSnapshots(ctx, &rds.DescribeDBSnapshotsInput{ DBSnapshotIdentifier: aws.String(snapshotName), }) if err != nil { log.Printf("Couldn't get snapshot %v: %v\n", snapshotName, err) return nil, err } else { return &output.DBSnapshots[0], nil } }
  • Pour plus d’informations sur l’API, consultez DescribeDBSnapshots dans la Référence d’API AWS SDK pour Go.

Python
Kit SDK pour Python (Boto3)
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

class InstanceWrapper: """Encapsulates Amazon RDS DB instance actions.""" def __init__(self, rds_client): """ :param rds_client: A Boto3 Amazon RDS client. """ self.rds_client = rds_client @classmethod def from_client(cls): """ Instantiates this class from a Boto3 client. """ rds_client = boto3.client("rds") return cls(rds_client) def get_snapshot(self, snapshot_id): """ Gets a DB instance snapshot. :param snapshot_id: The ID of the snapshot to retrieve. :return: The retrieved snapshot. """ try: response = self.rds_client.describe_db_snapshots( DBSnapshotIdentifier=snapshot_id ) snapshot = response["DBSnapshots"][0] except ClientError as err: logger.error( "Couldn't get snapshot %s. Here's why: %s: %s", snapshot_id, err.response["Error"]["Code"], err.response["Error"]["Message"], ) raise else: return snapshot
  • Pour plus d’informations sur l’API, consultez DescribeDBSnapshots dans la Référence d’API AWS SDK pour Python (Boto3).

Ruby
Kit SDK pour Ruby
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

require 'aws-sdk-rds' # v2: require 'aws-sdk' # List all Amazon Relational Database Service (Amazon RDS) DB instance # snapshots. # # @param rds_resource [Aws::RDS::Resource] An SDK for Ruby Amazon RDS resource. # @return instance_snapshots [Array, nil] All instance snapshots, or nil if error. def list_instance_snapshots(rds_resource) instance_snapshots = [] rds_resource.db_snapshots.each do |s| instance_snapshots.append({ "id": s.snapshot_id, "status": s.status }) end instance_snapshots rescue Aws::Errors::ServiceError => e puts "Couldn't list instance snapshots:\n #{e.message}" end
  • Pour plus de détails sur l’API, consultez DescribeDBSnapshots dans la Référence des API du kit AWS SDK pour Ruby.

Swift
Kit SDK pour Swift
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

import AWSRDS /// Wait until the specified database snapshot is available to use. /// /// - Parameters: /// - instanceIdentifier: The identifier of the database for which the /// snapshot was taken. /// - snapshotIdentifier: The identifier of the snapshot to wait for. func waitUntilDBSnapshotReady(instanceIdentifier: String, snapshotIdentifier: String) async { var snapshotReady = false putString("Waiting for the snapshot to be ready...") do { while !snapshotReady { let output = try await rdsClient.describeDBSnapshots( input: DescribeDBSnapshotsInput( dbInstanceIdentifier: instanceIdentifier, dbSnapshotIdentifier: snapshotIdentifier ) ) guard let snapshotList = output.dbSnapshots else { return } for snapshot in snapshotList { guard let snapshotReadyStr = snapshot.status else { return } if snapshotReadyStr.contains("available") { snapshotReady = true print() } else { putString(".") do { try await Task.sleep(for: .seconds(15)) } catch { print("\n*** Error pausing the task!") } } } } } catch { print("\n*** Unable to wait for the database snapshot to be ready: \(error.localizedDescription)") } }
  • Pour plus de détails sur l’API, consultez DescribeDBSnapshots dans la Référence des API du kit AWS SDK pour Swift.