기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SNS
Amazon SNS 구성 요소(aws.greengrass.SNS
)는 Amazon Simple Notification Service(AmazonSNS) 주제에 메시지를 게시합니다. 이 구성 요소를 사용하여 Greengrass 코어 디바이스에서 웹 서버, 이메일 주소, 기타 메시지 구독자에게 이벤트를 전송할 수 있습니다. 자세한 내용은 Amazon Simple Notification Service 개발자 안내서의 Amazon이란 무엇입니까SNS?를 참조하세요.
이 구성 요소를 사용하여 Amazon SNS 주제에 게시하려면이 구성 요소가 구독하는 주제에 메시지를 게시합니다. 기본적으로 이 구성 요소에서는 sns/message
로컬 게시/구독 주제를 구독합니다. 이 구성 요소를 배포할 때 주제를 포함한 AWS IoT Core MQTT 다른 주제를 지정할 수 있습니다.
사용자 지정 구성 요소에서 필터링 또는 형식 지정 논리를 구현하여 다른 소스의 메시지를 이 구성 요소에 게시하기 전에 처리하고 싶을 수 있습니다. 이를 통해 메시지 처리 논리를 단일 구성 요소로 중앙 집중화할 수 있습니다.
참고
이 구성 요소는 Amazon SNS 커넥터 in AWS IoT Greengrass V1과 유사한 기능을 제공합니다. 자세한 내용은 AWS IoT Greengrass V1 개발자 안내서의 Amazon SNS 커넥터를 참조하세요.
버전
이 구성 요소에는 다음과 같은 버전이 있습니다.
-
2.1.x
-
2.0.x
유형
이 구성 요소는 Lambda 구성 요소(aws.greengrass.lambda
)입니다. Greengrass nucleus에서는 Lambda 런처 구성 요소를 사용하여 이 구성 요소의 Lambda 함수를 실행합니다.
자세한 내용은 구성 요소 유형 단원을 참조하십시오.
운영 체제
이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.
요구 사항
이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
-
Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 Lambda 함수 요구 사항 단원을 참조하십시오.
-
Python
버전 3.7이 코어 디바이스에 설치되어 PATH 환경 변수에 추가되었습니다. -
Amazon SNS 주제. 자세한 내용은 Amazon Simple Notification Service 개발자 안내서의 Amazon SNS 주제 생성을 참조하세요.
-
다음 예제 IAM 정책에 표시된 대로 Greengrass 디바이스 역할은
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
-
(선택 사항) 이 구성 요소에 대한 컨테이너 파라미터를 포함하는 객체입니다.
containerMode
에GreengrassContainer
를 지정하면 구성 요소에서 이러한 파라미터를 사용합니다.이 객체에는 다음 정보가 포함되어 있어야 합니다.
memorySize
-
(선택 사항) 구성 요소에 할당되는 메모리 양(킬로바이트)입니다.
기본값은 512MB(525,312KB)입니다.
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
에를 지정하는 경우이 주제에서 MQTT 와일드카드(+
및#
)를 사용할type
수 있습니다.
예: 구성 병합 업데이트(컨테이너 모드)
{ "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 객체를 보내려면 객체를 문자열로 직렬화하고
message_structure
속성json
에를 지정합니다.유형:
string
subject
-
(선택 사항) 메시지의 제목.
유형:
string
제목은 ASCII 텍스트일 수 있으며 최대 100자입니다. 문자, 숫자 또는 구두점으로 시작해야 합니다. 줄 바꿈이나 제어 문자를 포함할 수 없습니다.
sns_topic_arn
-
(선택 사항)이 구성 요소가 메시지를 게시하는 Amazon SNS 주제ARN의 입니다. 기본 Amazon SNS 주제를 재정의하려면이 속성을 지정합니다.
유형:
string
message_structure
-
(선택 사항) 메시지의 구조.
content
속성에서 문자열로 직렬화하는 JSON 메시지를 보내json
려면를 지정합니다.유형:
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
로 지정해야 합니다. 사용자 지정 구성 요소에서 이 주제에 대한 메시지를 구독하는 방법에 대한 자세한 내용은 메시지 게시/구독 AWS IoT Core MQTT 섹션을 참조하세요.
기본 주제(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 License, GNU 일반 퍼블릭 라이선스(GPL), Python Software Foundation License, 퍼블릭 도메인 -
jmespath
/MIT 라이선스 -
s3transfer
/Apache 라이선스 2.0 -
urllib3
/MIT 라이선스
이 구성 요소는 Greengrass 코어 소프트웨어 라이선스 계약
Changelog
다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.
버전 |
변경 사항 |
---|---|
2.1.9 |
Greengrass 핵 버전 2.14.0 릴리스에 대한 버전이 업데이트되었습니다. |
2.1.8 |
Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. |
2.1.7 |
Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. |
2.1.6 |
Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. |
2.1.5 |
Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. |
2.1.4 |
Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. |
2.1.3 |
Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. |
2.1.2 |
Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다. |
2.1.1 |
Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다. |
2.1.0 |
|
2.0.8 |
Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다. |
2.0.7 |
Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다. |
2.0.6 |
Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다. |
2.0.5 |
Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다. |
2.0.4 |
Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다. |
2.0.3 |
초기 버전입니다. |