For the complete documentation index, see llms.txt. This page is also available as Markdown.

S3 싱크

데이터를 AWS S3 버킷에 업로드합니다.

워크플로 데이터를 CSV, JSON, 텍스트 파일 형식을 지원하며, 여러 항목을 하나의 객체로 집계하거나 각 항목을 별도의 S3 객체로 저장할 수 있는 구성 가능한 출력 모드와 함께 AWS S3 버킷에 직접 저장합니다.

이 블록의 작동 방식

이 블록은 워크플로 단계의 문자열 콘텐츠를 S3 객체에 업로드합니다. 이 블록은 다음을 수행합니다:

  1. 문자열 콘텐츠(포매터, 예측 또는 기타 문자열 생성 블록에서 가져온 것)와 S3 구성을 입력으로 받습니다.

  2. 제공된 자격 증명(없으면 기본 AWS 자격 증명 체인)을 사용해 AWS S3에 연결합니다.

  3. 다음에 따라 적절한 업로드 전략을 선택합니다 출력 모드:

    • 별도 파일 모드: 각 입력마다 새 S3 객체를 생성하고, 타임스탬프를 사용해 고유한 키를 만듭니다

    • 로그 추가 모드: 콘텐츠를 메모리에 버퍼링한 뒤, 다음 시점에 완전한 객체를 업로드합니다 max_entries_per_file 에 도달하거나 블록이 파괴될 때

  4. 다음의 경우 별도 파일 모드: 접두사, 파일 이름 접두사, 파일 유형, 타임스탬프로부터 고유한 S3 키를 생성한 다음 콘텐츠를 직접 업로드합니다

  5. 다음의 경우 로그 추가 모드:

    • 단일 S3 키 아래에서 콘텐츠 항목을 메모리에 버퍼링합니다

    • 추가할 때 파일 형식별 처리를 적용합니다:

      • CSV: 이후 추가에서는 헤더 행을 제거합니다(CSV 콘텐츠는 첫 번째 쓰기에서 헤더를 포함해야 합니다)

      • JSON: JSONL(JSON Lines) 형식으로 변환하며, 각 JSON 문서를 파싱한 뒤 다시 직렬화하여 한 줄에 들어가도록 합니다

      • TXT: 줄바꿈을 사용해 콘텐츠를 직접 추가합니다

    • 항목 수를 추적하고 다음 경우 전체 버퍼를 완전한 S3 객체로 업로드합니다 max_entries_per_file 에 도달한 뒤 새 키로 새 버퍼를 시작합니다

    • 블록이 파괴될 때 남아 있는 버퍼 데이터를 업로드합니다

  6. 저장 성공 또는 실패를 나타내는 오류 상태와 메시지를 반환합니다

이 블록은 두 가지 저장 전략을 지원합니다. 별도 파일 모드는 각 입력마다 타임스탬프가 포함된 개별 S3 객체를 생성하며(실행별로 출력을 정리하는 데 유용함), 로그 추가 모드는 항목을 메모리에 누적한 뒤 순환 시 완전한 S3 객체로 기록합니다(업로드 빈도를 제어하면서 시계열 로그를 저장하는 데 유용함). S3 키 이름에는 타임스탬프(형식: YYYY_MM_DD_HH_MM_SS_microseconds)가 포함되어 고유한 키와 시간 순서 정렬을 보장합니다.

AWS 자격 증명

자격 증명은 두 가지 방법으로 제공할 수 있습니다:

  1. 워크플로 입력 - 다음을 선언합니다 aws_access_key_idaws_secret_access_key 를 다음 종류의 워크플로 입력으로 매개변수 로 선언하고 해당 필드에 연결합니다. 이렇게 하면 자격 증명이 워크플로 정의에서 분리되고 런타임에 제공할 수 있습니다.

  2. 시크릿 제공자 블록 - 자격 증명 필드를 다음의 출력에 연결합니다 환경 비밀 저장소 블록은 서버 측 환경 변수에서 값을 읽어오며, 워크플로에 값이 포함되지 않습니다. 참고: 이 기능은 자체 호스팅된 inference 서버에서만 사용할 수 있으며 Roboflow 호스팅 플랫폼에서는 사용할 수 없습니다.

S3 키 구조

최종 S3 키는 다음으로 구성됩니다:

예를 들어, s3_prefix="logs/detections", file_name_prefix="run", 그리고 file_type="csv":

만약 s3_prefix 가 비어 있으면 키는 파일 이름으로 바로 시작합니다.

로그 추가 모드 참고

로그 추가 모드에서는 데이터가 메모리에 버퍼링되며, 다음 경우에만 S3에 업로드됩니다:

  • max_entries_per_file 한도에 도달할 때(객체 순환), 또는

  • 워크플로 종료 시 블록 인스턴스가 파괴될 때

즉, 각 단계 실행 후 S3에서 데이터가 즉시 보이지 않을 수 있습니다. separate_files 모드를 사용하세요. S3에 즉시 표시되어야 하는 경우에는 그렇습니다.

일반적인 사용 사례

  • 클라우드 데이터 로깅: 감지 결과, 메트릭 또는 워크플로 출력을 S3에 직접 업로드하여 안정적인 클라우드 저장과 후속 처리를 수행합니다

  • 데이터 파이프라인 통합: 포맷된 CSV 또는 JSONL 파일을 S3로 내보내 데이터 파이프라인, 분석 도구 또는 ML 학습 작업에서 사용할 수 있게 합니다

  • 배치 결과 보관: 개별 추론 결과를 타임스탬프와 접두사로 정리된 별도의 S3 객체로 저장합니다

  • 시계열 수집: 워크플로 출력을 S3의 배치된 JSONL 또는 CSV 파일로 집계하여 비용 효율적인 로그 저장을 수행합니다

  • 서비스 간 통합: Lambda 함수를 트리거하거나 SQS 큐에 공급하거나 다른 AWS 서비스와 통합하기 위해 데이터를 S3에 기록합니다

유형 식별자

단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/s3_sink@v1 워크플로우에 이 블록을 단계로 추가하려면.

속성

이름

유형

설명

참조

name

str

이 단계에 대한 고유 식별자를 입력하세요..

파일 유형

str

생성할 파일의 유형: 'csv'(CSV 형식), 'json'(JSON 형식, 또는 append_log 모드에서는 JSONL), 또는 'txt'(일반 텍스트). append_log 모드에서는 JSON 파일이 한 줄에 JSON 객체 하나씩 들어가는 .jsonl(JSON Lines) 형식으로 저장됩니다..

출력 모드

str

업로드 전략: 'append_log'는 여러 항목을 버퍼링한 뒤 항목 한도에 도달하면 하나의 S3 객체로 업로드하며(배치 로깅에 유용함), 'separate_files'는 각 입력을 고유한 타임스탬프 기반 키를 가진 새 S3 객체로 업로드합니다(실행별 출력에 유용함)..

버킷 이름

str

대상 S3 버킷의 이름입니다. 정적 문자열이거나 런타임에 문자열로 해석되는 셀렉터일 수 있습니다..

s3_prefix

str

객체가 저장될 S3 키 접두사(폴더 경로)입니다. 후행 슬래시는 자동으로 정규화됩니다. file_name_prefix와 타임스탬프와 결합되어 전체 객체 키를 형성합니다. 예: 'logs/detections'는 'logs/detections/workflow_output_2024_10_18_14_09_57_622297.csv'와 같은 키를 생성합니다..

파일 이름 접두사

str

S3 객체 이름을 생성하는 데 사용되는 접두사입니다. 타임스탬프(형식: YYYY_MM_DD_HH_MM_SS_microseconds)와 파일 확장자와 결합되어 'workflow_output_2024_10_18_14_09_57_622297.csv'와 같은 고유한 키를 만듭니다..

max_entries_per_file

정수

append_log 모드에서 S3에 업로드하고 새 객체를 시작하기 전까지의 최대 버퍼 항목 수입니다. 이 한도에 도달하면 누적된 버퍼가 완전한 S3 객체로 업로드되고 새 버퍼가 새로운 키로 시작됩니다. output_mode가 'append_log'일 때만 적용됩니다. 최소 1이어야 합니다..

aws_access_key_id

str

인증용 AWS 액세스 키 ID입니다. 제공되지 않으면 boto3의 기본 자격 증명 체인(환경 변수, ~/.aws/credentials 또는 IAM 역할)이 사용됩니다. 권장: 하드코딩하지 말고 Environment Secrets Store 블록에 연결하세요..

aws_secret_access_key

str

인증용 AWS 비밀 액세스 키입니다. 제공되지 않으면 boto3의 기본 자격 증명 체인이 사용됩니다. 권장: 하드코딩하지 말고 Environment Secrets Store 블록에 연결하세요..

aws_region

str

버킷이 위치한 AWS 리전입니다(예: 'us-east-1'). 제공되지 않으면 boto3의 기본 리전(AWS_DEFAULT_REGION 환경 변수 또는 ~/.aws/config)이 사용됩니다..

참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.

런타임 호환성

소프트 - 런타임 호스팅 서버리스, 전용 배포; 실행 원격 append-log 모드는 누적된 객체를 S3에 업로드하기 전에 프로세스 메모리에 항목을 버퍼링합니다. 상태 비저장 또는 다중 복제본 HTTP 런타임에서 원격 단계 실행을 사용할 경우 연속 요청이 서로 다른 워커 프로세스에 의해 처리될 수 있으므로, append-log 객체가 워커 간에 초기화되거나 분할될 수 있습니다. 각 항목을 하나의 순서가 보장된 로그로 캡처해야 한다면 separate_files 모드나 지속적인 WebRTC 세션에서의 로컬 단계 실행을 사용하세요.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 S3 싱크 버전 v1 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • 콘텐츠 (string): S3에 업로드할 문자열 콘텐츠입니다. 이는 다른 워크플로 블록에서 형식화된 데이터여야 합니다(예: CSV Formatter의 CSV 콘텐츠, JSON 문자열 또는 일반 텍스트). 콘텐츠 형식은 지정된 file_type과 일치해야 합니다. append_log 모드의 CSV 파일에서는 첫 번째 쓰기에 헤더 행이 포함되어야 합니다..

    • 버킷 이름 (string): 대상 S3 버킷의 이름입니다. 정적 문자열이거나 런타임에 문자열로 해석되는 셀렉터일 수 있습니다..

    • s3_prefix (string): 객체가 저장될 S3 키 접두사(폴더 경로)입니다. 후행 슬래시는 자동으로 정규화됩니다. file_name_prefix와 타임스탬프와 결합되어 전체 객체 키를 형성합니다. 예: 'logs/detections'는 'logs/detections/workflow_output_2024_10_18_14_09_57_622297.csv'와 같은 키를 생성합니다..

    • 파일 이름 접두사 (string): S3 객체 이름을 생성하는 데 사용되는 접두사입니다. 타임스탬프(형식: YYYY_MM_DD_HH_MM_SS_microseconds)와 파일 확장자와 결합되어 'workflow_output_2024_10_18_14_09_57_622297.csv'와 같은 고유한 키를 만듭니다..

    • max_entries_per_file (string): append_log 모드에서 S3에 업로드하고 새 객체를 시작하기 전까지의 최대 버퍼 항목 수입니다. 이 한도에 도달하면 누적된 버퍼가 완전한 S3 객체로 업로드되고 새 버퍼가 새로운 키로 시작됩니다. output_mode가 'append_log'일 때만 적용됩니다. 최소 1이어야 합니다..

    • aws_access_key_id (Union[secret, string]): 인증용 AWS 액세스 키 ID입니다. 제공되지 않으면 boto3의 기본 자격 증명 체인(환경 변수, ~/.aws/credentials 또는 IAM 역할)이 사용됩니다. 권장: 하드코딩하지 말고 Environment Secrets Store 블록에 연결하세요..

    • aws_secret_access_key (Union[secret, string]): 인증용 AWS 비밀 액세스 키입니다. 제공되지 않으면 boto3의 기본 자격 증명 체인이 사용됩니다. 권장: 하드코딩하지 말고 Environment Secrets Store 블록에 연결하세요..

    • aws_region (string): 버킷이 위치한 AWS 리전입니다(예: 'us-east-1'). 제공되지 않으면 boto3의 기본 리전(AWS_DEFAULT_REGION 환경 변수 또는 ~/.aws/config)이 사용됩니다..

  • 출력

    • error_status (boolean): 불리언 플래그.

    • message (string): 문자열 값.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?