Firehose - AWS IoT Greengrass

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Firehose

Firehose 구성 요소 (aws.greengrass.KinesisFirehose) 는 Amazon Data Firehose 전송 스트림을 통해 Amazon S3, Amazon Redshift 및 Amazon 서비스와 같은 대상에 데이터를 게시합니다. OpenSearch 자세한 내용은 Amazon Data Firehose란 무엇입니까? 를 참조하십시오. Amazon Data Firehose 개발자 가이드에서 확인할 수 있습니다.

이 구성 요소를 사용하여 Kinesis 전송 스트림에 게시하려면 이 구성 요소가 구독하는 주제에 메시지를 게시하십시오. 기본적으로 이 구성 요소는 kinesisfirehose/messagekinesisfirehose/message/binary/# 로컬 게시/구독 주제를 구독합니다. 이 구성 요소를 배포할 때 주제를 비롯한 다른 AWS IoT Core MQTT 주제를 지정할 수 있습니다.

참고

이 구성 요소는 V1의 Firehose 커넥터와 유사한 기능을 제공합니다. AWS IoT Greengrass 자세한 내용은 AWS IoT Greengrass V1 개발자 안내서의 Firehose 커넥터를 참조하십시오.

버전

이 구성 요소의 버전은 다음과 같습니다.

  • 2.1.x

  • 2.0.x

유형

구성 요소는 Lambda 구성 요소 () 입니다. aws.greengrass.lambda Greengrass 핵은 Lambda 런처 구성 요소를 사용하여 이 구성 요소의 Lambda 함수를 실행합니다.

자세한 내용은 구성 요소 유형 단원을 참조하십시오.

운영 체제

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

요구 사항

이 구성 요소의 요구 사항은 다음과 같습니다.

  • 코어 디바이스는 Lambda 함수를 실행하기 위한 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 해당 디바이스가 해당 요구 사항을 충족해야 합니다. 자세한 내용은 Lambda 함수 요구 사항 단원을 참조하십시오.

  • Python 버전 3.7이 코어 장치에 설치되고 PATH 환경 변수에 추가되었습니다.

  • Greengrass 장치 역할은 다음 예제 IAM 정책에 나와 있는 것처럼 firehose:PutRecordfirehose:PutRecordBatch 작업을 허용해야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Effect": "Allow", "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/stream-name" ] } ] }

    이 구성 요소의 입력 메시지 페이로드에서 기본 전송 스트림을 동적으로 재정의할 수 있습니다. 애플리케이션에서 이 기능을 사용하는 경우 IAM 정책에 모든 대상 스트림을 리소스로 포함해야 합니다. 리소스에 대한 세부적 또는 조건부 액세스 권한을 부여할 수 있습니다(예: 와일드카드 * 이름 지정 스키마를 사용해).

  • 이 구성 요소로부터 출력 데이터를 받으려면 이 구성 요소를 배포할 때 기존 구독 라우터 구성 요소 (aws.greengrass.LegacySubscriptionRouter) 에 대한 다음 구성 업데이트를 병합해야 합니다. 이 구성은 이 구성 요소가 응답을 게시하는 주제를 지정합니다.

    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-kinesisfirehose": { "id": "aws-greengrass-kinesisfirehose", "source": "component:aws.greengrass.KinesisFirehose", "subject": "kinesisfirehose/message/status", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-kinesisfirehose": { "id": "aws-greengrass-kinesisfirehose", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-kinesisfirehose:version", "subject": "kinesisfirehose/message/status", "target": "cloud" } } }
    • Replace region 사용하는 AWS 리전 것과 함께 사용하세요.

    • Replace version 이 구성 요소가 실행하는 Lambda 함수 버전과 함께 Lambda 함수 버전을 찾으려면 배포하려는 이 구성 요소 버전의 레시피를 확인해야 합니다. AWS IoT Greengrass 콘솔에서 이 구성 요소의 세부 정보 페이지를 열고 Lambda 함수 키-값 쌍을 찾으십시오. 이 키-값 쌍에는 Lambda 함수의 이름과 버전이 들어 있습니다.

    중요

    이 구성 요소를 배포할 때마다 레거시 구독 라우터에서 Lambda 함수 버전을 업데이트해야 합니다. 이렇게 하면 배포하는 구성 요소 버전에 올바른 Lambda 함수 버전을 사용할 수 있습니다.

    자세한 내용은 배포 만들기 단원을 참조하십시오.

  • Firehose 구성 요소는 a에서 실행되도록 지원됩니다. VPC 이 구성 요소를 VPC a에 배포하려면 다음이 필요합니다.

    • Firehose 구성 요소에는 VPC 엔드포인트가 firehose.region.amazonaws.com 인 연결이 있어야 합니다. com.amazonaws.region.kinesis-firehose

엔드포인트 및 포트

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에도 다음 엔드포인트 및 포트에 대한 아웃바운드 요청을 수행할 수 있어야 합니다. 자세한 내용은 프록시 또는 방화벽을 통한 장치 트래픽 허용 단원을 참조하십시오.

엔드포인트 포트 필수 설명

firehose.region.amazonaws.com

443

Firehose에 데이터를 업로드합니다.

의존성

구성 요소를 배포하면 호환되는 버전의 종속 AWS IoT Greengrass 항목도 배포됩니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 해당 종속성에 대한 요구 사항을 모두 충족해야 합니다. 이 섹션에는 이 구성 요소의 릴리스된 버전에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 시맨틱 버전 제약 조건이 나열되어 있습니다. 콘솔에서 구성 요소의 각 버전에 대한 종속성을 볼 수도 있습니다.AWS IoT Greengrass 구성 요소 세부 정보 페이지에서 종속성 목록을 찾아보십시오.

2.1.8

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.14.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.7

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.13.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.6

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.12.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.5

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.11.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.4

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.10.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.3

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.9.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.2

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.8.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.1

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.7.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.8 - 2.1.0

다음 표에는 이 구성 요소의 버전 2.0.8 및 2.1.0에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.6.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.7

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.5.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.6

다음 표에는 이 구성 요소의 버전 2.0.6에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.4.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.5

다음 표에는 이 구성 요소의 버전 2.0.5에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.3.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.4

다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.0 <2.2.0 하드
람다 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.3

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
그린그래스 핵 >=2.0.3 <2.1.0 하드
람다 런처 >=1.0.0 하드
Lambda 런타임 >=1.0.0 소프트
토큰 교환 서비스 >=1.0.0 하드

구성 요소 종속성에 대한 자세한 내용은 구성 요소 레시피 참조를 참조하십시오.

구성

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음과 같은 구성 매개 변수를 제공합니다.

참고

이 구성 요소의 기본 구성에는 Lambda 함수 파라미터가 포함됩니다. 디바이스에서 이 구성 요소를 구성하려면 다음 파라미터만 편집하는 것이 좋습니다.

lambdaParams

이 구성 요소의 Lambda 함수에 대한 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.

EnvironmentVariables

Lambda 함수의 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.

DEFAULT_DELIVERY_STREAM_ARN

구성 요소가 데이터를 보내는 기본 Firehose 전송 스트림의 입니다. ARN 입력 메시지 페이로드의 delivery_stream_arn 속성으로 대상 스트림을 재정의할 수 있습니다.

참고

핵심 장치 역할은 모든 대상 전송 스트림에서 필요한 작업을 허용해야 합니다. 자세한 내용은 요구 사항 단원을 참조하십시오.

PUBLISH_INTERVAL

(선택 사항) 구성 요소가 일괄 처리된 데이터를 Firehose에 게시할 때까지 대기할 최대 시간 (초) 입니다. 메트릭을 수신할 때 (즉, 일괄 처리 없이) 게시하도록 구성 요소를 구성하려면 다음을 지정하세요. 0

이 값은 최대 900초일 수 있습니다.

기본값: 10초

DELIVERY_STREAM_QUEUE_SIZE

(선택 사항) 구성 요소가 동일한 전송 스트림에 대한 새 레코드를 거부하기 전에 메모리에 보존할 최대 레코드 수입니다.

이 값은 최소 2,000개 레코드여야 합니다.

기본값: 5,000개 레코드

containerMode

(선택 사항) 이 컴포넌트의 컨테이너화 모드. 다음 옵션 중 하나를 선택합니다.

  • NoContainer— 구성 요소는 격리된 런타임 환경에서 실행되지 않습니다.

  • GreengrassContainer— 구성 요소는 AWS IoT Greengrass 컨테이너 내부의 격리된 런타임 환경에서 실행됩니다.

기본값: GreengrassContainer

containerParams

(선택 사항) 이 구성 요소의 컨테이너 매개 변수를 포함하는 개체입니다. 를 GreengrassContainer 지정하면 구성 요소에서 이러한 매개 변수를 사용합니다containerMode.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

memorySize

(선택 사항) 구성 요소에 할당할 메모리 양 (KB) 입니다.

기본값은 64MB (65,535KB) 입니다.

pubsubTopics

(선택 사항) 구성 요소가 메시지 수신을 위해 구독하는 주제를 포함하는 객체입니다. 각 주제를 지정하고 구성 요소가 해당 주제를 구독할지 AWS IoT Core 아니면 로컬 게시/구독 MQTT 주제를 구독할지를 지정할 수 있습니다.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

0— 문자열 형식의 배열 인덱스입니다.

다음 정보가 포함된 객체입니다.

type

(선택 사항) 이 구성 요소가 메시지를 구독하는 데 사용하는 게시/구독 메시지의 유형입니다. 다음 옵션 중 하나를 선택합니다.

  • PUB_SUB – 로컬 게시/구독 메시지를 구독합니다. 이 옵션을 선택하면 주제에 와일드카드가 포함될 MQTT 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 을 참조하십시오로컬 메시지 게시/구독.

  • IOT_CORE— AWS IoT Core MQTT 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드가 포함될 수 있습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 을 참조하십시오메시지 게시/구독 AWS IoT Core MQTT.

기본값: PUB_SUB

topic

(선택 사항) 구성 요소가 메시지 수신을 위해 구독하는 주제입니다. 를 지정하는 IotCore type 경우 이 항목에서 MQTT 와일드카드 (+#) 를 사용할 수 있습니다.

예: 구성 병합 업데이트 (컨테이너 모드)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "GreengrassContainer" }
예: 구성 병합 업데이트 (컨테이너 모드 없음)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "NoContainer" }

입력 데이터

이 구성 요소는 다음 주제의 스트림 콘텐츠를 수락하고 대상 전송 스트림으로 콘텐츠를 전송합니다. 구성 요소는 두 가지 유형의 입력 데이터를 받아들입니다.

  • JSONkinesisfirehose/message주제에 관한 데이터.

  • kinesisfirehose/message/binary/# 주제에 대한 이진 데이터.

JSON데이터의 기본 주제 (로컬 게시/구독): kinesisfirehose/message

메시지는 다음 속성을 허용합니다. 입력 메시지는 JSON 형식이어야 합니다.

request

기본 스트림과 다른 경우 전송 스트림과 대상 전송 스트림으로 보낸 데이터입니다.

다음 정보가 object 포함된 유형:

data

전송 스트림으로 보낸 데이터입니다.

유형: string

delivery_stream_arn

(선택 사항) 대상 Firehose 전송 ARN 스트림의 스트림입니다. 기본 전송 스트림을 재정의하려면 이 속성을 지정하세요.

유형: string

id

요청에 대한 임의의 ID입니다. 이 속성을 사용하여 입력 요청을 출력 응답에 매핑할 수 있습니다. 이 속성을 지정하면 구성 요소가 응답 개체의 id 속성을 이 값으로 설정합니다.

유형: string

예 입력 예
{ "request": { "delivery_stream_arn": "arn:aws:firehose:region:account-id:deliverystream/stream2-name", "data": "Data to send to the delivery stream." }, "id": "request123" }
바이너리 데이터의 기본 주제 (로컬 게시/구독): kinesisfirehose/message/binary/#

이 주제는 이진 데이터가 포함된 메시지를 보내는데 사용합니다. 구성 요소는 바이너리 데이터를 파싱하지 않습니다. 구성 요소는 데이터를 있는 그대로 스트리밍합니다.

입력 요청을 출력 응답에 매핑하려면 메시지 주제의 # 와일드카드를 임의의 요청 ID로 바꿉니다. 예를 들어, 메시지를 kinesisfirehose/message/binary/request123에 게시한 경우 응답 객체의 id 속성이 request123으로 설정됩니다.

요청을 응답에 매핑하지 않으려는 경우에는 메시지를 kinesisfirehose/message/binary/에 게시할 수 있습니다. 뒤에 슬래시 () / 를 포함해야 합니다.

출력 데이터

이 구성 요소는 기본적으로 응답을 다음 MQTT 주제에 대한 출력 데이터로 게시합니다. 이 주제를 레거시 구독 라우터 구성 요소의 subject 구성에서 로 지정해야 합니다. 사용자 지정 구성 요소에서 이 항목의 메시지를 구독하는 방법에 대한 자세한 내용은 을 참조하십시오메시지 게시/구독 AWS IoT Core MQTT.

기본 주제 (AWS IoT Core MQTT): kinesisfirehose/message/status

예 출력 예시

응답에는 배치로 전송된 각 데이터 레코드의 상태가 포함됩니다.

{ "response": [ { "ErrorCode": "error", "ErrorMessage": "test error", "id": "request123", "status": "fail" }, { "firehose_record_id": "xyz2", "id": "request456", "status": "success" }, { "firehose_record_id": "xyz3", "id": "request890", "status": "success" } ] }
참고

구성 요소가 연결 오류와 같은 재시도할 수 있는 오류를 감지하면 다음 배치에서 게시를 다시 시도합니다.

로컬 로그 파일

이 구성 요소는 다음 로그 파일을 사용합니다.

/greengrass/v2/logs/aws.greengrass.KinesisFirehose.log
이 구성 요소의 로그를 보려면
  • 코어 기기에서 다음 명령을 실행하여 이 구성 요소의 로그 파일을 실시간으로 확인합니다. AWS IoT Greengrass 루트 폴더 /greengrass/v2 경로로 바꾸십시오.

    sudo tail -f /greengrass/v2/logs/aws.greengrass.KinesisFirehose.log

라이선스

이 구성 요소에는 다음과 같은 타사 소프트웨어/라이선스가 포함됩니다.

이 구성 요소는 Greengrass Core 소프트웨어 라이센스 계약에 따라 릴리스됩니다.

Changelog

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.

버전

변경

2.1.8

그린그래스 뉴클리어스 버전 2.13.0 릴리스를 위해 버전이 업데이트되었습니다.

2.1.7

그린그래스 뉴클리어스 버전 2.12.0 릴리스를 위해 버전이 업데이트되었습니다.

2.1.6

그린그래스 뉴클리어스 버전 2.11.0 릴리스를 위해 버전이 업데이트되었습니다.

2.1.5

그린그래스 뉴클리어스 버전 2.10.0 릴리스를 위해 버전이 업데이트되었습니다.

2.1.4

Greengrass 뉴클리어스 버전 2.9.0 릴리스를 위해 버전이 업데이트되었습니다.

2.1.3

Greengrass 뉴클리어스 버전 2.8.0 릴리스를 위해 버전이 업데이트되었습니다.

2.1.2

Greengrass 뉴클리어스 버전 2.7.0 릴리스를 위해 버전이 업데이트되었습니다.

2.1.1

Greengrass 뉴클리어스 버전 2.6.0 릴리스를 위해 버전이 업데이트되었습니다.

2.1.0

새로운 기능

2.0.8

Greengrass 뉴클리어스 버전 2.5.0 릴리스를 위해 버전이 업데이트되었습니다.

2.0.7

Greengrass 뉴클리어스 버전 2.4.0 릴리스를 위해 버전이 업데이트되었습니다.

2.0.6

그린그래스 뉴클리어스 버전 2.3.0 릴리스를 위해 버전이 업데이트되었습니다.

2.0.5

Greengrass 뉴클리어스 버전 2.2.0 릴리스를 위해 버전이 업데이트되었습니다.

2.0.4

그린그래스 뉴클리어스 버전 2.1.0 릴리스에 대한 버전이 업데이트되었습니다.

2.0.3

초기 버전

다음 사항도 참조하세요.