2017-09-11 1 views
0

azure 저장소 계정에 덤프 된 데이터를 처리하는 웹 작업을
mystorage/data/{yyyy}/{MM}/{ddAzure 작업 BlobTrigger 경로의 경로를 년 월 일로 지정

void Foo(BlobTrigger(" mystorage/data/{yyyy}/{MM}/{dd}/app.csv") Stream message, TextWriter log) 
{ 
} 

이게 가능을 따르고 내가 Blobtrigger 지금하고 싶은}는

을 /app.csv? 오늘 날짜가 yyyy, MM 및 dd로 파싱되도록합니다. 기본적으로 blob은 blob에있는 파일 경로의 일부인 오늘 날짜를 기준으로 트리거되어야합니다.

+0

blob을 파일 구조로 만들 수 없습니다. File Storage를 살펴 보시기 바랍니다 https://docs.microsoft.com/en-us/azure/storage/files/storage-files-introduction – Fals

+0

물론 가능합니다. blob 저장소 계정에 해당 구조를 생성하는 ADF piple이 있습니다 –

+0

정말 하위 폴더/컨테이너를 만들어야합니까? 어쩌면 그냥 {yyyy} - {MM} - {dd} -app.csv와 같은 파일 패턴을 사용해야합니다. 나는 blobtrigger가 동적 폴더 이름을 처리 할 것이라고 생각하지 않는다. 단지 동적 인 blob 이름이다. – Thomas

답변

0

예, 그런 얼룩에 대해 Azure 함수를 트리거 할 수 있습니다. 샘플 함수 정의는 다음과 같습니다.

[FunctionName("Blob")] 
public static void Blob(
    [BlobTrigger("mystorage/data/{yyyy}/{MM}/{dd}/app.csv")] Stream message, 
    string yyyy, 
    string MM, 
    string dd, 
    TraceWriter log) 
{ 
    log.Info($"Found {yyyy}-{MM}-{dd}"); 
} 

예를 들어 blob이라는 블롭을 생성하면 트리거됩니다. 컨테이너 내 data/2017/09/12/app.csvmystorage.

날짜 부분의 유효성을 검사하지 않으므로 일반 문자열로 간주합니다 (예 : data/A/B/C/app.csv). 입력 매개 변수의 유형을 int으로 변경할 수 있지만 숫자가 아닌 경로에 대해서는 바인딩 예외가 발생합니다. 수동으로 날짜를 파싱하는 것은 간단합니다.

if (DateTime.TryParse($"{yyyy}-{MM}-{dd}", out DateTime date)) 
{ 
    log.Info($"Found {date}"); 
} 
관련 문제