기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Firehose
Firehose 구성 요소 (aws.greengrass.KinesisFirehose
) 는 Amazon Data Firehose 전송 스트림을 통해 Amazon S3, Amazon Redshift 및 Amazon 서비스와 같은 대상에 데이터를 게시합니다. OpenSearch 자세한 내용은 Amazon Data Firehose란 무엇입니까? 를 참조하십시오. Amazon Data Firehose 개발자 가이드에서 확인할 수 있습니다.
이 구성 요소를 사용하여 Kinesis 전송 스트림에 게시하려면 이 구성 요소가 구독하는 주제에 메시지를 게시하십시오. 기본적으로 이 구성 요소는 kinesisfirehose/message
및 kinesisfirehose/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:PutRecord
및firehose: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) 에 대한 다음 구성 업데이트를 병합해야 합니다. 이 구성은 이 구성 요소가 응답을 게시하는 주제를 지정합니다.
자세한 내용은 배포 만들기 단원을 참조하십시오.
-
Firehose 구성 요소는 a에서 실행되도록 지원됩니다. VPC 이 구성 요소를 VPC a에 배포하려면 다음이 필요합니다.
-
Firehose 구성 요소에는 VPC 엔드포인트가
firehose.region.amazonaws.com
인 연결이 있어야 합니다.com.amazonaws.region.kinesis-firehose
-
엔드포인트 및 포트
이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에도 다음 엔드포인트 및 포트에 대한 아웃바운드 요청을 수행할 수 있어야 합니다. 자세한 내용은 프록시 또는 방화벽을 통한 장치 트래픽 허용 단원을 참조하십시오.
엔드포인트 | 포트 | 필수 | 설명 |
---|---|---|---|
|
443 | 예 |
Firehose에 데이터를 업로드합니다. |
의존성
구성 요소를 배포하면 호환되는 버전의 종속 AWS IoT Greengrass 항목도 배포됩니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 해당 종속성에 대한 요구 사항을 모두 충족해야 합니다. 이 섹션에는 이 구성 요소의 릴리스된 버전에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 시맨틱 버전 제약 조건이 나열되어 있습니다. 콘솔에서 구성 요소의 각 버전에 대한 종속성을 볼 수도 있습니다.AWS IoT Greengrass
구성 요소 종속성에 대한 자세한 내용은 구성 요소 레시피 참조를 참조하십시오.
구성
이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음과 같은 구성 매개 변수를 제공합니다.
참고
이 구성 요소의 기본 구성에는 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" }
입력 데이터
이 구성 요소는 다음 주제의 스트림 콘텐츠를 수락하고 대상 전송 스트림으로 콘텐츠를 전송합니다. 구성 요소는 두 가지 유형의 입력 데이터를 받아들입니다.
-
JSON
kinesisfirehose/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" } ] }
참고
구성 요소가 연결 오류와 같은 재시도할 수 있는 오류를 감지하면 다음 배치에서 게시를 다시 시도합니다.
로컬 로그 파일
이 구성 요소는 다음 로그 파일을 사용합니다.
/logs/aws.greengrass.KinesisFirehose.log
/greengrass/v2
이 구성 요소의 로그를 보려면
-
코어 기기에서 다음 명령을 실행하여 이 구성 요소의 로그 파일을 실시간으로 확인합니다. AWS IoT Greengrass 루트 폴더
경로로 바꾸십시오./greengrass/v2
sudo tail -f
/logs/aws.greengrass.KinesisFirehose.log/greengrass/v2
라이선스
이 구성 요소에는 다음과 같은 타사 소프트웨어/라이선스가 포함됩니다.
-
AWS SDK for Python (Boto3)
/Apache 라이선스 2.0 -
botocore
/Apache 라이선스 2.0 -
데이터/유틸리티/ 라이선스
PSF -
문서
/BSD라이센스, GNU 일반 공중 사용 허가서 (GPL), Python 소프트웨어 재단 면허, 공개 도메인 -
네임스패스/라이선스
MIT -
s3transfer
/Apache 라이선스 2.0 -
urllib3/라이선스
MIT
이 구성 요소는 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 |
초기 버전 |
다음 사항도 참조하세요.
-
Amazon 데이터 파이어호스란 무엇입니까? Amazon Data Firehose 개발자 가이드에서