google/cloud-tools

Google Cloud Platform的PHP工具


README

安装

google/cloud-tools 添加到您的 composer.json 文件的 require-dev 部分。

您还可以运行以下命令

$ composer require google/cloud-tools --dev

实用工具

flex_exec

CLI 脚本 src/Utils/Flex/flex_exec 是一个用于运行与在 App Engine Flex 上运行的应用程序相同的 Docker 镜像中的命令的工具。

它启动一个已部署的 App Engine Flexible App 的 Docker 镜像,并在该镜像中运行命令。例如,如果您正在运行 Laravel 应用程序,您可以在镜像中调用类似于 php artisan migrate 的命令。

如果 Flex 应用程序请求云 SQL 访问(beta_settingscloud_sql_instances),此工具还提供对相同的 Cloud SQL 实例的连接。

该命令在 Google Cloud Container Builder 提供的虚拟机上运行,并具有访问 Cloud Container Builder 服务帐户凭证的权限。

先决条件

要使用 flex_exec,您需要

  • 已部署到 Google App Engine Flex 的应用程序
  • 已安装和配置 gcloud SDK。请参阅 https://cloud.google.com/sdk/
  • google/cloud-tools composer 包

您可能还需要授予 Cloud Container Builder 服务帐户所需的所有权限。对于访问 Cloud SQL,您需要将 Cloud SQL 客户端 权限添加到服务帐户。

您可以在 Cloud Console 的 IAM 选项卡下找到服务帐户配置,名称为 [your-project-number]@cloudbuild.gserviceaccount.com

资源使用情况和计费

此工具使用 Google Cloud Container Builder 提供的虚拟机资源。尽管每天有一定数量的使用分钟数包含在免费层中,但超过该时间的额外计算使用将计费到您的 Google Cloud 帐户。有关更多详细信息,请参阅: https://cloud.google.com/container-builder/pricing

如果您的命令进行 API 调用或使用其他云资源,您也可能需要为此使用付费。但是,flex_exec 不使用实际的 App Engine 实例,您将不会为额外的 App Engine 实例使用付费。

示例

src/Utils/Flex/flex_exec run -- php artisan migrate

测试实用工具

Google\Cloud\TestUtils 命名空间中有各种测试实用工具。

测试示例

示例测试用例位于 test/fixtures/appengine-standard 目录中。

环境变量

有多个环境变量可以控制我们的测试特性的行为。

所有特性

  • GOOGLE_PROJECT_ID:部署应用程序的项目 ID。
  • GOOGLE_VERSION_ID:部署应用程序的版本 ID。

AppEngineDeploymentTrait

  • GOOGLE_DEPLOYMENT_DELAY:部署触发后等待的秒数,然后继续执行测试。
  • GOOGLE_KEEP_DEPLOYMENT:设置为 true 以在测试完成后保持已部署的应用程序。
  • GOOGLE_SKIP_DEPLOYMENT:设置为 true 如果您想跳过部署。
  • RUN_DEPLOYMENT_TESTS:设置为 true 如果您想运行部署测试。

DevAppserverTestTrait

  • LOCAL_TEST_TARGETS:如果您的测试需要多个服务,您可以指定多个 yaml 文件。
  • PHP_CGI_PATH:dev_appserver 运行的 php-cgi 的路径。
  • RUN_DEVSERVER_TESTS:如果您想运行测试,请将其设置为true