Cloud Functions 및 Pub/Sub로 모델 이벤트 알림 사용 설정

Vertex AI Vision에서 모델은 카메라와 같은 기기에서 미디어 데이터를 수신하고, 데이터에 AI 예측을 실행하고, 주석을 지속적으로 생성합니다. 추가 분석 작업을 위해 처리된 데이터를 미디어 창고나 BigQuery와 같은 데이터 대상 ('데이터 싱크')으로 전송하는 경우가 많습니다. 하지만 일부 주석을 다르게 처리해야 하거나 주석 요구사항이 시간에 민감한 경우도 있습니다. Cloud Run 함수 및 Pub/Sub와 통합하면 이러한 요구사항을 해결할 수 있습니다.

모델 이벤트 알림을 사용 설정하려면 다음을 실행해야 합니다.

  1. Cloud Run 함수를 사용하여 모델 데이터를 수신 대기하고 이 데이터에서 이벤트를 생성합니다.
  2. Pub/Sub 이벤트 채널을 통해 Cloud Run 함수에서 생성된 이벤트를 전송합니다.

지원되는 모델

다음 모델은 Cloud Run 함수 이벤트 생성 및 Pub/Sub 이벤트 알림 통합을 제공합니다.

시작하기 전에

  • 최소한 스트림 노드와 지원되는 모델 노드가 있는 앱을 만듭니다.
  • 선택사항입니다. Vertex AI Vision SDK를 설치하고 앱에 데이터를 처리합니다. 이벤트 알림을 설정하기 전에 이 작업을 완료하지 않으면 나중에 완료해야 합니다.
  • 선택사항입니다. 사용할 Cloud Run 함수를 만듭니다. 모델 출력을 처리하도록 Cloud Run 함수를 구성하기 전에 Cloud Run 함수를 만들지 않으면 해당 프로세스 중에 만들어야 합니다.
  • 선택사항입니다. 사용할 Pub/Sub 주제를 만듭니다. Pub/Sub로 모델 이벤트 알림을 사용 설정하기 전에 Pub/Sub 주제를 만들지 않으면 이 과정에서 주제를 만들어야 합니다.
  • 선택사항입니다. Pub/Sub 구독 선택 및 만들기 Pub/Sub으로 모델 이벤트 알림을 사용 설정하기 전에 Pub/Sub 구독을 만들지 않으면 주제에서 메시지를 읽으려면 나중에 구독을 만들어야 합니다.

모델 출력을 처리하도록 Cloud Run 함수 구성

이벤트 기반 알림을 트리거하려면 먼저 Cloud Run 함수를 설정하여 모델 출력을 처리하고 이벤트를 생성해야 합니다.

Cloud Run 함수는 모델에 연결하고 출력을 후처리 작업으로 리슨합니다. Cloud Run 함수는 AppPlatformCloudFunctionResponse를 반환해야 합니다. 이벤트(appplatformeventbody)는 다음 단계에서 구성하는 Pub/Sub 주제로 전송됩니다.

샘플 Cloud Run 함수 (점유율 분석 모델)

샘플 Cloud Run 함수

/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.hello_http = (req, res) => {
// Logging statement can be read with cmd `gcloud functions logs read {$functionName}`.
// For more about logging, please see https://cloud.google.com/functions/docs/monitoring

// The processor output will be stored in req.body.
const messageString = constructMessage(req.body);

// Send your message to operator output with res HTTP response context.
res.status(200).send(messageString);
};

function constructMessage(data) {
// Typically, your processor output should contains appPlatformMetadata & it's designed output.
// Here we will use the occupancy analytics model as an example.
const appPlatformMetadata = data.appPlatformMetadata;
const annotations = data.annotations;
const events = [];
for(const annotation of annotations) {
   events.push({
      "event_message": "Event message goes here",
      "payload" : {
         "attr_key_goes_here" : "val_goes_here"
      },
      "event_id" : "event_id_goes_here"
   });
}

// Typically, your cloud function should return a string represent a JSON which has two fields:
// "annotations" must follow the specification of the target model.
// "events" should be of type "AppPlatformEventBody".
const messageJson = {
   "annotations": annotations,
   "events": events,
};
return JSON.stringify(messageJson);
}

다음 안내에 따라 모델 출력 스트림을 Cloud Run 함수로 전송합니다.

콘솔

  1. Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.

    애플리케이션 탭으로 이동

  2. 목록에서 애플리케이션 이름 옆에 있는 앱 보기를 선택합니다.

  3. 지원되는 모델을 클릭하여 모델 세부정보 측면 패널을 엽니다.

  4. 이벤트 알림 섹션의 후처리 목록에서 기존 Cloud Run 함수를 선택하거나 새 함수를 만듭니다.

    Cloud Console에서 후처리 Cloud 함수 이미지 선택

Pub/Sub로 모델 이벤트 알림 사용 설정

모델 출력을 처리하고 이벤트를 생성하도록 Cloud Run 함수를 설정한 후 Pub/Sub로 이벤트 알림을 설정할 수 있습니다. 주제의 메시지를 읽으려면 Pub/Sub 구독을 선택하고 만들어야 합니다.

콘솔

  1. Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.

    애플리케이션 탭으로 이동

  2. 목록에서 애플리케이션 이름 옆에 있는 앱 보기를 선택합니다.

  3. 지원되는 모델을 클릭하여 모델 세부정보 측면 패널을 엽니다.

  4. Event notification(이벤트 알림) 섹션에서 Set up event notification(이벤트 알림 설정)을 선택합니다.

  5. 열리는 이벤트 알림을 위한 Pub/Sub 설정 옵션 창에서 기존 Pub/Sub 주제를 선택하거나 새 주제를 만듭니다.

  6. 빈도 필드에서 동일한 유형의 이벤트에 대한 알림을 보낼 수 있는 빈도 값(초)의 정수 값을 설정합니다.

    Cloud 콘솔에서 이벤트 알림 이미지 설정

  7. 설정을 클릭합니다.

다음 단계