我有一个简单的Azure函数,可以定期将一些数据写入Azure表存储。
var storageAccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("mystorage","xxxxx"),true);
var tableClient = storageAccount.CreateCloudTableClient();
myTable = tableClient.GetTableReference("myData");
TableOperation insertOperation = TableOperation.Insert(data);
myTable.ExecuteAsync(insertOperation);
代码在Visual Studio本地运行良好,所有数据都正确写入位于Azure的表存储中。 但是,如果我将此代码 1:1 作为 Azure 函数部署到 Azure 中,则代码也运行良好,没有任何异常,日志记录显示,它贯穿每一行代码。
但是表存储中没有写入任何数据 - 相同的名称、相同的凭据、相同的代码。
与"Local AzureFunc> Azure Table Storage"相比,Azure 是否以某种方式阻止此连接(Azure> Azure Table Storage中的 AzureFunc(?
是否阻止此连接 (AzureFunc in Azure> Azure Table 存储(在某种程度上与"Local AzureFunc> Azure Table "形成对比 存储(?
不,不是 azure 阻止了连接或类似的东西。
您必须等待使用ExecuteAsync执行的表操作,因为程序中的控件正在移动而没有完成该方法。将最后一行代码更改为
await myTable.ExecuteAsync(insertOperation);
看看这里是如何进行的 因为不等待此调用,所以当前方法在调用完成之前继续运行。
问题是rowkey:
我使用 DateTime.Now 作为行键(因为表存储不提供自动增量值(。 我的本地格式是"1.1.2019 18:19:20",而服务器的格式是"1/1/2019 ...">
而"/"似乎不允许在行键字符串中出现。
现在,格式化日期时间字符串正确一切正常。