Amazon SNS - AWS IoT Greengrass

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

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)에 대한 다음 구성 업데이트를 병합해야 합니다. 이 구성에서는 이 구성 요소가 응답을 게시하는 주제를 지정합니다.

    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-sns": { "id": "aws-greengrass-sns", "source": "component:aws.greengrass.SNS", "subject": "sns/message/status", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-sns": { "id": "aws-greengrass-sns", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-sns:version", "subject": "sns/message/status", "target": "cloud" } } }
    • 를 사용하는 AWS 리전 region로 바꿉니다.

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

    중요

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

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

  • Amazon SNS 구성 요소는에서 실행할 수 있습니다VPC. 에이 구성 요소를 배포하려면 VPC다음이 필요합니다.

    • Amazon SNS 구성 요소에는 VPC 엔드포인트가 sns.region.amazonaws.com인 연결이 있어야 합니다com.amazonaws.us-east-1.sns.

엔드포인트 및 포트

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

엔드포인트 포트 필수 설명

sns.region.amazonaws.com

443

Amazon에 메시지를 게시합니다SNS.

종속성

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

2.1.9

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.15.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.8

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.14.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.7

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.13.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.6

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.12.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.5

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.11.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.4

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.10.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.3

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.9.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.2

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.8.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.1.1

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.7.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.8 - 2.1.0

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.6.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.7

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.5.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.6

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.4.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.5

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.3.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.4

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.2.0 하드
Lambda 런처 ^2.0.0 하드
Lambda 런타임 ^2.0.0 소프트
토큰 교환 서비스 ^2.0.0 하드
2.0.3

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

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.3 <2.1.0 하드
Lambda 런처 >=1.0.0 하드
Lambda 런타임 >=1.0.0 소프트
토큰 교환 서비스 >=1.0.0 하드

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

구성

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

참고

이 구성 요소의 기본 구성에는 Lambda 함수 파라미터가 포함되어 있습니다. 디바이스에서 다음 파라미터만 사용하여 이 구성 요소를 구성하는 것이 좋습니다.

lambdaParams

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

EnvironmentVariables

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

DEFAULT_SNS_ARN

이 구성 요소가 메시지를 게시하는 기본 Amazon SNS 주제ARN의 입니다. 입력 메시지 페이로드의 sns_topic_arn 속성으로 대상 주제를 재정의할 수 있습니다.

containerMode

(선택 사항) 이 구성 요소에 대한 컨테이너화 모드. 다음 옵션 중 하나를 선택합니다.

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

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

기본값: GreengrassContainer

containerParams

(선택 사항) 이 구성 요소에 대한 컨테이너 파라미터를 포함하는 객체입니다. containerModeGreengrassContainer를 지정하면 구성 요소에서 이러한 파라미터를 사용합니다.

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

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" }

로컬 로그 파일

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

/greengrass/v2/logs/aws.greengrass.SNS.log
이 구성 요소의 로그를 보려면
  • 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. 를 AWS IoT Greengrass 루트 폴더의 경로/greengrass/v2로 바꿉니다.

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

라이선스

이 구성 요소에는 다음 타사 소프트웨어/라이선스가 포함되어 있습니다.

이 구성 요소는 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

초기 버전입니다.