使用Javascript Azure函数将实体添加到Azure Cosmos表
在Azure中,我有一个javascript HTTPTrigger函数应用程序,具有:使用Javascript Azure函数将实体添加到Azure Cosmos表,azure,azure-functions,azure-cosmosdb,Azure,Azure Functions,Azure Cosmosdb,在Azure中,我有一个javascript HTTPTrigger函数应用程序,具有: const azure = require('azure-storage') const tableSvc = azure.createTableService( process.env.COSMOS_TABLE_ACCOUNT, process.env.COSMOS_TABLE_KEY, process.env.COSMOS_TABLE_ENDPOINT ) const entGe
const azure = require('azure-storage')
const tableSvc = azure.createTableService(
process.env.COSMOS_TABLE_ACCOUNT,
process.env.COSMOS_TABLE_KEY,
process.env.COSMOS_TABLE_ENDPOINT
)
const entGen = azure.TableUtilities.entityGenerator
const testData = {
PartitionKey: entGen.String('test'),
RowKey: entGen.String(1),
name: entGen.String('It works!')
}
const insertTestData = () => new Promise((resolve, reject) => {
tableSvc.insertEntity('tests', testData, (error, res) => {
if (error) return reject(error)
resolve(res)
})
})
...
我已经确认环境变量都已设置,并使用Azure Cosmos DB->Cosmos Table Instance->Connection String中的值填充
我也尝试过与以下方面联系:
const tableSvc = azure.createTableService(
process.env.COSMOS_TABLE_CONNECTION_STRING
)
调用insertTestData()
时,我从带有空对象的.insertEntity
回调返回一个错误:{}
。没有实体被添加到我的测试
表中,这已由数据浏览器确认
您知道如何执行此操作或在我的调试器中获取更多信息吗?我有一个Insight监视器连接到进程,但它报告成功完成。我注意到您正在为
行键
属性传递一个数值
RowKey: entGen.String(1)
当我使用代码时,它对此表示不满
当我将代码更改为:
RowKey: entGen.String('1')
我能够插入实体
以下是我的完整代码:
const azure = require('azure-storage')
const tableSvc = azure.createTableService(
'account-name',
'account-key',
'https://account-name.table.core.windows.net'
)
const entGen = azure.TableUtilities.entityGenerator
const testData = {
PartitionKey: entGen.String('test'),
RowKey: entGen.String('1'),
name: entGen.String('It works!')
}
console.log(testData);
const insertTestData = () => new Promise((resolve, reject) => {
tableSvc.insertEntity('test', testData, (error, res) => {
if (error) return reject(error)
resolve(res)
})
})
console.log('----------------');
insertTestData()
.then((result) => {
console.log('result');
console.log(result);
})
.catch((error) => {
console.log('error');
console.log(error);
})
我使用了
azure存储
NPM包(版本2.10.2)。。那些围绕数字的引号做到了这一点。你知道,我昨晚考虑过这个问题,但我当时在看它时认为.String()
方法将转换为字符串。