Azure Blob Storage
목적
event grid 기능과 service bus queue를 통해 Glasswall Halo API를 사용하여 Azure Blob Storage에서 자동 파일 무해화 설정을 구성합니다.
Azure Blob Storage 통합 가이드
- 사전 요구 사항
- 1단계 - service bus namespace 만들기
- 2단계 - service bus queue 만들기
- 3단계 - 원본 blob storage account 이벤트 설정
- 4단계 - function app 만들기
- 5단계 - function 만들기
필수 조건
- Azure Portal 계정
- 원본 Azure Blob Storage 계정
- 대상 Azure Blob Storage 계정
- Glasswall 예제 코드
참고:
- 모든 구성 매개변수의 이름이 올바르게 지정되어 Azure Function App에 추가되었는지 확인하세요. 이름이 일치하지 않으면 실패가 발생합니다.
- 이 사용 사례를 보여주기 위한 샘플 코드만 제공했습니다. 이 코드는 플랫 파일만 처리하며 정교한 로깅 메커니즘은 갖추고 있지 않습니다.
1단계 - Service Bus 네임스페이스 만들기
먼저 event grid 메시지를 수신할 수 있도록 Service Bus 네임스페이스와 큐를 만들어야 합니다.
참고: 티어와 설정은 사용자의 부하 또는 IT 환경과 관련이 있습니다.
-
Azure Portal에 로그인합니다.
-
All services > Integration > Service Bus로 이동합니다.
-
Basics 탭의 Create namespace 페이지에서 Namespace를 생성합니다.
참고: 제공된 샘플 코드는 모든 티어에서 작동하므로 사용 목적에 맞는 설정을 선택하고, 필수 구성을 모두 입력합니다.

Service Bus namespace 및 queue 생성에 대한 자세한 내용은 Azure documentation을 참조하세요.
2단계 - Service Bus queue 생성
namespace가 생성되면 이벤트를 게시할 queue를 생성해야 합니다.
-
Service Bus namespace 페이지에서 왼쪽 탐색 메뉴의 Queues를 선택합니다.
-
Queues 페이지에서 도구 모음의 + queue를 선택합니다.

참고: 네임스페이스와 마찬가지로 설정은 선호에 따라 달라집니다. 이 예제에서는 기본값을 그대로 사용합니다.
- 큐의 이름을 입력하고, 다른 값은 기본값으로 둡니다.
선택하는 이름은 중요하지 않습니다. 예제 코드에서 설정된 값이 무엇이든 구성할 수 있기 때문입니다.

- Create를 선택합니다.
Service Bus namespace 및 queue 생성에 대한 자세한 내용은 Azure documentation을 참조하세요.
3단계 - 원본 Blob Storage 계정 이벤트 설정
Service Bus 네임스페이스와 큐를 만든 후, 원본 Blob Storage 계정이 이벤트를 큐로 메시지로 전송하도록 구성합니다.
이러한 이벤트는 Azure Function을 직접 트리거하도록 구성할 수도 있지만, 각 이벤트는 30초 이내에 승인되어야 합니다. 대부분의 파일은 빠르게 처리되지만, 더 큰 파일이나 높은 부하가 발생하는 기간에는 이 시간을 초과할 수 있습니다.
이 제한을 피하기 위해 Event Grid가 이벤트를 Service Bus 큐로 전달하도록 구성하고, Azure Function이 큐에서 메시지를 소비하도록 하는 것을 권장합니다. 이 접근 방식은 이벤트 수집과 처리를 분리하여 더 높은 복원력과 유연성을 제공합니다.
- 이벤트를 설정하려면 원본 스토리지 계정으로 이동한 다음 Events > More options > Service Bus queue를 선택합니다.

-
이벤트 구독 세부 정보에서 Name을 입력합니다.
-
토픽 세부 정보에서 System topic name을 입력합니다.
-
Filter to event type 드롭다운에서 Blob created를 선택합니다.
즉, 해당 스토리지 계정 전체의 Blob Storage에서 새 파일이 생성될 때마다 메시지가 생성됩니다.
- 마지막으로 endpoint detail에서 이전 단계에서 만든 큐를 선택합니다.


이제 해당 스토리지 계정에 업로드되는 모든 파일마다 새 Service Bus 메시지가 큐에 배치되며, 이는 다음에 만들 함수에서 소비됩니다.
4단계 - Function App 만들기
함수 실행을 호스팅하려면 Function App이 있어야 합니다. 방금 생성한 Service Bus 메시지를 사용하는 Azure function은 event grid 세부 정보를 사용하여 새 파일을 식별할 수 있습니다.
Glasswall은 다음을 수행하는 C#의 작동 예제를 제공합니다:
- 새 파일을 식별합니다.
- 파일에 액세스합니다.
- 이를 Glasswall Halo의 Synchronous API에 대한 요청으로 전송합니다.
- 대상 스토리지 계정에 동일한 이름의 컨테이너를 생성합니다(아직 존재하지 않는 경우).
- 재생성된 파일(원본과 동일한 이름) 또는 재생성할 수 없는 경우 텍스트 파일을 씁니다.
-
Function App을 만들려면 리소스 만들기 페이지로 이동합니다.
-
새로 만들기 페이지에서 Compute > Function app을 선택합니다.
-
아래 설정은 Glasswall의 예제 함수에 사용할 수 있습니다. 의도한 함수 코드와 호스팅 옵션에 맞게 이 설정을 조정해야 합니다:

Function App 생성에 대한 자세한 내용은 Azure documentation을 참조하세요.
5단계 - 함수 만들기
Function App이 생성되면 함수를 만들 수 있습니다.
- Function App 개요에서는 코드를 배포하는 다양한 방법에 대한 지침을 제공합니다.
선택한 코드베이스에 가장 적합한 방법을 선택하세요.


- Glasswall의 샘플 코드를 사용하는 경우 다음 구성을 Settings > Configuration을 통해 Function App에 추가해야 합니다.
모든 값은 Azure Portal의 관련 리소스에서 가져올 수 있습니다. Glasswall Halo에 액세스하려면 사용 중인 인스턴스와 인증을 사용하거나, 평가판 목적으로는 기본 인증 자격 증명을 사용하기 위해 영업팀에 문의하세요 공개 엔드포인트용입니다.
구성
| 키 | 값 |
|---|---|
| Azure_servicebus_connectionstring | service bus용 연결 문자열 |
| Azure_servicebus_newfiles_queuename | 새 blob 이벤트용 큐 이름 |
| Azure_storage_account_name | 원본 스토리지 계정 이름 |
| Azure_storage_account_key | 원본 스토리지 계정 키 |
| Azure_storage_destination_connectionstring | 대상 스토리지 계정 연결 문자열 |
| cdr_username | Halo API 기본 인증용 사용자 이름 |
| cdr_password | Halo API 기본 인증용 비밀번호 |
| cdr_url | CDR-file 엔드포인트용 URL(예: https://api.glasswall.com/api/v3/cdr-file) |

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