Может ли недавно выпущенная среда выполнения GAE PHP получить доступ к встроенному хранилищу данных GAE?

Google только что объявила о поддержке среды выполнения PHP для App Engine. У меня есть приложение, разработанное с использованием среды выполнения Java, которая использует собственный хранилище данных App Engine. В настоящее время он работает в качестве задней части для мобильных клиентов. Мы изучаем разработку отдельного веб-интерфейса, который должен был бы взаимодействовать с этим хранилищем данных. Разработчик, работающий над этим, предпочитает развиваться в PHP, поэтому время этого анонса интересно.

Однако, просматривая документацию, я вижу только ссылку на Google Cloud SQL и Google Cloud Storage в качестве опций в разделе «Хранение данных». Возможно ли связать собственный хранилище данных App Engine с использованием среды выполнения PHP?

Solutions Collecting From Web of "Может ли недавно выпущенная среда выполнения GAE PHP получить доступ к встроенному хранилищу данных GAE?"

В I / O мы также объявляем Cloud Datastore, который на данный момент – это то, как вы должны думать о доступе к хранилищу данных из приложения PHP.

  1. вам нужно включить хранилище данных Google Cloud для своего проекта, см. https://developers.google.com/datastore/docs/activate#google_cloud_datastore_for_an_existing_app_engine_application

    примечание: вам не нужен вычислительный движок

    убедитесь, что в консоли администратора раздел интеграции облачных настроек приложения показывает: «Проект был успешно создан. Подробнее см. Раздел «Основы».

  2. Следуйте инструкциям о том, как получить и использовать клиентскую библиотеку Google API на AppEngine https://gaeforphp-blog.appspot.com/2013/08/06/using-the-google-apis-client-library-for-php- с приложением-двигатель /

  3. См. Прилагаемый рабочий пример для поиска. Декодированный ключ объекта: Гостевая книга: name = default_guestbook> Приветствие: id = 5733953138851840

<?php const SERVICE_ACCOUNT_NAME = 'your-service-account-id@developer.gserviceaccount.com'; require_once 'libraries/google-api-php-client/src/Google_Client.php'; require_once 'libraries/google-api-php-client/src/contrib/Google_DatastoreService.php'; $client = new Google_Client(); $client->setApplicationName("your_app_id"); $key = file_get_contents('storage/your-hashed-keyid-privatekey.p12'); $client->setAssertionCredentials( new Google_AssertionCredentials( SERVICE_ACCOUNT_NAME, array('https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/datastore'), $key) ); $datastore = new Google_DatastoreService($client); $lookup = new Google_LookupRequest(); $path1 = new Google_KeyPathElement(); $path1->setKind('Guestbook'); $path1->setName('default_guestbook'); $path2 = new Google_KeyPathElement(); $path2->setKind('Greeting'); # this is just an example check a real entity id in your datastore # if you do not have ancestor entity you only need one (path1) element $path2->setId('5733953138851840'); $key = new Google_Key(); $key->setPath([$path1,$path2]); $keyArray = array(); $keyArray[] = $key; $lookup->setKeys($keyArray); if(array_key_exists('catchError', $_GET)){ try{ $result = $datastore->datasets->lookup('your_project_name', $lookup); var_dump($result); } catch(Google_ServiceException $e){ echo "<pre>"; var_dump($e); echo "</pre>"; } } else{ $result = $datastore->datasets->lookup('your_project_name', $lookup); var_dump($result); } 

Эта библиотека была недавно выпущена (мной). Надеюсь, это поможет людям найти эту тему.

Это упрощает использование Datastore от PHP (в App Engine или нет).

https://github.com/tomwalder/php-gds

Наслаждайтесь!

ссылка: https://developers.google.com/datastore/docs/concepts/gql#using_literals_sample_code

 <?php const APP_NAME='a-test-com'; const SERVICE_ACCOUNT_NAME='511908@developer.gserviceaccount.com'; $_PRIVATE_KEY=file_get_contents('data/34672c-privatekey.p12'); require_once 'google-api-php-client/Google_Client.php'; $client=new Google_Client(); $credentials=new Google_AssertionCredentials(SERVICE_ACCOUNT_NAME, array('https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/datastore' ), $_PRIVATE_KEY ); $client->setAssertionCredentials($credentials); $postBody=json_encode(array('gqlQuery'=>array('allowLiteral'=>true, 'queryString'=> "SELECT * FROM Guestbook WHERE __key__=key(Guestbook, 'default_guestbook')" ))); $httpRequest=new Google_HttpRequest('datastore/v1beta2/datasets/'.APP_NAME.'/runQuery', 'POST', null, $postBody); $head=array('content-type'=>'application/json; charset=UTF-8', 'content-length'=>Google_Utils::getStrLen($postBody) ); $httpRequest->setRequestHeaders($head); $httpRequest=Google_Client::$auth->sign($httpRequest); $result=Google_REST::execute($httpRequest); var_export($result); ?> 

код вставки: как вставить запись с помощью консоли администратора Datastore Viewer с использованием GQL