주요 콘텐츠로 건너뛰기

Azure Blob Storage

목적

event grid 기능과 service bus queue를 통해 Glasswall Halo API를 사용하여 Azure Blob Storage에서 자동 파일 무해화 설정을 구성합니다.

Azure Blob Storage 통합 가이드


필수 조건

참고:

  • 모든 구성 매개변수의 이름이 올바르게 지정되어 Azure Function App에 추가되었는지 확인하세요. 이름이 일치하지 않으면 실패가 발생합니다.
  • 이 사용 사례를 보여주기 위한 샘플 코드만 제공했습니다. 이 코드는 플랫 파일만 처리하며 정교한 로깅 메커니즘은 갖추고 있지 않습니다.

1단계 - Service Bus 네임스페이스 만들기

먼저 event grid 메시지를 수신할 수 있도록 Service Bus 네임스페이스와 큐를 만들어야 합니다.

참고: 티어와 설정은 사용자의 부하 또는 IT 환경과 관련이 있습니다.

  1. Azure Portal에 로그인합니다.

  2. All services > Integration > Service Bus로 이동합니다.

  3. Basics 탭의 Create namespace 페이지에서 Namespace를 생성합니다.

참고: 제공된 샘플 코드는 모든 티어에서 작동하므로 사용 목적에 맞는 설정을 선택하고, 필수 구성을 모두 입력합니다.

Abs%20-%20step%201c

Service Bus namespace 및 queue 생성에 대한 자세한 내용은 Azure documentation을 참조하세요.


2단계 - Service Bus queue 생성

namespace가 생성되면 이벤트를 게시할 queue를 생성해야 합니다.

  1. Service Bus namespace 페이지에서 왼쪽 탐색 메뉴의 Queues를 선택합니다.

  2. Queues 페이지에서 도구 모음의 + queue를 선택합니다.

Abs%20-%20step%201d

참고: 네임스페이스와 마찬가지로 설정은 선호에 따라 달라집니다. 이 예제에서는 기본값을 그대로 사용합니다.

  1. 큐의 이름을 입력하고, 다른 값은 기본값으로 둡니다.

선택하는 이름은 중요하지 않습니다. 예제 코드에서 설정된 값이 무엇이든 구성할 수 있기 때문입니다.

Abs%20-%20step%201e

  1. Create를 선택합니다.

Service Bus namespace 및 queue 생성에 대한 자세한 내용은 Azure documentation을 참조하세요.


3단계 - 원본 Blob Storage 계정 이벤트 설정

Service Bus 네임스페이스와 큐를 만든 후, 원본 Blob Storage 계정이 이벤트를 큐로 메시지로 전송하도록 구성합니다.

이러한 이벤트는 Azure Function을 직접 트리거하도록 구성할 수도 있지만, 각 이벤트는 30초 이내에 승인되어야 합니다. 대부분의 파일은 빠르게 처리되지만, 더 큰 파일이나 높은 부하가 발생하는 기간에는 이 시간을 초과할 수 있습니다.

이 제한을 피하기 위해 Event Grid가 이벤트를 Service Bus 큐로 전달하도록 구성하고, Azure Function이 큐에서 메시지를 소비하도록 하는 것을 권장합니다. 이 접근 방식은 이벤트 수집과 처리를 분리하여 더 높은 복원력과 유연성을 제공합니다.

  1. 이벤트를 설정하려면 원본 스토리지 계정으로 이동한 다음 Events > More options > Service Bus queue를 선택합니다.

Abs%20-%20step%202a

  1. 이벤트 구독 세부 정보에서 Name을 입력합니다.

  2. 토픽 세부 정보에서 System topic name을 입력합니다.

  3. Filter to event type 드롭다운에서 Blob created를 선택합니다.

즉, 해당 스토리지 계정 전체의 Blob Storage에서 새 파일이 생성될 때마다 메시지가 생성됩니다.

  1. 마지막으로 endpoint detail에서 이전 단계에서 만든 큐를 선택합니다.

Abs - step 2b.jpg

Abs%20-%20step%202c

이제 해당 스토리지 계정에 업로드되는 모든 파일마다 새 Service Bus 메시지가 큐에 배치되며, 이는 다음에 만들 함수에서 소비됩니다.


4단계 - Function App 만들기

함수 실행을 호스팅하려면 Function App이 있어야 합니다. 방금 생성한 Service Bus 메시지를 사용하는 Azure function은 event grid 세부 정보를 사용하여 새 파일을 식별할 수 있습니다.

Glasswall은 다음을 수행하는 C#의 작동 예제를 제공합니다:

  • 새 파일을 식별합니다.
  • 파일에 액세스합니다.
  • 이를 Glasswall Halo의 Synchronous API에 대한 요청으로 전송합니다.
  • 대상 스토리지 계정에 동일한 이름의 컨테이너를 생성합니다(아직 존재하지 않는 경우).
  • 재생성된 파일(원본과 동일한 이름) 또는 재생성할 수 없는 경우 텍스트 파일을 씁니다.
  1. Function App을 만들려면 리소스 만들기 페이지로 이동합니다.

  2. 새로 만들기 페이지에서 Compute > Function app을 선택합니다.

  3. 아래 설정은 Glasswall의 예제 함수에 사용할 수 있습니다. 의도한 함수 코드와 호스팅 옵션에 맞게 이 설정을 조정해야 합니다:

Abs - step 3a.jpg

Function App 생성에 대한 자세한 내용은 Azure documentation을 참조하세요.


5단계 - 함수 만들기

Function App이 생성되면 함수를 만들 수 있습니다.

  1. Function App 개요에서는 코드를 배포하는 다양한 방법에 대한 지침을 제공합니다.

선택한 코드베이스에 가장 적합한 방법을 선택하세요.

Abs%20-%20step%203b

Abs%20-%20step%203c

  1. Glasswall의 샘플 코드를 사용하는 경우 다음 구성을 Settings > Configuration을 통해 Function App에 추가해야 합니다.

모든 값은 Azure Portal의 관련 리소스에서 가져올 수 있습니다. Glasswall Halo에 액세스하려면 사용 중인 인스턴스와 인증을 사용하거나, 평가판 목적으로는 기본 인증 자격 증명을 사용하기 위해 영업팀에 문의하세요 공개 엔드포인트용입니다.

구성

Azure_servicebus_connectionstringservice bus용 연결 문자열
Azure_servicebus_newfiles_queuename새 blob 이벤트용 큐 이름
Azure_storage_account_name원본 스토리지 계정 이름
Azure_storage_account_key원본 스토리지 계정 키
Azure_storage_destination_connectionstring대상 스토리지 계정 연결 문자열
cdr_usernameHalo API 기본 인증용 사용자 이름
cdr_passwordHalo API 기본 인증용 비밀번호
cdr_urlCDR-file 엔드포인트용 URL(예: https://api.glasswall.com/api/v3/cdr-file)

Abs%20-%20step%203d

축하합니다! 모든 단계를 완료하면 이제 소스 Azure Blob Storage 계정에 저장되는 모든 파일이 Glasswall 고급 CDR 기술로 처리되며, 그 결과 재생성된 클린 문서 또는 오류 메시지가 포함된 무해한 텍스트 파일이 생성됩니다.