Google云端平台:如何使用GCP资源在本地环境中进行开发

时间:2018-08-02 15:38:33

标签: php google-cloud-platform google-cloud-storage app-engine-flexible google-cloud-stackdriver

我正在使用Google App Engine Flex开发angularjs / php-rest后端应用程序。 我已经成功地从常规服务器移植到AppEngine,现在我想与GCP服务(如StackDriver,Cloud Storage等)进行更多集成。

StackDriver具有日志记录和监视功能。 云端存储:存储导出数据文件并压缩后再发送到浏览器。

我的问题是如何在笔记本电脑(可以在线和离线)上进行本地开发?

我在本地开发的“方式”文档中找不到:

  • 是否应该将stackDriver或Cloud Storage客户端配置为在磁盘上写入而不是到达GCP?
  • 是否应该配置一些代理(例如cloud_sql_proxy)以使其能够访问GCP?我应该为我的本地开发人员创建一个项目吗?如果我离线,该如何运作?

任何提示表示赞赏:)

1 个答案:

答案 0 :(得分:1)

App Engine Flexible并未随附开发服务器或服务仿真器以供在开发期间使用,因此您可以直接使用服务。

  • Stackdriver Logging :将写入 stdout stderr 的日志自动发送给您,而无需使用Stackdriver Logging库PHP。这可能足以使您在本地获取日志,但是我们建议您使用PSR-3记录器,该记录器会自动将元数据添加到日志中,以便将应用程序日志与请求日志相关联。您可以按照文档here将其设置为在本地运行并登录到项目。
  • Stackdriver Monitoring :Google App Engine内置了对在灵活环境中(部署时)Monitoring的支持,并且不需要进行配置。虽然无法将监视代理程序安装在本地计算机上,但是无论如何对其进行监视将毫无意义。
  • 云存储:一个简单的选项是创建可在开发期间使用的开发桶。您可以在任何项目中创建它,并为您的开发服务帐户授予权限。

一种常见的做法是为生产,暂存和开发目的创建不同的GCP项目。这使您可以为给定环境创建特定资源。以日志记录为例,您将能够在开发项目中查看日志并对其进行任何故障排除,而不会污染生产项目的日志。对于CloudSQL,数据存储区等等,都是如此。

您无需为这些服务配置任何代理。 cloud_sql_proxy是一种方便的方法,用于强制进行安全连接并简化与CloudSQL实例的身份验证,而无需将IP地址列入白名单。

关于当前的离线情况,如果您当时没有Internet连接,那么从本地应用程序到这些服务的调用当然会失败(间歇性断开实际上可以帮助您测试重试和错误处理机制)。如果您希望在没有互联网连接的情况下进行开发,则需要编写存根服务以在本地模拟预期的行为。