

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

# Amazon SNS
<a name="sns-component"></a>

Amazon SNS 구성 요소(`aws.greengrass.SNS`)는 Amazon Simple Notification Service(Amazon SNS) 주제에 메시지를 게시합니다. 이 구성 요소를 사용하여 Greengrass 코어 디바이스에서 웹 서버, 이메일 주소, 기타 메시지 구독자에게 이벤트를 전송할 수 있습니다. 자세한 정보는 *Amazon Simple Notification 개발자 안내서*의 [What is Amazon SNS?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)를 참조하십시오.

이 구성 요소를 사용하여 Amazon SNS 주제에 게시하려면 이 구성 요소가 구독하는 주제에 메시지를 게시합니다. 기본적으로 이 구성 요소에서는 `sns/message` [로컬 게시/구독](ipc-publish-subscribe.md) 주제를 구독합니다. 이 구성 요소를 배포할 때 AWS IoT Core MQTT 주제를 포함한 다른 주제를 지정할 수 있습니다.

사용자 지정 구성 요소에서 필터링 또는 형식 지정 논리를 구현하여 다른 소스의 메시지를 이 구성 요소에 게시하기 전에 처리하고 싶을 수 있습니다. 이를 통해 메시지 처리 논리를 단일 구성 요소로 중앙 집중화할 수 있습니다.

**참고**  
이 구성 요소는 Amazon SNS 커넥터 in AWS IoT Greengrass V1과 유사한 기능을 제공합니다. 자세한 내용은 *AWS IoT Greengrass V1 개발자 안내서*의 [Amazon SNS 커넥터](https://docs.aws.amazon.com/greengrass/latest/developerguide/sns-connector.html)를 참조하세요.

**Topics**
+ [버전](#sns-component-versions)
+ [Type](#sns-component-type)
+ [운영 체제](#sns-component-os-support)
+ [요구 사항](#sns-component-requirements)
+ [종속성](#sns-component-dependencies)
+ [구성](#sns-component-configuration)
+ [입력 데이터](#sns-component-input-data)
+ [출력 데이터](#sns-component-output-data)
+ [로컬 로그 파일](#sns-component-log-file)
+ [라이선스](#sns-component-licenses)
+ [Changelog](#sns-component-changelog)

## 버전
<a name="sns-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x
+ 2.0.x

## Type
<a name="sns-component-type"></a>

<a name="public-component-type-lambda"></a>이 <a name="public-component-type-lambda-phrase"></a>구성 요소는 Lambda 구성 요소(`aws.greengrass.lambda`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)에서는 [Lambda 런처 구성 요소](lambda-launcher-component.md)를 사용하여 이 구성 요소의 Lambda 함수를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="sns-component-os-support"></a>

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

## 요구 사항
<a name="sns-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ <a name="core-device-lambda-function-requirements"></a>Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 단원을 참조하십시오.
+ <a name="public-component-python3-requirement"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+ Amazon SNS 주제. 자세한 설명은 *Amazon Simple Notification Service 개발자 안내서*에서 [Amazon SNS 주제 생성](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)을 참조하세요.
+ 다음 예제 IAM 정책에 표시된 대로 [Greengrass 디바이스 역할](device-service-role.md)에서는 `sns:Publish` 작업이 허용되어야 합니다.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "sns:Publish"
        ],
        "Effect": "Allow",
        "Resource": [
          "arn:aws:sns:us-east-1:123456789012:topic-name"
        ]
      }
    ]
  }
  ```

------

  이 구성 요소의 입력 메시지 페이로드에서 기본 주제를 동적으로 재정의할 수 있습니다. 애플리케이션에서 이 기능을 사용하는 경우 IAM 정책에 모든 대상 주제가 리소스로 포함되어야 합니다. 리소스에 대한 세부적 또는 조건부 액세스 권한을 부여할 수 있습니다(예: 와일드카드 `*` 이름 지정 스키마를 사용해).
+ <a name="connector-component-legacy-subscription-router-dependency"></a>이 구성 요소의 출력 데이터를 수신하려면 이 구성 요소를 배포할 때 [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)(`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"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + *region* AWS 리전 을 사용하는 로 바꿉니다.
  + *버전*을 이 구성 요소에서 실행되는 Lambda 함수의 버전으로 바꿉니다. Lambda 함수 버전을 찾으려면 배포하려는 이 구성 요소의 버전에 대한 레시피를 확인해야 합니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서 이 구성 요소의 세부 정보 페이지를 열고 **Lambda 함수** 키-값 페어를 찾습니다. 이 키-값 페어에는 Lambda 함수의 이름과 버전이 포함되어 있습니다.

**중요**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
이 구성 요소를 배포할 때마다 레거시 구독 라우터의 Lambda 함수 버전을 업데이트해야 합니다. 이를 통해 배포하는 구성 요소 버전에 맞는 올바른 Lambda 함수 버전을 사용할 수 있습니다.

------

  <a name="connector-component-create-deployments"></a>자세한 내용은 [배포 만들기](create-deployments.md) 단원을 참조하십시오.
+ Amazon SNS 구성 요소는 VPC에서 실행할 수 있습니다. 이 구성 요소를 VPC에 배포하려면 다음이 필요합니다.
  + Amazon SNS 구성 요소에는 VPC 엔드포인트가 `com.amazonaws.us-east-1.sns`인 `sns.region.amazonaws.com`에 대한 연결이 있어야 합니다.

### 엔드포인트 및 포트
<a name="sns-component-endpoints"></a>

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


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `sns.region.amazonaws.com`  | 443 | 예 |  Amazon SNS에 메시지 게시  | 

## 종속성
<a name="sns-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#sns-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.10 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.16.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.9 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.15.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.8 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.14.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.7 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.6 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.5 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.4 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.3 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.2 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.1 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.8 - 2.1.0 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.7 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.6 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.5 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.4 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.3 ]

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


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | >=1.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | >=1.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=1.0.0  | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="sns-component-configuration"></a>

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

**참고**  <a name="connector-component-lambda-parameters"></a>
이 구성 요소의 기본 구성에는 Lambda 함수 파라미터가 포함되어 있습니다. 디바이스에서 다음 파라미터만 사용하여 이 구성 요소를 구성하는 것이 좋습니다.

`lambdaParams`  
이 구성 요소의 Lambda 함수에 대한 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`EnvironmentVariables`  
Lambda 함수의 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`DEFAULT_SNS_ARN`  
이 구성 요소가 메시지를 게시하는 기본 Amazon SNS 주제의 ARN. 입력 메시지 페이로드의 `sns_topic_arn` 속성으로 대상 주제를 재정의할 수 있습니다.

`containerMode`  <a name="connector-component-container-mode-parameter"></a>
(선택 사항) 이 구성 요소에 대한 컨테이너화 모드. 다음 옵션 중 하나를 선택합니다.  <a name="lambda-function-component-container-mode-parameter"></a>
+ `NoContainer` – 구성 요소가 격리된 런타임 환경에서 실행되지 않습니다.
+ `GreengrassContainer` - 구성 요소는 AWS IoT Greengrass 컨테이너 내의 격리된 런타임 환경에서 실행됩니다.
기본값: `GreengrassContainer`

`containerParams`  
<a name="connector-component-container-params-description"></a>(선택 사항) 이 구성 요소에 대한 컨테이너 파라미터를 포함하는 객체입니다. `containerMode`에 `GreengrassContainer`를 지정하면 구성 요소에서 이러한 파라미터를 사용합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>(선택 사항) 구성 요소에 할당되는 메모리 양(킬로바이트)입니다.  
기본값은 512MB(525,312KB)입니다.

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
(선택 사항) 구성 요소에서 메시지를 수신하려고 구독하는 주제를 포함하는 객체입니다. 각 주제와 구성 요소가 AWS IoT Core 또는 로컬 게시/구독 주제의 MQTT 주제를 구독하는지 여부를 지정할 수 있습니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`0` – 문자열 형태의 배열 인덱스입니다.  
다음 정보를 포함하는 객체입니다.    
`type`  
(선택 사항) 이 구성 요소에서 메시지 구독에 사용하는 게시/구독 메시징의 유형입니다. 다음 옵션 중 하나를 선택합니다.  
+ `PUB_SUB` – 로컬 게시/구독 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.
+ `IOT_CORE` - AWS IoT Core MQTT 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.
기본값: `PUB_SUB`  
`topic`  
(선택 사항) 구성 요소가 메시지를 수신하기 위해 구독하는 주제입니다. `type`에 `IotCore`를 지정하면 이 주제에서 MQTT 와일드카드(`+` 및 `#`)를 사용할 수 있습니다.

**Example 예: 구성 병합 업데이트(컨테이너 모드)**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic"
    }
  },
  "containerMode": "GreengrassContainer"
}
```

**Example 예: 구성 병합 업데이트(컨테이너 없음 모드)**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic"
    }
  },
  "containerMode": "NoContainer"
}
```

## 입력 데이터
<a name="sns-component-input-data"></a>

이 구성 요소는 다음 주제에 대한 메시지를 수락하고 해당 메시지를 대상 Amazon SNS 주제에 그대로 게시합니다. <a name="connector-component-local-publish"></a>기본적으로 이 구성 요소는 로컬 게시/구독 메시지가 구독됩니다. 사용자 지정 구성 요소에서 이 구성 요소로 메시지를 게시하는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.

**기본 주제(로컬 게시/구독):** `sns/message`

<a name="connector-component-input-properties"></a>메시지는 다음 속성을 수락합니다. 입력 메시지는 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`  <a name="connector-component-input-property-id"></a>
요청에 대한 임의의 ID입니다. 이 속성을 사용하여 입력 요청을 출력 응답에 매핑할 수 있습니다. 이 속성을 지정하면 구성 요소는 응답 객체의 `id` 속성을 해당 값으로 설정합니다.  
유형: `string`

**참고**  
메시지 크기는 최대 256KB까지 가능합니다.

**Example 입력 예: 문자열 메시지**  

```
{
  "request": {
    "subject": "Message subject",
    "message": "Message data",
    "sns_topic_arn": "arn:aws:sns:region:account-id:topic2-name"
  },
  "id": "request123"
}
```

**Example 입력 예: JSON 메시지**  

```
{
  "request": {
    "subject": "Message subject",
    "message": "{ \"default\": \"Message data\" }",
    "message_structure": "json"
  },
  "id": "request123"
}
```

## 출력 데이터
<a name="sns-component-output-data"></a>

 <a name="connector-component-output-data"></a>이 구성 요소는 기본적으로 다음 MQTT 주제에 대한 출력 데이터로 응답을 게시합니다. [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)의 구성에서 이 주제를 `subject`로 지정해야 합니다. 사용자 지정 구성 요소에서 이 주제에 대한 메시지를 구독하는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.

**기본 주제(AWS IoT Core MQTT):** `sns/message/status`

**Example 출력 예: 성공**  

```
{
  "response": {
    "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a",
    "status": "success"
  },
  "id": "request123"
}
```

**Example 출력 예: 실패**  

```
{
  "response" : {
    "error": "InvalidInputException",
    "error_message": "SNS Topic Arn is invalid",
    "status": "fail"
  },
  "id": "request123"
}
```

## 로컬 로그 파일
<a name="sns-component-log-file"></a>

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

```
/greengrass/v2/logs/aws.greengrass.SNS.log
```

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

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

## 라이선스
<a name="sns-component-licenses"></a>

이 구성 요소에는 다음 타사 소프트웨어/라이선스가 포함되어 있습니다.<a name="boto-3-licenses"></a>
+ [AWS SDK for Python (Boto3)](https://pypi.org/project/boto3/)/Apache 라이선스 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache 라이선스 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF 라이선스
+ [docutils](https://pypi.org/project/docutils/)/BSD 라이선스, GNU 일반 공개 라이선스(GPL), Python Software Foundation 라이선스, 퍼블릭 도메인
+ [jmespath](https://pypi.org/project/jmespath/)/MIT 라이선스
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache 라이선스 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT 라이선스

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="sns-component-changelog"></a>

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


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.1.10  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 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  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/sns-component.html)  | 
|  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  |  초기 버전입니다.  | 