针对Azure函数中预加载的Nuget包的更高版本
我正在编写一个Azure函数,它使用针对Azure函数中预加载的Nuget包的更高版本,azure,azure-storage,azure-functions,Azure,Azure Storage,Azure Functions,我正在编写一个Azure函数,它使用Microsoft.WindowsAzure.Storage来检查当Blob从存档移动到冷态时的再水化状态 为此,我需要检查blob属性的StandardBlobTier字段。我相信这在Microsoft.WindowsAzure.Storagenuget包中是一个相当新的属性,因此我需要针对最新版本 我在project.json中以9.1.0版为目标,但仍然得到错误:“BlobProperties”不包含“StandardBlobTier”的定义。。Micr
Microsoft.WindowsAzure.Storage
来检查当Blob从存档移动到冷态时的再水化状态
为此,我需要检查blob属性的StandardBlobTier
字段。我相信这在Microsoft.WindowsAzure.Storage
nuget包中是一个相当新的属性,因此我需要针对最新版本
我在project.json中以9.1.0版为目标,但仍然得到错误:“BlobProperties”不包含“StandardBlobTier”的定义。
。Microsoft.WindowsAzure.Storage的哪个版本将自动加载到Azure功能环境中,我如何覆盖它
源代码:
#r "System.IO"
#r "Newtonsoft.Json"
#r "Microsoft.WindowsAzure.Storage"
using System;
using System.Data.SqlClient;
using Newtonsoft.Json;
using Dapper;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using Microsoft.WindowsAzure.Storage.Shared.Protocol;
public static async Task Run(TimerInfo myTimer, TraceWriter log)
{
var archiveStorageAccount = CloudStorageAccount.Parse("{storageConnectionString}");
CloudBlobClient blobClient = archiveStorageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
// Retrieve reference to a blob.
CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName);
try
{
//Fill blob properties
await blockBlob.FetchAttributesAsync();
if (blockBlob.Properties.StandardBlobTier.HasValue && blockBlob.Properties.StandardBlobTier.Value == StandardBlobTier.Cool)
{
//Blob ready
}
//Blob still rehydrating
}
catch (StorageException ex) { throw; }
}
看起来像是Windows.Azure.Storage os 9.1.1的最新版本: 我还查阅了文档,它似乎是命名空间的一部分:
Microsoft.WindowsAzure.Storage.Blob
,您是否可以尝试使用此名称空间而不是Microsoft.WindowsAzure.Storage
有关StandardBlobTier的更多文档:
更新:
Azure函数使用的存储SDK版本7.2.1.0没有新属性,但是,内部开发人员确认可以通过创建customer project.json调用存储SDK的最新版本,并调用最新版本:
Project.json:
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.WindowsAzure.Storage": "9.0.0"
}
}
}
}
在这种情况下,您可能需要删除“#r”Microsoft.WindowsAzure.Storage”是的,它是
Microsoft.WindowsAzure.Storage.Blob
命名空间的一部分,但它仍然属于Microsoft.WindowsAzure.Storage
nuget包。我正在使用该名称空间,但显然预加载的版本不包含StandardBlobTier
属性。让我与一些内部团队核实一下,然后再与您联系。您可以添加您在问题中使用的代码吗?在问题中添加了函数源代码,感谢您的关注!谢谢你的反馈,亚当。我相信我过去也尝试过,但当我回到我的机器上时,我会尝试并更新我的状态。