내가 뭘하려는 거지? 데이터 레이크 컨테이너가 있습니다. HDFS 네임 스페이스 내부 예 : "container / year / month / day / bunch of files". 파일은 매일 업로드되며 폴더 구조는 현재 날짜를 기준으로 동적입니다. 파일이 하루 디렉터리에 업로드 될 때 트리거하려면 내 하늘빛 기능이 필요합니다. 해당 파일은 SQL Server db [c # code]로 데이터를 처리하고 덤프합니다. 나는 문제가 동적 디렉토리를 통해 내 기능을 트리거하는 것뿐입니다. 저를 도와 주시거나 접근 방법을 제안 해주세요.
정말 감사합니다.
동적 폴더 이름을 사용할 필요가 없습니다. 실제로 blobtrigger의 경로는 컴파일 할 때 제공되어야합니다. const를 주거나 환경 변수에 설정해야합니다.
따라서 두 가지 방법이 있습니다.
1, 첫 번째 방법은 간단합니다. 다음과 같이하십시오.
using System;
using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
namespace FunctionApp23
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run([BlobTrigger("yourcontainername/{year}/{month}/{day}/{filename}", Connection = "str")]Stream myBlob, string filename, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{filename} \n Size: {myBlob.Length} Bytes");
}
}
}
2, 두 번째 방법, 블로 트리거로 타임 트리거를 배포합니다. 그리고 그 안에 환경 변수를 추가 할 수있는 코드를 넣으십시오. (이 timetrigger는 하루에 한 번 트리거됩니다.)
이 방법은 권장하지 않지만 "동적"을 달성 할 수 있지만 사용 사례에는이 방법이 필요하지 않다고 생각합니다. 정말로 필요한 경우 코드를 업데이트하겠습니다. 그러나 이론적으로는 첫 번째 방법으로 충분합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다