기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SNS
Amazon SNS 구성 요소 (aws.greengrass.SNS
) 는 메시지를 Amazon Simple Notification Service (Amazon SNS) 주제에 게시합니다. 이 구성 요소를 사용하여 Greengrass 코어 디바이스에서 웹 서버, 이메일 주소 및 기타 메시지 구독자에게 이벤트를 보낼 수 있습니다. 자세한 정보는 Amazon Simple Notification 개발자 안내서의 What is Amazon SNS?를 참조하십시오.
이 구성 요소를 사용하여 Amazon SNS 주제에 게시하려면 이 구성 요소가 구독하는 주제에 메시지를 게시하십시오. 기본적으로 이 구성 요소는 sns/message
로컬 게시/구독 주제를 구독합니다. 이 구성 요소를 배포할 때 AWS IoT Core MQTT 주제를 비롯한 다른 주제를 지정할 수 있습니다.
사용자 지정 구성 요소에서 다른 소스의 메시지를 이 구성 요소에 게시하기 전에 처리하도록 필터링 또는 형식 지정 로직을 구현하고 싶을 수 있습니다. 이렇게 하면 메시지 처리 로직을 단일 구성 요소에 중앙 집중화할 수 있습니다.
참고
이 구성 요소는 AWS IoT Greengrass V1의 Amazon SNS 커넥터와 유사한 기능을 제공합니다. 자세한 내용은 AWS IoT Greengrass V1 개발자 안내서의 Amazon SNS 커넥터를 참조하십시오.
버전
이 구성 요소의 버전은 다음과 같습니다.
-
2.1.x
-
2.0.x
유형
이 구성 요소는 Lambda 구성 요소 () 입니다. aws.greengrass.lambda
Greengrass 핵은 Lambda 런처 구성 요소를 사용하여 이 구성 요소의 Lambda 함수를 실행합니다.
자세한 설명은 구성 요소 유형 섹션을 참조하세요.
운영 체제
이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.
요구 사항
이 구성 요소의 요구 사항은 다음과 같습니다.
-
코어 디바이스는 Lambda 함수를 실행하기 위한 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 해당 디바이스가 해당 요구 사항을 충족해야 합니다. 자세한 설명은 Lambda 함수 요구 사항 섹션을 참조하세요.
-
코어 디바이스에 설치되고 PATH 환경 변수에 추가된 Python
버전 3.7입니다. -
Amazon SNS 주제. 자세한 설명은 Amazon Simple Notification Service 개발자 안내서에서 Amazon SNS 주제 생성을 참조하세요.
-
Greengrass 장치 역할은 다음 예시 IAM 정책에 나와 있는 것처럼
sns:Publish
작업을 허용해야 합니다.{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": [ "arn:aws:sns:
region
:account-id
:topic-name
" ] } ] }이 구성 요소의 입력 메시지 페이로드에서 기본 주제를 동적으로 재정의할 수 있습니다. 애플리케이션에서 이 기능을 사용하는 경우 IAM 정책은 모든 대상 주제를 리소스로 포함해야 합니다. 리소스에 대한 세부적 또는 조건부 액세스 권한을 부여할 수 있습니다(예: 와일드카드
*
이름 지정 스키마를 사용해). -
이 구성 요소로부터 출력 데이터를 받으려면 이 구성 요소를 배포할 때 기존 구독 라우터 구성 요소 (aws.greengrass.LegacySubscriptionRouter) 에 대한 다음 구성 업데이트를 병합해야 합니다. 이 구성은 이 구성 요소가 응답을 게시하는 주제를 지정합니다.
자세한 설명은 배포 만들기 섹션을 참조하세요.
-
Amazon SNS 구성 요소는 VPC에서 실행되도록 지원됩니다. VPC에 이 구성 요소를 배포하려면 다음이 필요합니다.
-
Amazon SNS 구성 요소에는 VPC 엔드포인트가 다음과 같은 연결이 있어야 합니다.
sns.region.amazonaws.com
com.amazonaws.us-east-1.sns
-
엔드포인트 및 포트
이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에도 다음 엔드포인트 및 포트에 대한 아웃바운드 요청을 수행할 수 있어야 합니다. 자세한 설명은 프록시 또는 방화벽을 통한 장치 트래픽 허용 섹션을 참조하세요.
엔드포인트 | 포트 | 필수 | 설명 |
---|---|---|---|
|
443 | 예 |
Amazon SNS에 메시지 게시 |
의존성
구성 요소를 배포할 때 는 호환되는 버전의 종속 AWS IoT Greengrass 항목도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 해당 종속성에 대한 요구 사항을 모두 충족해야 합니다. 이 섹션에는 이 구성 요소의 릴리스된 버전에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 시맨틱 버전 제약 조건이 나열되어 있습니다. 콘솔에서 구성 요소의 각 버전에 대한 종속성을 볼 수도 있습니다. AWS IoT Greengrass
구성 요소 종속성에 대한 자세한 내용은 구성 요소 레시피 참조를 참조하십시오.
구성
이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음과 같은 구성 매개 변수를 제공합니다.
참고
이 구성 요소의 기본 구성에는 Lambda 함수 파라미터가 포함됩니다. 디바이스에서 이 구성 요소를 구성하려면 다음 파라미터만 편집하는 것이 좋습니다.
lambdaParams
-
이 구성 요소의 Lambda 함수에 대한 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
EnvironmentVariables
-
Lambda 함수의 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
DEFAULT_SNS_ARN
-
이 구성 요소가 메시지를 게시하는 기본 Amazon SNS 주제의 ARN입니다. 입력 메시지 페이로드의
sns_topic_arn
속성으로 대상 주제를 재정의할 수 있습니다.
containerMode
-
(선택 사항) 이 구성 요소의 컨테이너화 모드. 다음 옵션 중 하나를 선택합니다.
-
NoContainer
— 구성 요소는 격리된 런타임 환경에서 실행되지 않습니다. -
GreengrassContainer
— 구성 요소는 AWS IoT Greengrass 컨테이너 내부의 격리된 런타임 환경에서 실행됩니다.
기본값:
GreengrassContainer
-
containerParams
-
(선택 사항) 이 구성 요소의 컨테이너 매개 변수를 포함하는 개체입니다. 를
GreengrassContainer
지정하면 구성 요소에서 이러한 매개 변수를 사용합니다containerMode
.이 객체에는 다음 정보가 포함되어 있어야 합니다.
memorySize
-
(선택 사항) 구성 요소에 할당할 메모리 양 (KB) 입니다.
기본값은 512MB (525,312KB) 입니다.
pubsubTopics
-
(선택 사항) 구성 요소가 메시지 수신을 위해 구독하는 주제를 포함하는 객체입니다. 각 주제를 지정하고 구성 요소가 MQTT 주제를 구독하는지 AWS IoT Core 아니면 로컬 게시/구독 주제의 MQTT 주제를 구독할지를 지정할 수 있습니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
0
— 문자열 형식의 배열 인덱스입니다.-
다음 정보가 포함된 객체입니다.
type
-
(선택 사항) 이 구성 요소가 메시지를 구독하는 데 사용하는 게시/구독 메시지의 유형입니다. 다음 옵션 중 하나를 선택합니다.
-
PUB_SUB
– 로컬 게시/구독 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드가 포함될 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 을 참조하십시오. 로컬 메시지 게시/구독 -
IOT_CORE
— AWS IoT Core MQTT 메시지를 구독하십시오. 이 옵션을 선택하면 주제에 MQTT 와일드카드가 포함될 수 있습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 을 참조하십시오. MQTT 메시지 게시/구독 AWS IoT Core
기본값:
PUB_SUB
-
topic
-
(선택 사항) 구성 요소가 메시지 수신을 위해 구독하는 주제입니다. 를 지정하는 경우 이
IotCore
type
항목에서 MQTT 와일드카드 (+
및#
) 를 사용할 수 있습니다.
예: 구성 병합 업데이트 (컨테이너 모드)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
예: 구성 병합 업데이트 (컨테이너 모드 없음)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "NoContainer" }
입력 데이터
이 구성 요소는 다음 주제에 대한 메시지를 수락하고 메시지를 대상 Amazon SNS 주제에 있는 그대로 게시합니다. 기본적으로 이 구성 요소는 로컬 게시/구독 메시지를 구독합니다. 사용자 정의 구성 요소에서 이 구성 요소에 메시지를 게시하는 방법에 대한 자세한 내용은 을 참조하십시오. 로컬 메시지 게시/구독
기본 주제 (로컬 게시/구독): sns/message
메시지는 다음 속성을 수락합니다. 입력 메시지는 JSON 형식이어야 합니다.
request
-
Amazon SNS 주제로 전송할 메시지에 대한 정보입니다.
다음 정보가
object
포함된 유형:message
-
메시지의 내용 (문자열).
JSON 객체를 보내려면 객체를 문자열로 직렬화하고
json
속성에message_structure
지정하십시오.유형:
string
subject
-
(선택 사항) 메시지 제목.
유형:
string
제목은 ASCII 텍스트이며 최대 100자까지 입력할 수 있습니다. 문자, 숫자 또는 문장 부호로 시작해야 합니다. 줄 바꿈이나 제어 문자는 포함할 수 없습니다.
sns_topic_arn
-
(선택 사항) 이 구성 요소가 메시지를 게시하는 Amazon SNS 주제의 ARN입니다. 기본 Amazon SNS 주제를 재정의하려면 이 속성을 지정하십시오.
유형:
string
message_structure
-
(선택 사항) 메시지 구조. 속성에서 문자열로 직렬화하는 JSON 메시지를
json
보내도록 지정합니다.content
유형:
string
유효값:
json
id
-
요청에 대한 임의의 ID입니다. 이 속성을 사용하여 입력 요청을 출력 응답에 매핑할 수 있습니다. 이 속성을 지정하면 구성 요소가 응답 개체의
id
속성을 이 값으로 설정합니다.유형:
string
참고
메시지 크기는 최대 256KB일 수 있습니다.
예 입력 예: 문자열 메시지
{ "request": { "subject": "Message subject", "message": "Message data", "sns_topic_arn": "arn:aws:sns:
region
:account-id
:topic2-name" }, "id": "request123" }
예 입력 예: JSON 메시지
{ "request": { "subject": "Message subject", "message": "{ \"default\": \"Message data\" }", "message_structure": "json" }, "id": "request123" }
출력 데이터
이 구성 요소는 기본적으로 응답을 다음 MQTT 주제에 출력 데이터로 게시합니다. 이 주제를 레거시 구독 라우터 구성 요소의 subject
구성에서 로 지정해야 합니다. 사용자 지정 구성 요소에서 이 항목의 메시지를 구독하는 방법에 대한 자세한 내용은 을 참조하십시오MQTT 메시지 게시/구독 AWS IoT Core.
기본 주제 (AWS IoT Core MQTT): sns/message/status
예 출력 예: 성공
{ "response": { "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a", "status": "success" }, "id": "request123" }
예 출력 예: 실패
{ "response" : { "error": "InvalidInputException", "error_message": "SNS Topic Arn is invalid", "status": "fail" }, "id": "request123" }
로컬 로그 파일
이 구성 요소는 다음 로그 파일을 사용합니다.
/logs/aws.greengrass.SNS.log
/greengrass/v2
이 구성 요소의 로그를 보려면
-
코어 디바이스에서 다음 명령을 실행하여 이 구성 요소의 로그 파일을 실시간으로 확인합니다. AWS IoT Greengrass 루트 폴더
경로로 바꾸십시오./greengrass/v2
sudo tail -f
/logs/aws.greengrass.SNS.log/greengrass/v2
라이선스
이 구성 요소에는 다음과 같은 타사 소프트웨어/라이선스가 포함됩니다.
-
AWS SDK for Python (Boto3)
/Apache 라이선스 2.0 -
botocore
/Apache 라이선스 2.0 -
dateutil
/PSF 라이선스 -
docutils
/BSD 라이선스, GNU 일반 공개 라이선스(GPL), Python Software Foundation 라이선스, 퍼블릭 도메인 -
jmespath
/MIT 라이선스 -
s3transfer
/Apache 라이선스 2.0 -
urllib3
/MIT 라이선스
이 구성 요소는 Greengrass Core 소프트웨어 라이센스
Changelog
다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.
버전 |
변경 |
---|---|
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 |
그린그래스 뉴클리어스 버전 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 |
초기 버전 |