

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS-事件-規則-SN
<a name="aws-events-rule-sns"></a>

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/experimental.png)


 所有類都在積極開發中，並且在任何未來版本中都會受到非向後兼容的更改或刪除。這些不受[語義版本控制](https://semver.org/)模型。這意味著，雖然您可以使用它們，但在升級到此軟件包的較新版本時，您可能需要更新源代碼。

**請注意：** 為了確保功能正確，專案中的 AWS 解決方案建構套件和 AWS CDK 套件必須是相同的版本。


|  **語言**  |  **套件**  | 
| --- | --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/python.png) Python  |  aws\$1solutions\$1constructs.aws\$1events\$1rule\$1sns  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-events-rule-sns  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.eventsrulesns  | 

## Overview
<a name="overview-30"></a>

 此模式實作連接至 Amazon SNS 主題的 Amazon CloudWatch Events 規則。

 這是一個最小的可部署模式定義：

```
import { Duration } from '@aws-cdk/core';
import * as events from '@aws-cdk/aws-events';
import * as iam from '@aws-cdk/aws-iam';
import { EventsRuleToSnsProps, EventsRuleToSns } from "@aws-solutions-constructs/aws-events-rule-sns";

const props: EventsRuleToSnsProps = {
    eventRuleProps: {
      schedule: events.Schedule.rate(Duration.minutes(5)),
    }
};

const constructStack = new EventsRuleToSns(this, 'test-construct', props);

// Grant yourself permissions to use the Customer Managed KMS Key
const policyStatement = new iam.PolicyStatement({
    actions: ["kms:Encrypt", "kms:Decrypt"],
    effect: iam.Effect.ALLOW,
    principals: [ new iam.AccountRootPrincipal() ],
    resources: [ "*" ]
});

constructStack.encryptionKey?.addToResourcePolicy(policyStatement);
```

## Initializer
<a name="initializer-30"></a>

```
new EventsRuleToSNS(scope: Construct, id: string, props: EventsRuleToSNSProps);
```

 *參數* 
+  scope[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html) 
+  id`string` 
+  提案[`EventsRuleToSnsProps`](#pattern-construct-props-30) 

## 模式建立道具
<a name="pattern-construct-props-30"></a>


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  事件規則  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-events.RuleProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-events.RuleProps.html)  |  使用者提供的屬性，以覆寫 CloudWatch 事件規則的預設屬性。 | 
|  現在的托比科比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sns.Topic.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sns.Topic.html)  |  SNS 主題對象的現有實例，提供這個和topicProps會導致錯誤。 | 
|  主題道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sns.TopicProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sns.TopicProps.html)  |  選用的使用者提供的屬性，可覆寫 SNS 主題的預設屬性。忽略existingTopicObj提供。 | 
|  使用客戶管理的金鑰啟用加密？  |  boolean  |  是否使用由此 CDK 應用程式管理或匯入的客戶管理的加密金鑰。如果匯入加密金鑰，則必須在encryptionKey屬性為此建構。 | 
|  encryptionKey？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kms.Key.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kms.Key.html)  |  選用的現有加密金鑰，而非預設加密金鑰。 | 
|  加密密鑰道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kms.KeyProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kms.KeyProps.html)  |  選用的使用者提供的屬性，可覆寫加密金鑰的預設屬性。 | 

## 模式性質
<a name="pattern-properties-30"></a>


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  事件規則  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-events.Rule.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-events.Rule.html)  |  傳回模式所建立之事件規則的實體。 | 
|  snsTopic  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sns.Topic.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sns.Topic.html)  |  傳回由模式建立的 SNS 主題的實例。 | 
|  encryptionKey  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kms.Key.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kms.Key.html)  |  返回由模式創建的加密密鑰的實例。 | 

## 預設設定
<a name="default-settings-30"></a>

 此模式的開箱即用實現沒有任何覆蓋將設置以下默認值：

### Amazon CloudWatch Events 規則
<a name="amazon-events-rule-30"></a>
+  授與最低權限權限給 CloudWatch 事件以發佈至 SNS 主題。

### Amazon SNS 主題
<a name="amazon-sns-30"></a>
+  設定 SNS 主題的最低權限存取權限。
+  使用客戶受管 AWS KMS 金鑰對 SNS 主題啟用伺服器端加密。
+  強制加密傳輸中資料。

## Architecture
<a name="architecture-30"></a>

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-events-rule-sns.png)


## GitHub
<a name="github-30"></a>


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-事件-規則-s](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-events-rule-sns)  | 