コードをデプロイした時点でデータストアに書き込めるようになりましたが、caバンドルエラーが発生したため、コードをローカルに実行してデータストアエミュレータに書き込むことができません。ローカルデータストアはlocalhostで表示されます。8000dev_appserver.pypでローカルgoogle Datastoreを使用
use google\appengine\api\users\User;
use google\appengine\api\users\UserService;
use google\appengine\api\app_identity\AppIdentityService;
echo AppIdentityService::getApplicationId()."<br>";
echo AppIdentityService::getDefaultVersionHostname()."<br>";
# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';
use Google\Cloud\ServiceBuilder;
$cloud = new ServiceBuilder([
'projectId' => AppIdentityService::getApplicationId(),
'keyFilePath'=>'review-9504000716d8.json'
]);
$datastore = $cloud->datastore();
# The kind for the new entity
$kind = 'Task';
# The name/ID for the new entity
$name = 'sampletask1';
# The Cloud Datastore key for the new entity
$taskKey = $datastore->key($kind, $name);
# Prepares the new entity
$task = $datastore->entity($taskKey, ['description' => 'Buy milk']);
# Saves the entity
$datastore->upsert($task);
このコードは配備されても問題なく実行されます。しかし、ローカルでスロー:
Fatal error: Uncaught exception 'Google\Cloud\Exception\ServiceException' with message 'No system CA bundle could be found in any of the the common system locations. PHP versions earlier than 5.6 are not properly configured to use the system's CA bundle by default. In order to verify peer certificates, you will need to supply the path on disk to a certificate bundle to the 'verify' request option: http://docs.guzzlephp.org/en/latest/clients.html#verify. If you do not need a specific certificate bundle, then Mozilla provides a commonly used CA bundle which can be downloaded here (provided by the maintainer of cURL): https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt. Once you have a CA bundle available on disk, you can set the 'openssl.cafile' PHP ini setting to point to the path to the file, allowing you to omit the 'verify' request option. See http://curl.haxx.se/docs/sslcerts.html for more information.' in D:\Google\php\appengine-php-guestbook-phase0-helloworld\appengine-php-guestbook-phase0-hellowo in D:\Google\php\appengine-php-guestbook-phase0-helloworld\appengine-php-guestbook-phase0-helloworld\vendor\google\cloud\src\RequestWrapper.php on line 219
を私はローカルサーバものphp.iniファイルを検討するために管理していなかったにも私は、少なくともphp56にバンドルさphp55をアップグレードするために管理しました。 Googleのリモートデータストアに
- がどのように適切に接続するためのローカルインスタンス(dev_appserver.py)からWindows上:
は、このように私は実際に2つの質問がありますか?
- localhost:8000のデータを表示できるように、ローカルインスタントからローカルエミュレートされたデータストアに正しく接続するにはどうすればいいですか?
PHPのドキュメント悲惨です。 dev_appserver.pyインスタンスがデータストアエミュレータと通信できるようにしましたか? –
いいえ、面白い事実、https://github.com/tomwalder/php-gdsを使用した後、私はエラーが発生しなくなりました。 –