Как вызвать GCP Datastore из облачной функции GCP?
Вот стартовый код, предоставляемый с новой облачной функцией GCP:
/**
* Responds to any HTTP request that can provide a "message" field in the body.
*
* @param {!Object} req Cloud Function request context.
* @param {!Object} res Cloud Function response context.
*/
exports.helloWorld = function helloWorld(req, res) {
// Example input: {"message": "Hello!"}
if (req.body.message === undefined) {
// This is an error case, as "message" is required.
res.status(400).send('No message defined!');
} else {
// Everything is okay.
console.log(req.body.message);
res.status(200).send('Success: ' + req.body.message);
}
};
... и package.json:
{
"name": "sample-http",
"version": "0.0.1"
}
Здесь вы найдете базовый пример вызова DataStore.
2 ответа
Я не пользователь Node.js, но, основываясь на документации, я думаю, что одним из удобных способов было бы использовать клиентскую библиотеку облачного хранилища данных Node.js. Пример с этой страницы:
// Imports the Google Cloud client library
const Datastore = require('@google-cloud/datastore');
// Your Google Cloud Platform project ID
const projectId = 'YOUR_PROJECT_ID';
// Instantiates a client
const datastore = Datastore({
projectId: projectId
});
// The kind for the new entity
const kind = 'Task';
// The name/ID for the new entity
const name = 'sampletask1';
// The Cloud Datastore key for the new entity
const taskKey = datastore.key([kind, name]);
// Prepares the new entity
const task = {
key: taskKey,
data: {
description: 'Buy milk'
}
};
// Saves the entity
datastore.save(task)
.then(() => {
console.log(`Saved ${task.key.name}: ${task.data.description}`);
})
.catch((err) => {
console.error('ERROR:', err);
});
Но вы также можете взглянуть на объяснения клиентских библиотек, так как они описывают или указывают на подробные страницы о других опциях, некоторые из которых могут оказаться предпочтительными.
Вам нужно включить зависимость DataStore в package.json
{
"name": "sample-http",
"dependencies": {
"@google-cloud/datastore": "1.3.4"
},
"version": "0.0.1"
}