Weitere AWS SDK Beispiele sind im Repo AWS Doc SDK Examples
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
RDSAmazon-Beispiele SDK für die Verwendung von Ruby
Die folgenden Codebeispiele zeigen Ihnen, wie Sie mithilfe von AWS SDK for Ruby mit Amazon Aktionen ausführen und allgemeine Szenarien implementierenRDS.
Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Servicefunktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien und serviceübergreifenden Beispiele sehen.
Szenarien sind Codebeispiele, die Ihnen zeigen, wie Sie eine bestimmte Aufgabe ausführen können, indem Sie mehrere Funktionen innerhalb desselben Services aufrufen.
Jedes Beispiel enthält einen Link zu GitHub, wo Sie Anweisungen zum Einrichten und Ausführen des Codes im Kontext finden.
Erste Schritte
Die folgenden Codebeispiele zeigen, wie Sie mit Amazon beginnen könnenRDS.
- SDKfür Ruby
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. require 'aws-sdk-rds' require 'logger' # RDSManager is a class responsible for managing RDS operations # such as listing all RDS DB instances in the current AWS account. class RDSManager def initialize(client) @client = client @logger = Logger.new($stdout) end # Lists and prints all RDS DB instances in the current AWS account. def list_db_instances @logger.info('Listing RDS DB instances') paginator = @client.describe_db_instances instances = [] paginator.each_page do |page| instances.concat(page.db_instances) end if instances.empty? @logger.info('No instances found.') else @logger.info("Found #{instances.count} instance(s):") instances.each do |instance| @logger.info(" * #{instance.db_instance_identifier} (#{instance.db_instance_status})") end end end end if $PROGRAM_NAME == __FILE__ rds_client = Aws::RDS::Client.new(region: 'us-west-2') manager = RDSManager.new(rds_client) manager.list_db_instances end
-
APIEinzelheiten finden Sie unter D escribeDBInstances in AWS SDK for Ruby APIReferenz.
-
Aktionen
Das folgende Codebeispiel zeigt die VerwendungCreateDBSnapshot
.
- SDKfür Ruby
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. require "aws-sdk-rds" # v2: require 'aws-sdk' # Create a snapshot for an Amazon Relational Database Service (Amazon RDS) # DB instance. # # @param rds_resource [Aws::RDS::Resource] The resource containing SDK logic. # @param db_instance_name [String] The name of the Amazon RDS DB instance. # @return [Aws::RDS::DBSnapshot, nil] The snapshot created, or nil if error. def create_snapshot(rds_resource, db_instance_name) id = "snapshot-#{rand(10**6)}" db_instance = rds_resource.db_instance(db_instance_name) db_instance.create_snapshot({ db_snapshot_identifier: id }) rescue Aws::Errors::ServiceError => e puts "Couldn't create DB instance snapshot #{id}:\n #{e.message}" end
-
APIEinzelheiten finden Sie unter C reateDBSnapshot in AWS SDK for Ruby APIReferenz.
-
Das folgende Codebeispiel zeigt die VerwendungDescribeDBInstances
.
- SDKfür Ruby
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. require "aws-sdk-rds" # v2: require 'aws-sdk' # List all Amazon Relational Database Service (Amazon RDS) DB instances. # # @param rds_resource [Aws::RDS::Resource] An SDK for Ruby Amazon RDS resource. # @return [Array, nil] List of all DB instances, or nil if error. def list_instances(rds_resource) db_instances = [] rds_resource.db_instances.each do |i| db_instances.append({ "name": i.id, "status": i.db_instance_status }) end db_instances rescue Aws::Errors::ServiceError => e puts "Couldn't list instances:\n#{e.message}" end
-
APIEinzelheiten finden Sie unter D escribeDBInstances in AWS SDK for Ruby APIReferenz.
-
Das folgende Codebeispiel zeigt die VerwendungDescribeDBParameterGroups
.
- SDKfür Ruby
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. require "aws-sdk-rds" # v2: require 'aws-sdk' # List all Amazon Relational Database Service (Amazon RDS) parameter groups. # # @param rds_resource [Aws::RDS::Resource] An SDK for Ruby Amazon RDS resource. # @return [Array, nil] List of all parameter groups, or nil if error. def list_parameter_groups(rds_resource) parameter_groups = [] rds_resource.db_parameter_groups.each do |p| parameter_groups.append({ "name": p.db_parameter_group_name, "description": p.description }) end parameter_groups rescue Aws::Errors::ServiceError => e puts "Couldn't list parameter groups:\n #{e.message}" end
-
APIEinzelheiten finden Sie unter D escribeDBParameter Groups in AWS SDK for Ruby APIReference.
-
Das folgende Codebeispiel zeigt die VerwendungDescribeDBParameters
.
- SDKfür Ruby
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. require "aws-sdk-rds" # v2: require 'aws-sdk' # List all Amazon Relational Database Service (Amazon RDS) parameter groups. # # @param rds_resource [Aws::RDS::Resource] An SDK for Ruby Amazon RDS resource. # @return [Array, nil] List of all parameter groups, or nil if error. def list_parameter_groups(rds_resource) parameter_groups = [] rds_resource.db_parameter_groups.each do |p| parameter_groups.append({ "name": p.db_parameter_group_name, "description": p.description }) end parameter_groups rescue Aws::Errors::ServiceError => e puts "Couldn't list parameter groups:\n #{e.message}" end
-
APIEinzelheiten finden Sie unter D escribeDBParameters in AWS SDK for Ruby APIReferenz.
-
Das folgende Codebeispiel zeigt die VerwendungDescribeDBSnapshots
.
- SDKfür Ruby
-
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. 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
-
APIEinzelheiten finden Sie unter D escribeDBSnapshots in AWS SDK for Ruby APIReferenz.
-
Serverless-Beispiele
Das folgende Codebeispiel zeigt, wie eine Lambda-Funktion implementiert wird, die eine Verbindung zu einer RDS Datenbank herstellt. Die Funktion stellt eine einfache Datenbankanfrage und gibt das Ergebnis zurück.
- SDKfür Ruby
-
Anmerkung
Es gibt noch mehr dazu GitHub. Das vollständige Beispiel sowie eine Anleitung zum Einrichten und Ausführen finden Sie im Repository mit Serverless-Beispielen
. Mit Ruby eine Verbindung zu einer RDS Amazon-Datenbank in einer Lambda-Funktion herstellen.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 # Ruby code here. require 'aws-sdk-rds' require 'json' require 'mysql2' def lambda_handler(event:, context:) endpoint = ENV['DBEndpoint'] # Add the endpoint without https" port = ENV['Port'] # 3306 user = ENV['DBUser'] region = ENV['DBRegion'] # 'us-east-1' db_name = ENV['DBName'] credentials = Aws::Credentials.new( ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'], ENV['AWS_SESSION_TOKEN'] ) rds_client = Aws::RDS::AuthTokenGenerator.new( region: region, credentials: credentials ) token = rds_client.auth_token( endpoint: endpoint+ ':' + port, user_name: user, region: region ) begin conn = Mysql2::Client.new( host: endpoint, username: user, password: token, port: port, database: db_name, sslca: '/var/task/global-bundle.pem', sslverify: true, enable_cleartext_plugin: true ) a = 3 b = 2 result = conn.query("SELECT #{a} + #{b} AS sum").first['sum'] puts result conn.close { statusCode: 200, body: result.to_json } rescue => e puts "Database connection failed due to #{e}" end end