让我们使用Google Cloud PHP Client,它可以让您轻松操作各种GCP服务。
你好。
我是Mandai,负责Wild 开发团队。
与 AWS 一样,GCP 也拥有支持各种编程语言的客户端库。
这是一个方便的替代方案,因为您可以使用相同的方法访问各种 GCP 服务。
另外,由于它是集成的,因此可用性在服务之间不会改变,所以一旦你学会了它,你就永远不会迷失。它是一个越用越受益的工具。
这次,我将尝试使用 PHP 客户端库。
使用作曲家安装
它可以与composer一起安装,所以安装非常简单。
GCP 的客户端库针对每个服务进行了模块化,因此只需安装您需要的服务的库即可。
下面的示例安装 Cloud Storage 的库。
作曲家需要谷歌/云存储
安装现已完成。
之后,您可以通过使用认证信息创建服务帐户(稍后描述)来使用该服务。
每个服务还有其他库,因此我将它们总结在表中。
服务名称 | 模块名称 | 评论 |
---|---|---|
云存储 | 谷歌/云存储 | |
云数据存储 | 谷歌/云数据存储 | |
云大查询 | 谷歌/云-bigquery | |
云扳手 | 谷歌/云扳手 | 测试版 |
云视界 | 谷歌/云视觉 | |
云翻译 | 谷歌/云翻译 | |
云语音 | 谷歌/云语音 | |
云自然语言 | 谷歌/云语言 | 部分功能处于测试版状态 |
谷歌应用引擎 | 谷歌/云工具 | 使用适用于 Flex 环境的 Docker 映像 |
云发布/订阅 | 谷歌/云-pubsub | |
Stackdriver 跟踪 | 谷歌/云跟踪 | |
Stackdriver 日志记录 | 谷歌/云日志记录 | |
Stackdriver 监控 | 谷歌/云监控 | |
Stackdriver 错误报告 | 谷歌/云错误报告 | |
视频智能 | 谷歌/云视频智能 | 测试版 |
云Firestore | 谷歌/云火存储 | 测试版 |
云数据丢失防护 | 谷歌/云-dlp | 仅限数据丢失防护 API 早期访问计划参与者 |
Bigquery 数据传输服务 | 谷歌/云-bigquery数据传输 | 私人免费试用版 |
- 所有这些都可以从composer安装和使用。
- 数据截至2018年1月18日
创建服务帐户
从 GCP 云控制台创建服务帐户。
从菜单转换到认证信息屏幕。
接下来,从“创建凭据”按钮中选择服务帐户密钥。
如果您想创建新的服务帐户,请选择“新服务帐户”。
您可以使用任何您喜欢且易于管理的服务帐户名称。
根据服务的不同,有多个角色,因此不存在单一角色,但“所有者/管理员”是权限最高的角色,拥有执行服务内所有操作的权限。如果你遇到麻烦了,就是这个了。
对于发放给开发者的账户,设置具有读写权限的角色。
顺便说一下,你可以担任多个角色。
例如,对于数据存储区,有用户和索引管理员。
服务帐户ID的格式类似于电子邮件,@之前的部分可以设置为您选择的任何字符串。
由于密钥类型是P12,很难从PHP中使用,因此选择“JSON”。
输入以上信息后,按“创建”按钮。
创建后,将开始下载包含身份验证信息的 JSON 文件。
这个JSON文件非常重要,所以要小心处理。
服务帐户的创建现已完成。
示例程序
我记得在使用GCP文档中列出的示例程序时遇到了问题,因为它不包含读取身份验证信息的部分,因此假设您使用的是云存储,您实际上应该从身份验证信息设置中上传图像示例。到目前为止的计划如下。
<?php require './vendor/autoload.php'; use Google\Cloud\Core\ServiceBuilder; $keyFilePath = '../hogehoge.json'; $projectId = 'sample-123456'; $bucketName = 'new-my-bucket'; $uploadFile = './test.txt'; $gcloud = new ServiceBuilder([ 'keyFilePath' => $keyFilePath, 'projectId' => $projectId, ]); $storage = $gcloud->storage(); $bucket = $storage->createBucket($bucketName); // 当使用现有存储桶时 // $bucket = $storage->bucket($bucketName); $bucket->upload(fopen($uploadFile, 'r'));
上面的示例将名为 test.txt 的文件上传到 new-my-bucket 存储桶。
这里和那里的,也没有使用 ServiceBuilder 类,但我个人认为,如果您使用从 ServiceBuilder 类创建的实例,您可以检索每个已通过身份验证的服务的实例。很快。
GCP认证文档说要使用环境变量“GOOGLE_APPLICATION_CREDENTIALS”并输入命令,但我认为如果只用PHP完成,需要的准备工作会更少,所以我这里介绍的方法仅供个人使用,这是我最喜欢的。方法。
概括
只有好处!
您对 GCP 服务客户端库有何看法?
我认为如果有一个用于 Cloud SQL 的客户端库就好了,但似乎没有。
GCE 没有任何东西,但我认为首先使用 PHP 进行虚拟机管理没有任何好处。
我认为重点是简单地使用 gcloud 命令。
有些客户甚至无法向公众提供服务,例如云数据丢失防护和Bigquery数据传输服务,但我认为图书馆的发展速度令人难以置信。
特别是,在 GCP 的存储服务中,即使对于最高端的多区域服务,Cloud Storage 也是迄今为止最便宜的(标准永久磁盘价格的 65%,被认为是第二便宜的),因此我们建议使用计划部署在 GCP 上的系统如果是这样,我想主动使用它,而不从程序本地保存它。
就是这样。