新闻详情

新闻详情

首页 / 资讯中心 / 详情

使用 AWS SDK for PHP 操作 Amazon RDS 实例的完整指南(php/example_code/rds)

发布时间:2026/9/27 9:26:49来源:尧图网络
使用 AWS SDK for PHP 操作 Amazon RDS 实例的完整指南(php/example_code/rds)
示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载本指南基于aws-doc-sdk-examples仓库中 php/example_code/rds 目录下的官方示例系统讲解如何通过 AWS SDK for PHP v3 调用 Amazon Relational Database ServiceAmazon RDS的核心 API。你将掌握创建数据库实例、创建快照、描述实例、删除实例、启停实例、创建只读副本与查询事件等完整的实战流程并了解示例的运行前提、依赖安装与测试方式。Amazon RDS 是一种云托管的关系数据库 Web 服务它让用户在云中更容易地设置、操作和扩展关系数据库。通过本仓库的 PHP 示例代码可以在 PHP 应用中以最小代码量完成数据库实例的全生命周期管理。示例概览php/example_code/rds目录下的示例展示了使用 AWS SDK for PHP 处理 Amazon RDS 的典型操作主要分为「单动作Single actions」——即对单个服务函数的一次性调用例如创建实例、创建快照、查询实例列表等。目录内容如下CreateDBInstance.php创建数据库实例CreateDBInstanceReadReplica.php为已有实例创建只读副本CreateDBSnapshot.php为实例创建手动快照DeleteInstance.php删除数据库实例DescribeInstance.php列出并描述数据库实例DescribeEvents.php查询实例相关事件StartInstance.php启动已停止的实例StopInstance.php停止实例仅对可暂停的引擎生效此外目录中还包含 composer.json 和composer.lock前者声明了依赖aws/aws-sdk-php: ^3.209与phpunit/phpunit: ^9.5。运行前提Prerequisites根据 php/README.md 的说明运行这些示例需要满足以下环境条件PHP版本 8.1 或更高Composer用于依赖管理PHPUnit用于单元测试AWS SDK for PHP由 Composer 自动安装AWS 凭证已配置好可用于调用 AWS API 的凭证。默认情况下这些示例使用 AWS 默认的凭证提供程序链default AWS credential provider chain运行即读取~/.aws/credentials与~/.aws/config共享文件中的default配置文件。请确保你的本地环境已经通过 AWS CLI 或手动方式配置好凭证。⚠️重要提示运行这些代码可能在你的 AWS 账户中产生费用具体见 AWS Pricing 与 Free Tier 说明运行测试同样可能产生费用建议按最小权限原则least privilege授权仅授予完成任务所需的最低权限这些代码并未在每一个 AWS 区域做过测试请确认目标区域支持你使用的引擎与功能。环境搭建与运行方式安装依赖在包含composer.json的示例目录即php/example_code/rds中执行composer install该命令会根据 composer.json 安装aws/aws-sdk-php^3.209与phpunit/phpunit^9.5并在目录下生成vendor/autoload.php——所有示例源码的第一行require __DIR__ . /vendor/autoload.php;正是依赖它完成自动加载。运行示例这些示例直接从命令行以 PHP 脚本方式运行。推荐在仓库克隆目录结构中、且位于包含起始代码的目录内运行以确保支持文件可以被正确访问。例如php CreateDBInstance.php部分示例项目带有Runner.php用于抽象运行逻辑凡包含该文件的目录均可通过php Runner.php运行。RDS 目录的示例未提供Runner.php直接运行各.php文件即可。核心单动作示例详解以下四个动作是 README.md 中明确列出的「Single actions」示例其余文件只读副本、启停、事件查询则是同一目录下可扩展的配套动作。创建数据库实例CreateDBInstance.phpCreateDBInstance.php 演示如何调用createDBInstanceAPI 创建一个新的 RDS 数据库实例。其核心逻辑如下$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; }关键参数说明参数含义示例取值DBInstanceIdentifier实例的唯一标识符创建后不可更改需替换占位符{{db-identifier}}DBInstanceClass实例的计算与内存规格db.t2.micro可选用db.t3.*、db.r5.*等AllocatedStorage分配的存储容量GB5最低视引擎而定Engine数据库引擎MySQL也可用postgres、mariadb、oracle-se2、sqlserver-*等MasterUsername主数据库管理员用户名自定义字符串MasterUserPassword主数据库管理员密码自定义字符串从源码结构看该示例只提供了创建实例的最小必填参数集未配置 VPC 安全组、子网组、多可用区等高阶选项——这些参数可按需追加到createDBInstance数组中。创建是异步操作返回结果中通常包含DBInstance对象及其DBInstanceStatus初始为creating需要通过describeDBInstances轮询实例进入available状态后才能连接使用。创建数据库快照CreateDBSnapshot.phpCreateDBSnapshot.php 演示调用createDBSnapshotAPI 为已存在实例创建手动快照用于备份、恢复或跨环境复制$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; }参数说明参数含义DBInstanceIdentifier被备份的源数据库实例标识符DBSnapshotIdentifier快照标识符示例占位符{{backup_2018_12_25}}提示了按日期命名的惯例快照创建是异步过程创建完成后可通过 RDS 控制台或describeDBSnapshots查看快照状态creating→available之后可基于快照恢复出新实例。删除数据库实例DeleteInstance.phpDeleteInstance.php 演示调用deleteDBInstanceAPI 删除实例。注意该文件中的客户端使用了us-east-1区域与其他示例的us-east-2不同运行前请确认你的凭证所在区域$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; }默认情况下deleteDBInstance会创建最终快照FinalSnapshot如需跳过可在调用中加入SkipFinalSnapshot true或通过FinalDBSnapshotIdentifier指定最终快照名称。删除操作同样为异步过程。描述数据库实例DescribeInstance.phpDescribeInstance.php 演示调用describeDBInstancesAPI 分页列出所有实例并解析返回结果中的关键字段$rdsClient new Aws\Rds\RdsClient([ region us-east-2 ]); try { $result $rdsClient-describeDBInstances(); foreach ($result[DBInstances] as $instance) { print(pDB 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; }该示例的返回值解析很有代表性结果数组$result[DBInstances]包含每个实例的完整信息其中Endpoint为嵌套数组Address为主机地址、Port为端口DBInstanceStatus为实例当前状态available、creating、stopped、deleting等。这也印证了创建实例后需通过本 API 轮询状态直至available的调用链关系。目录中的扩展动作示例README 的「Single actions」清单之外同一目录还提供了以下四个可选的单动作示例它们与上述核心 API 同属RdsClient的常用方法创建只读副本CreateDBInstanceReadReplica.phpCreateDBInstanceReadReplica.php 调用createDBInstanceReadReplicaAPI为现有实例创建只读副本read replica可用于读写分离、横向扩展读能力$rdsClient new Aws\Rds\RdsClient([ region us-east-2 ]); $replicaDBIdentifier {{name-for-db-replica}}; $sourceDBIdentifier {{db-identifier-of-db-to-replicate}}; try { $result $rdsClient-createDBInstanceReadReplica([ DBInstanceIdentifier $replicaDBIdentifier, SourceDBInstanceIdentifier $sourceDBIdentifier, ]); var_dump($result); } catch (AwsException $e) { echo $e-getMessage(); echo \n; }两个参数分别对应副本实例的新标识符与源实例标识符。创建副本要求源实例开启自动备份功能。启动实例StartInstance.phpStartInstance.php 调用startDBInstanceAPI 启动一个已停止的实例。该示例额外展示了客户端配置的完整形式——显式指定profile与 APIversion$rdsClient new Aws\Rds\RdsClient([ profile default, version 2014-10-31, region us-east-2 ]); $dbIdentifier {{db-identifier}}; try { $result $rdsClient-startDBInstance([ DBInstanceIdentifier $dbIdentifier, ]); var_dump($result); } catch (AwsException $e) { echo $e-getMessage(); echo \n; }version 2014-10-31指定了 RDS API 的版本号该日期为 RDS API 的 2014-10-31 版本profile default指定使用共享凭证文件中的 default 配置。当客户端只设置region时SDK 会自动使用默认 profile 与最新可用版本这两种写法效果等价。停止实例StopInstance.phpStopInstance.php 调用stopDBInstanceAPI 停止实例$rdsClient new Aws\Rds\RdsClient([ region us-east-2 ]); $dbIdentifier {{db-identifier}}; try { $result $rdsClient-stopDBInstance([ DBInstanceIdentifier $dbIdentifier, ]); var_dump($result); } catch (AwsException $e) { echo $e-getMessage(); echo \n; }注意并非所有引擎都支持停止操作。RDS 仅允许对满足条件例如非多可用区部署、非只读副本的实例执行停止停止期间不会产生实例计算费用但存储费用仍然计费。查询实例事件DescribeEvents.phpDescribeEvents.php 调用describeEventsAPI 查询与实例生命周期相关的系统事件如创建、备份、故障转移、维护等通知$rdsClient new Aws\Rds\RdsClient([ region us-east-2 ]); $dbIdentifier {{db-identifier}}; try { $result $rdsClient-describeEvents([ SourceIdentifier $dbIdentifier, SourceType db-instance, ]); var_dump($result); } catch (AwsException $e) { echo $e-getMessage(); echo \n; }SourceIdentifier指定事件来源SourceType db-instance限定来源类型为数据库实例其他可取值为db-snapshot、db-parameter-group、db-security-group、db-cluster等。错误处理模式上述所有示例统一采用try/catch包裹 API 调用并捕获Aws\Exception\AwsException在文件头部通过use Aws\Exception\AwsException;引入。一旦 API 调用失败如凭证无效、权限不足、参数不合法、实例不存在、配额超限等SDK 会抛出该异常示例直接输出$e-getMessage()并结束执行。在实际生产代码中建议在此基础上补充更细粒度的异常类型判断如Aws\Rds\Exception\RdsException和重试、日志记录等逻辑。测试⚠ 运行测试可能对你的 AWS 账户产生费用。php/example_code/rds目录目前未包含独立的测试文件。根据 php/README.md 的说明仓库中带测试的示例其测试文件通常以Test.php结尾、位于示例旁边的tests目录中需要借助 PHPUnit 运行先执行composer install。若要运行仓库级的 PHP 测试套件可在php/example_code目录下执行phpunit常用过滤方式# 按测试套件过滤先通过 --list-suites 查看可用的套件名 phpunit --testsuite testsuite-name # 按集成测试或单元测试过滤 phpunit --group integ phpunit --group unit套件过滤与分组过滤可组合使用。代码规范与质量检查仓库使用 PHP_CodeSnifferphpcs保持 PHP 代码风格一致。如需对 RDS 示例目录做静态检查可在php目录下先执行composer install安装依赖然后运行vendor/bin/phpcs --standard../.github/linters/phpcs.xml --extensionsphp --ignorevendor example_code/rds简单错误可用 phpcbf 自动修复vendor/bin/phpcbf --standard../.github/linters/phpcs.xml --extensionsphp --ignorevendor example_code/rds运行前注意事项示例使用{{...}}形式的占位符标记需要替换的值运行前务必全部替换否则 API 调用会因非法标识符而失败创建实例、创建快照、创建只读副本均为有费用的操作测试完毕后请及时删除资源以避免持续计费若删除实例时希望跳过最终快照以节省存储费用可参考DeleteInstance.php并添加SkipFinalSnapshot true参数各示例指定的区域不同多数为us-east-2删除示例为us-east-1请确保目标区域支持所选引擎且凭证拥有相应权限。其他资源本目录源码php/example_code/rdsPHP 语言级示例总览与运行说明php/README.mdAWS SDK for PHP v3 的 API 参考文档与开发者指南可在 AWS 官方文档站查阅Aws\Rds\RdsClient类及其全部方法签名、参数与返回类型。Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.SPDX-License-Identifier: Apache-2.0赞分享示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载相关推荐使用 AWS SDK for Kotlin 操作 Amazon RDS完整示例与源码级实战指南使用 AWS SDK for Kotlin 操作 Amazon RDS完整示例与源码级实战指南 本篇技术指南以 aws doc sdk examples 仓库示例工程教程后端使用Java SDK 2.x操作Amazon RDS的完整指南使用Java SDK 2.x操作Amazon RDS的完整指南 还在为如何高效管理Amazon RDS数据库实例而烦恼本文将为你提供一份完整的Java SDK示例工程教程后端使用 AWS SDK for PHP 操作 Amazon EC2完整代码示例与实践指南使用 AWS SDK for PHP 操作 Amazon EC2完整代码示例与实践指南 导读 本文以 AWS 官方代码示例仓库 aws doc sdk exa示例工程教程后端上一篇颠覆传统输入5步掌握SharpKeys系统级键盘重映射效率工具下一篇GitHub加速工具告别卡顿畅享极速体验创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

STM32红外PM2.5传感器驱动:定时器输入捕获测占空比与浓度换算 2026/9/27 10:52:37

STM32红外PM2.5传感器驱动:定时器输入捕获测占空比与浓度换算

1. 项目缘起与整体设计思路1.1 为什么选红外PM2.5传感器而不是激光款做环境监测类项目,PM2.5传感器基本绕不开两个选择:红外散射式和激光散射式。激光款精度高、能测到0.3微米颗粒,但价格普遍在几十到上百元,而且需要风扇或加热电…

阅读更多 →
STM32嵌入式项目V1封装实战:CAN、FreeRTOS、Flash与PI控制集成 2026/9/27 10:52:30

STM32嵌入式项目V1封装实战:CAN、FreeRTOS、Flash与PI控制集成

1. 从零散模块到可交付系统:V1封装的真实动机做嵌入式项目的人大概都有过这种体验:功能一个个都调通了,CAN能收发、Flash能读写、FreeRTOS任务跑得也挺欢,但当你试图把整个工程交给别人、或者过两个月自己再回来看的时候&#xff…

阅读更多 →
数字频率计数器选购指南:从时基到微波架构,一次讲透核心参数与选型逻辑 2026/9/27 10:52:30

数字频率计数器选购指南:从时基到微波架构,一次讲透核心参数与选型逻辑

1. 从一次踩坑说起:为什么你需要一台靠谱的数字频率计数器前阵子帮一个做射频模块的朋友调一套发射链路,手头只有一台入门级台式万用表,测个几十兆的信号频率,读数跳得跟心电图似的,最后一位数字基本靠猜。后来借了一台…

阅读更多 →
县区工会网站建设方案图解步骤 2026/9/27 10:52:30

县区工会网站建设方案图解步骤

县区工会网站建设避坑指南:3步搞定安全与SEO 很多县区工会的朋友,手里拿着预算想建个官网,心里却直打鼓: 自己不会代码想做网站 ,找外包怕被坑,自己弄又怕搞砸。别慌,这份 避坑指南…

阅读更多 →
STM32红外PM2.5传感器驱动实战:ADC采样、PWM捕获与数据标定 2026/9/27 10:52:30

STM32红外PM2.5传感器驱动实战:ADC采样、PWM捕获与数据标定

1. 从一颗传感器说起:为什么选择红外PM2.5方案PM2.5监测这两年从专业设备慢慢下沉到了家用和创客圈,我最早接触这个需求是帮朋友做一个室内空气质量看板,要求成本压到百元以内、能实时刷新、数据还得靠谱。翻了一圈方案,激光散射的…

阅读更多 →
设计网站公司讲湖南岚鸿多少钱及防黑实战复盘 2026/9/27 10:52:23

设计网站公司讲湖南岚鸿多少钱及防黑实战复盘

设计网站公司讲湖南岚鸿多少钱及防黑实战复盘 网站被黑挂马不知道怎么办?别慌,先查日志再找专业团队,别自己瞎折腾。很多老板问我,设计网站公司讲湖南岚鸿多少钱,其实价格背后是安全成本的博弈。 一、 项目背景:一次典型的“被黑”事故…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉