3

나는 내 프로젝트에서 다음과 같은 기능이 있습니다 :Azure 함수에서 BlobTrigger를 사용하여 CloudBlockBlob에 바인딩하는 방법은 무엇입니까?

Microsoft.Azure.WebJobs.Host: Error indexing method 'SampleFunction.Run'. Microsoft.Azure.WebJobs.Host: Can't bind BlobTrigger to type 'Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob'. 

모든 문서 I :이 오류를

[FunctionName("my-func")] 
public static async Task Run([BlobTrigger("data/{name}")] CloudBlockBlob blob, string name, TraceWriter log) 
{ 
    log.Info($"Started Processing: {name}"); 

    await blob.DeleteAsync(); 

    log.Info($"Finished Processing: {name}"); 
} 

나는 푸른 기능의 v1.0.4을 사용하여 로컬 기능을 실행하려고

은 CLI를 얻을 수 Azure 함수에 대해 보았고 WebJobs SDK는 이것이 지원된다고 말합니다.

https://github.com/Azure/azure-webjobs-sdk/wiki/Blobs#-types-that-you-can-bind-to-blobs

답변

3

당신은 아마 WindowsAzure.Storage 조립 (버전 8.x.x)의 비 호환 버전에 종속 일부 NuGet 패키지를 참조한다. 그렇다면 제거하십시오. 당신은 몇 가지 추가 바인딩을 사용하지 않는 경우, 당신 csproj 참조는이처럼 간단 보일 것입니다 :

<ItemGroup>   
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.6" /> 
</ItemGroup> 
+0

. 이 예제를 단순화하기 위해 제거한 8.x.x가 필요한 다른 코드가있었습니다. 일단 참조를 제거하면 모든 것이 예상대로 작동했습니다. 감사! – Mike

+0

예, 어셈블리 버전 충돌 및 바인딩 리디렉션이없는 것으로 알려진 문제점입니다. 매우 혼란 스럽지만 적절한 해결책은 아직 없습니다. – Mikhail

0

당신이 푸른 저장 에뮬레이터 실행하고 있는지 확인하십시오 : 정확히 문제였다

cd C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator 

C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator> AzureStorageEmulator.exe start 
Windows Azure Storage Emulator 5.2.0.0 command line tool 
Autodetect requested. Autodetecting SQL Instance to use. 
Looking for a LocalDB Installation. 
Probing SQL Instance: '(localdb)\MSSQLLocalDB'. 
Found a LocalDB Installation. 
Probing SQL Instance: '(localdb)\MSSQLLocalDB'. 
Found SQL Instance (localdb)\MSSQLLocalDB. 
Creating database AzureStorageEmulatorDb52 on SQL instance '(localdb)\MSSQLLocalDB'. 
+0

그는 아마도 Azure Storage에 연결 중일 것입니다. 연결성 문제로 인해 다른 오류가 발생합니다. – Mikhail