Azure 이벤트 격자에서 blob 이벤트의 테마 필터

테마 필터링으로 인해 Azure 이벤트 그리드에서 간단하지만 강력한 이벤트 경로를 실현할 수 있습니다

로컬 디렉터리에서 다양한 csv 파일을 읽고 Azure Blob 저장소에 파일을 업로드한 다음 각 파일의 기록을 Azure Cosmos DB로 영구화하는 personal project을 개발하고 있습니다.이것들은 나의 Fitbit 계기판에서 다운로드한 파일들이다.
이 아키텍처는 상위 계층에서 다음과 같습니다.

여기 생각은 내가 가지고 있어.NET Core Docker 응용 프로그램, 로컬 디렉토리의 새 파일을 모니터링한 다음 파일을 Blob 저장소에 업로드합니다.blob을 만들면 이벤트 격자를 Azure 함수에 트리거하는 이벤트가 전송됩니다. 이 함수는 CSV 파일의 각 줄을 읽고 그 줄을 기록으로 Azure Cosmos DB에 저장합니다.
나는 이전에 이벤트 격자를 사용한 적이 있기 때문에, 내Azure 메모리 계정에 테마를 설정하고, 내Azure 함수에 구독을 만들어서 들어오는 이벤트를 처리하는 것은 매우 간단하다는 것을 안다.Azure 함수는 이벤트 그리드 트리거를 사용하여 호출할 수 있으므로 이벤트 그리드의 이벤트를 쉽게 설정하고 처리할 수 있습니다.
이 개인 프로젝트에 대해 내가 어떤 종류의 이벤트를 터치해야 하는지는 내가 Blob에 저장한 파일에 업로드하는 것에 달려 있다.내가 가장 하고 싶지 않은 일은 여러 개의 파일 감시 프로그램을 설정하여 특정한 유형의 파일을 자신의 저장 계정에 처리한 다음에 모든 저장 계정에 이벤트 격자 테마를 설정하는 것이다.
우리는 subject filtering 다른 이벤트를 보낼 수 있다. 이것은 우리의 시간을 낭비하지 않고 Azure 저장소에 업로드되는 블로그에 달려 있다.
내 저장 계정에 용기가 하나 있는데, 나의 모든 파일이 그 안에 업로드될 것이다.이 용기에서, 나는 하나의 폴더에 모든 수면 파일을 저장하고, 다른 폴더에 모든 활동 파일을 저장할 것이다.
그래서 내가 여기서 해야 할 일은 블로그 접두사 (blob 저장소의 디렉터리 이름) 를 필터하고, 이 디렉터리에서 블로그를 만들 때마다 이벤트를 보내는 것이다.이벤트 데이터의 테마에 따라 이벤트를 필터할 수 있습니다.
이 테마는 이벤트 격자 모드에서 찾을 수 있습니다.발송된 이벤트에 따라 패턴이 약간 달라질 수 있지만 패턴은 일반적으로 다음과 같다.
[
  {
    "topic": string,
    "subject": string,
    "id": string,
    "eventType": string,
    "eventTime": string,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string,
    "metadataVersion": string
  }
]
테마에 따라 이벤트를 선택할 때, 테마의 시작이나 끝에 일치하는 값을 지정할 수 있습니다.
이벤트 격자에 테마 필터를 사용하면 포털에 쉽게 설정할 수 있습니다.이벤트 격자 시스템 테마를 설정했기 때문에 테마 필터를 사용하는 새로운 이벤트 구독자를 만들어야 합니다.이벤트 격자 테마에 들어가서 "이벤트 구독"을 누르면 시작합니다.

이벤트 구독의 이름을 지정하고 이벤트 격자 모드를 이벤트 모드로 사용합니다.내 이벤트 격자 시스템 테마는 내 메모리 계정에 적용되며,blob을 만들 때만 이벤트를 터치하기를 원합니다.ProcessMonthlyActivityFile 함수를 단점으로 선택했습니다.

기본 설정을 설정한 후 필터 탭을 클릭합니다.테마 필터 사용 확인란을 클릭하면 테마 필터를 구성할 수 있습니다.
내 프로그램에 대해blob 접두사를 필터할 수 있기를 희망합니다. 그 형식은/blob 서비스s/default/containers/storageaccountname/blobs/blobprefix입니다.
용기에서만 선별을 하려면/blob 서비스/default/containers/storageaccountname/을 사용하십시오.이벤트의 구독자는 이벤트 격자 구조의subject 속성을 사용하여 어떤 이벤트를 설정된 단점으로 연결해야 하는지 확인합니다.

생성을 클릭하여 필터 생성을 완료합니다.이벤트 격자 시스템 테마에서 만든 것을 볼 수 있습니다.

내 이벤트 격자 시스템 테마에 두 개의 필터를 설정해서 내 메모리 계정에 활동 파일을 만들 때 Process MonthlyActivity File 함수로 연결합니다.수면 파일을 만들면 ProcessSleepFile 함수로 라우팅됩니다.
우리는 함수의 로그를 검사함으로써 이 점을 검증할 수 있다.ProcessMonthlyActivityFile 함수의 로그는 다음과 같습니다.

다음은 ProcessSleepFile 함수의 로그입니다.

함수 자체에 특별한 코드가 없어서 이벤트를 필터합니다.모든 필터는 이벤트 격자에서 이루어지기 때문에 이것은 매우 강력하고 간단하게 이벤트 루트를 실현하는 방법이며 자신의 클라이언트를 작성하여 실현할 필요가 없다!쿨하다😎)
이벤트 종류나 더 높은 방법으로 이벤트 격자에 있는 이벤트를 선별할 수 있습니다.만약 당신이 이 점을 어떻게 하는지 배우고 싶다면, 본문을 읽어야 한다. article
Azure 이벤트 그리드 및 Azure 이벤트 그리드 사용 방법에 대한 자세한 내용을 보려면 다음 기사를 읽어 보시기 바랍니다.
  • What is Azure Event Grid?
  • Quickstart: Route custom events to an Azure Function with Event Grid
  • 질문이 있으시면 언제든지 아래에 댓글을 달아주시거나 연락 주세요.

    좋은 웹페이지 즐겨찾기