Ejemplos de Amazon RDS con SDK para PHP - AWS SDK para PHP

Ejemplos de Amazon RDS con SDK para PHP

En los siguientes ejemplos de código se muestra cómo realizar acciones e implementar escenarios comunes usando AWS SDK para PHP con Amazon RDS.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.

Los escenarios son ejemplos de código que muestran cómo llevar a cabo una tarea específica a través de llamadas a varias funciones dentro del servicio o combinado con otros Servicios de AWS.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

Acciones

En el siguiente ejemplo de código, se muestra cómo utilizar CreateDBInstance.

SDK para PHP
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

require __DIR__ . '/vendor/autoload.php'; use Aws\Exception\AwsException; $rdsClient = new Aws\Rds\RdsClient([ 'region' => 'us-east-2' ]); $dbIdentifier = '<<{{db-identifier}}>>'; $dbClass = 'db.t2.micro'; $storage = 5; $engine = 'MySQL'; $username = 'MyUser'; $password = 'MyPassword'; try { $result = $rdsClient->createDBInstance([ 'DBInstanceIdentifier' => $dbIdentifier, 'DBInstanceClass' => $dbClass, 'AllocatedStorage' => $storage, 'Engine' => $engine, 'MasterUsername' => $username, 'MasterUserPassword' => $password, ]); var_dump($result); } catch (AwsException $e) { echo $e->getMessage(); echo "\n"; }
  • Para obtener información sobre la API, consulte CreateDBInstance en la Referencia de la API de AWS SDK para PHP.

En el siguiente ejemplo de código, se muestra cómo utilizar CreateDBSnapshot.

SDK para PHP
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

require __DIR__ . '/vendor/autoload.php'; use Aws\Exception\AwsException; $rdsClient = new Aws\Rds\RdsClient([ 'region' => 'us-east-2' ]); $dbIdentifier = '<<{{db-identifier}}>>'; $snapshotName = '<<{{backup_2018_12_25}}>>'; try { $result = $rdsClient->createDBSnapshot([ 'DBInstanceIdentifier' => $dbIdentifier, 'DBSnapshotIdentifier' => $snapshotName, ]); var_dump($result); } catch (AwsException $e) { echo $e->getMessage(); echo "\n"; }
  • Para obtener información sobre la API, consulte CreateDBSnapshot en la Referencia de la API de AWS SDK para PHP.

En el siguiente ejemplo de código, se muestra cómo utilizar DeleteDBInstance.

SDK para PHP
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

require __DIR__ . '/vendor/autoload.php'; use Aws\Exception\AwsException; //Create an RDSClient $rdsClient = new Aws\Rds\RdsClient([ 'region' => 'us-east-1' ]); $dbIdentifier = '<<{{db-identifier}}>>'; try { $result = $rdsClient->deleteDBInstance([ 'DBInstanceIdentifier' => $dbIdentifier, ]); var_dump($result); } catch (AwsException $e) { echo $e->getMessage(); echo "\n"; }
  • Para obtener información sobre la API, consulte DeleteDBInstance en la Referencia de la API de AWS SDK para PHP.

En el siguiente ejemplo de código, se muestra cómo utilizar DescribeDBInstances.

SDK para PHP
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

require __DIR__ . '/vendor/autoload.php'; use Aws\Exception\AwsException; //Create an RDSClient $rdsClient = new Aws\Rds\RdsClient([ 'region' => 'us-east-2' ]); try { $result = $rdsClient->describeDBInstances(); foreach ($result['DBInstances'] as $instance) { print('<p>DB Identifier: ' . $instance['DBInstanceIdentifier']); print('<br />Endpoint: ' . $instance['Endpoint']["Address"] . ':' . $instance['Endpoint']["Port"]); print('<br />Current Status: ' . $instance["DBInstanceStatus"]); print('</p>'); } print(" Raw Result "); var_dump($result); } catch (AwsException $e) { echo $e->getMessage(); echo "\n"; }
  • Para obtener información sobre la API, consulte DescribeDBInstances en la Referencia de la API de AWS SDK para PHP.

Escenarios

El siguiente ejemplo de código muestra cómo crear una aplicación web que realice un seguimiento de los elementos de trabajo de una base de datos de Amazon Aurora sin servidor y use Amazon Simple Email Service (Amazon SES) para enviar informes.

SDK para PHP

Muestra cómo utilizar AWS SDK para PHP para crear una aplicación web que haga un seguimiento de los elementos de trabajo de una base de datos de Amazon RDS y envíe informes por correo electrónico mediante Amazon Simple Email Service (Amazon SES). Este ejemplo usa un front-end creado con React.js para interactuar con un backend PHP RESTful.

  • Integre una aplicación web de React.js con los servicios de AWS.

  • Enumere, agregue, actualice y elimine elementos de una tabla de Amazon RDS.

  • Envíe un informe por correo electrónico de elementos de trabajo filtrados con Amazon SES.

  • Implemente y administre recursos de ejemplo con el script de AWS CloudFormation.

Para ver el código fuente completo y las instrucciones de configuración y ejecución, consulte el ejemplo completo en GitHub.

Servicios utilizados en este ejemplo
  • Aurora

  • Amazon RDS

  • Servicio de datos de Amazon RDS

  • Amazon SES

Ejemplos de tecnología sin servidor

En el siguiente ejemplo de código, se muestra cómo implementar una función de Lambda que se conecta a una base de datos de RDS. La función realiza una solicitud sencilla a la base de datos y devuelve el resultado.

SDK para PHP
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el repositorio de ejemplos de tecnología sin servidor.

Conexión a una base de datos de Amazon RDS en una función de Lambda mediante PHP.

<?php # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 # using bref/bref and bref/logger for simplicity use Bref\Context\Context; use Bref\Event\Handler as StdHandler; use Bref\Logger\StderrLogger; use Aws\Rds\AuthTokenGenerator; use Aws\Credentials\CredentialProvider; require __DIR__ . '/vendor/autoload.php'; class Handler implements StdHandler { private StderrLogger $logger; public function __construct(StderrLogger $logger) { $this->logger = $logger; } private function getAuthToken(): string { // Define connection authentication parameters $dbConnection = [ 'hostname' => getenv('DB_HOSTNAME'), 'port' => getenv('DB_PORT'), 'username' => getenv('DB_USERNAME'), 'region' => getenv('AWS_REGION'), ]; // Create RDS AuthTokenGenerator object $generator = new AuthTokenGenerator(CredentialProvider::defaultProvider()); // Request authorization token from RDS, specifying the username return $generator->createToken( $dbConnection['hostname'] . ':' . $dbConnection['port'], $dbConnection['region'], $dbConnection['username'] ); } private function getQueryResults() { // Obtain auth token $token = $this->getAuthToken(); // Define connection configuration $connectionConfig = [ 'host' => getenv('DB_HOSTNAME'), 'user' => getenv('DB_USERNAME'), 'password' => $token, 'database' => getenv('DB_NAME'), ]; // Create the connection to the DB $conn = new PDO( "mysql:host={$connectionConfig['host']};dbname={$connectionConfig['database']}", $connectionConfig['user'], $connectionConfig['password'], [ PDO::MYSQL_ATTR_SSL_CA => '/path/to/rds-ca-2019-root.pem', PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => true, ] ); // Obtain the result of the query $stmt = $conn->prepare('SELECT ?+? AS sum'); $stmt->execute([3, 2]); return $stmt->fetch(PDO::FETCH_ASSOC); } /** * @param mixed $event * @param Context $context * @return array */ public function handle(mixed $event, Context $context): array { $this->logger->info("Processing query"); // Execute database flow $result = $this->getQueryResults(); return [ 'sum' => $result['sum'] ]; } } $logger = new StderrLogger(); return new Handler($logger);