

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

# API 參考
<a name="api-reference"></a>

 AWS 解決方案建構 (建構) 是 AWS Cloud Development Kit (AWS CDK) 的開放原始碼延伸，提供多服務、架構良好的模式，以便在程式碼中快速定義解決方案，以建立可預測且可重複的基礎設施。構造的目標是加速開發人員使用基於模式的定義為他們的架構，構建任何規模的解決方案的體驗。

 在構造中定義的模式是 AWS CDK 構造的高層次多服務抽象，這些構造具有基於架構良好的最佳實務的預設組態。該庫被組織成使用面向對象的技術來創建每個架構模式模型邏輯模塊。

 CDK 提供以下語言：
+  JavaScript，TypeScript（Node.js 10.3.0） 
+  蟒蛇（蟒蛇和 3.6） 
+ 爪哇 (Java 及 1.8)

## Modules
<a name="modules"></a>

 AWS 解決方案建構分為數個模組。他們是這樣命名的：
+  **aws-xxx**：適用於指定服務的架構良好的模式套件。此套件將包含包含多個 AWS CDK 服務模組的建構，以設定指定模式。
+  **xxx**：無法啟動的套件」**aws-**」是構造核心模塊，用於為模式庫中使用的服務配置最佳實踐默認值。

## 模組內容
<a name="module-contents"></a>

 模組包含下列類型：
+  **模式**-這個庫中的所有更高級別的多服務結構。
+  **其他類型**-存在以支持模式的所有非構造類，接口，結構和枚舉。

 模式在其構造函數中採用一組（輸入）屬性; 可以在模式的文檔頁面上看到屬性集（以及需要哪些屬性）。

 該模式的文檔頁面還列出了可用的方法來調用，以及可用於在模式已實例化後檢索有關模式的信息的屬性。

# Aw-每個人的動作模式
<a name="aws-apigateway-dynamodb"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1apigateway\$1dynamodb  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-apigateway-dynamodb  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.apigatewaydynamodb  | 

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

 這個 AWS 解決方案建構實作了一個連接到 Amazon DynamoDB 表格的 Amazon API Gateway REST API。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { ApiGatewayToDynamoDBProps, ApiGatewayToDynamoDB } from "@aws-solutions-constructs/aws-apigateway-dynamodb";

new ApiGatewayToDynamoDB(this, 'test-api-gateway-dynamodb-default', {});
```

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

```
new ApiGatewayToDynamoDB(scope: Construct, id: string, props: ApiGatewayToDynamoDBProps);
```

 *參數* 
+  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` 
+  提案[`ApiGatewayToDynamoDBProps`](#pattern-construct-props) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  Dynamote 表面道具  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html)  |  選擇性的使用者提供的道具，用於覆寫 DynamoDB 表格的預設道具  | 
|  阿比格特威道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html)  |  選用的使用者提供的道具，可覆寫 API Gateway 的預設道具。 | 
|  允許作業  |  boolean  |  是否要在 DynamoDB 表格上部署建立作業的 API Gateway 方法。 | 
|  建立請求範本  |  string  |  建立方法的 API Gateway 要求範本，如果允許作業設定為 True，則需要  | 
|  允許讀取作業  |  boolean  |  是否要在 DynamoDB 表格上部署讀取作業的 API Gateway 方法。 | 
|  允許更新作業  |  boolean  |  是否要在 DynamoDB 表上部署更新作業的 API Gateway 方法。 | 
|  更新請求範本  |  string  |  更新方法的 API Gateway 要求範本，如果允許更新作業設定為 True，則需要  | 
|  允許刪除作業  |  boolean  |  是否要在 DynamoDB 表上部署用於刪除操作的 API Gateway 方法。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  使用者提供的選用道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  ApeGateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html)  |  返回由模式創建的 API Gateway REST API 的實例。 | 
|  雲端觀察角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回模式所建立的 IAM 角色執行個體，該模式可啟用從 API Gateway REST API 存取記錄至 CloudWatch。 | 
|  應用路徑記錄群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回傳送 API Gateway REST API 存取記錄檔的模式所建立之記錄群組的執行個體。 | 
|  角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 API Gateway REST API 模式所建立的 IAM 角色執行個體。 | 
|  DynaMotion 表格  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)  |  傳回由樣式建立之 DynamoDB 表格的實體。 | 

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

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

### Amazon API Gateway
<a name="amazon-api-gateway"></a>
+  部署邊緣最佳化的 API 端點 
+  啟用適用於 API Gateway 的 CloudWatch 日誌 
+  設定 API Gateway 的最低權限存取 IAM 角色 
+  將所有 API 方法的預設授權類型設定為 IAM 
+  啟用 X-Ray 追蹤

### Amazon DynamoDB 表
<a name="amazon-dynamodb-table"></a>
+  將 DynamoDB 表格的計費模式設定為隨選 (按請求付費) 
+  使用 AWS 受管的 KMS 金鑰啟用 DynamoDB 表格的伺服器端加密 
+  為 DynamoDB 表格建立名為「id」的分割區索引鍵 
+  刪除 CloudFormation 堆棧時保留表 
+  啟用持續備份和時間點復原 

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

![\[Diagram showing data flow from code to database, with security and cloud search components.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-apigateway-dynamodb.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/操作方式-動態模式](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-apigateway-dynamodb)  | 

# AW-每個人-物聯網
<a name="aws-apigateway-iot"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1apigateway\$1iot  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-apigateway-iot  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.apigatewayiot  | 

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

 此 AWS 解決方案建構實作連接到 AWS IoT 模式的 Amazon API Gateway REST API。

 此建構會在 API Gateway 和 AWS IoT 之間建立可擴充的 HTTPS 代理。當您想要允許不支援 MQTT 或 MQT/WebSocket 通訊協定的舊式裝置與 AWS IoT 平台進行互動時，此功能非常有用。

 此實作可讓您在指定的 MQTT 主題上發佈唯寫訊息，並支援 HTTPS 裝置的陰影更新，以允許裝置登錄中的項目。它不涉及 Lambda 函數來代理訊息，而是仰賴 AWS IoT 整合的直接 API Gateway，該閘道同時支援 JSON 訊息和二進位訊息。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { ApiGatewayToIot } from '@aws-solutions-constructs/aws-apigateway-iot';

new ApiGatewayToIot(this, 'ApiGatewayToIotPattern', {
    iotEndpoint: 'a1234567890123-ats'
});
```

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

```
new ApiGatewayToIot(scope: Construct, id: string, props: ApiGatewayToIotProps);
```

 *參數* 
+  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` 
+  提案[`ApiGatewayToIotProps`](#pattern-construct-props-32) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  定位點  |  string  |  用於將 API Gateway 與其整合的 AWS IoT 端點子網域 (例如：A1234567890123)。 | 
|  我的創建方式鑰匙？  |  boolean  |  如果設為true，則會建立 API 金鑰，並與使用方案相關聯。用戶應該在訪問 RestApi 時指定「X-api 鍵」頭。預設值設定為false。 | 
|  應用程式執行角色？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  API Gateway 用來存取 AWS IoT 的 IAM 角色。如果未指定，則會以萬用字元 ('\$1') 存取所有主題和項目建立預設角色。 | 
|  阿比格特威道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html)  |  選用的使用者提供的道具，可覆寫 API Gateway REST API 的預設道具。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  使用者提供的選用道具，以覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  ApeGateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html)  |  返回由模式創建的 API Gateway REST API 的實例。 | 
|  雲端觀察角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回模式所建立的 IAM 角色執行個體，該模式可啟用從 API Gateway REST API 存取記錄至 CloudWatch。 | 
|  應用路徑記錄群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回傳送 API Gateway REST API 存取記錄檔的模式所建立之記錄群組的執行個體。 | 
|  角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 API Gateway REST API 模式所建立的 IAM 角色執行個體。 | 

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

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

### Amazon API Gateway
<a name="amazon-api-gateway-32"></a>
+  部署邊緣最佳化的 API 端點 
+  建立 API 資源`POST`發佈訊息至 IoT 主題的方法 
+  建立 API 資源`POST`發佈訊息至的方法`ThingShadow`和`NamedShadows` 
+  啟用 API Gateway 的 CloudWatch 日誌 
+  針對 API Gateway 設定 IAM 角色，可存取所有主題和內容 
+  將所有 API 方法的預設授權類型設定為 IAM 
+  啟用 X-Ray 追蹤 
+  創建一個 UsagePlan，並關聯到`prod`stage 

 以下是部署構造後 API Gateway 公開的不同資源和方法的描述。請參閱[範例](#examples-32)部分，以取得如何使用輕鬆測試這些端點`curl`。


|  **方法**  |  **資源**  |  **查詢參數**  |  **傳回代碼**  |  **描述**  | 
| --- | --- | --- | --- | --- | 
|  POST  |  /message/<topics>  |  qos  |  200/403/500  |  通過調用這個端點，你需要傳遞你想發布的主題（例如/message/device/foo`）。 | 
|  POST  |  /shadow/<thingName>  |  無  |  200/403/500  |  這條路線允許更新一個事物的陰影文檔，考慮到其thingName使用未命名（經典）影子類型。身體應符合標準的影子結構，包括state節點和關聯desired和reported節點。請參閱[更新裝置影子](#updating-device-shadows-32)區段以取得範例。 | 
|  POST  |  /shadow/<thingName>/<shadowName>  |  無  |  200/403/500  |  這條路線允許更新一個事物的命名陰影文檔，因為它的thingName與shadowName使用命名陰影類型。身體應符合標準的影子結構，包括state節點和關聯desired和reported節點。請參閱[更新影子](#updating-named-shadows-32)區段以取得範例。 | 

## Architecture
<a name="w23aab9c23c21"></a>

![\[IoT architecture diagram showing device, API 閘道, IoT Core, and related components.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-apigateway-iot.png)


## Examples
<a name="examples-32"></a>

以下範例僅適用於`API_KEY`身份驗證類型，因為 IAM 授權也需要指定 Sigv4 令牌，請確保`apiGatewayCreateApiKey`屬性設置為`true`，否則下面的示例將不起作用。

### 發佈訊息
<a name="publishing-a-message-32"></a>

您可以使用`curl`，使用 HTTPS API 在不同的 MQTT 主題上發佈訊息。下面的例子將發布一條消息`device/foo`主題。

```
curl -XPOST https://<stage-id>.execute-api.<region>.amazonaws.com/prod/message/device/foo -H "x-api-key: <api-key>" -H "Content-Type: application/json" -d '{"Hello": "World"}'
```

請注意：取代`stage-id`、`region`，以及`api-key`參數與您的部署值。

您可以鏈結 URL 中的主題名稱，API 最多可接受 7 個您可以在其上發佈的子主題。例如，下列範例發佈訊息至主題`device/foo/bar/abc/xyz`。

```
curl -XPOST https://<stage-id>.execute-api.<region>.amazonaws.com/prod/message/device/foo/bar/abc/xyz -H "x-api-key: <api-key>" -H "Content-Type: application/json" -d '{"Hello": "World"}'
```

### 更新裝置影子
<a name="updating-device-shadows-32"></a>

若要更新與指定事物相關聯的陰影文件，您可以使用事物名稱發出陰影狀態請求。請參閱如何更新物件影子下列範例。

```
curl -XPOST https://<stage-id>.execute-api.<region>.amazonaws.com/prod/shadow/device1 -H "x-api-key: <api-key>" -H "Content-Type: application/json" -d '{"state": {"desired": { "Hello": "World" }}}'
```

### 更新影子
<a name="updating-named-shadows-32"></a>

若要更新與指定事物的命名陰影相關聯的陰影文件，您可以使用事物名稱和陰影名稱發出陰影狀態要求。請參閱下面的例子關於如何更新命名的陰影。

```
curl -XPOST https://<stage-id>.execute-api.<region>.amazonaws.com/prod/shadow/device1/shadow1 -H "x-api-key: <api-key>" -H "Content-Type: application/json" -d '{"state": {"desired": { "Hello": "World" }}}'
```

### 傳遞二進位承載
<a name="sending-binary-payloads-32"></a>

可以將二進位承載傳送至代理 API，向下傳送至 AWS IoT 服務。在下列範例中，我們發送的內容`README.md`檔案 (視為二進位資料)`device/foo`主題使用`application/octet-stream`內容類型。

```
curl -XPOST https://<stage-id>.execute-api.<region>.amazonaws.com/prod/message/device/foo/bar/baz/qux -H "x-api-key: <api-key>" -H "Content-Type: application/octet-stream" --data-binary @README.md
```

 請注意：在此項目的目錄中執行此命令。然後，您可以測試從您的文件系統發送其他類型的二進制文件。

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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/AW-應用-物聯網](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-apigateway-iot)  | 

# AW-每個人的運動流
<a name="aws-apigateway-kinesisstreams"></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\$1apigateway\$1kinesisstreams  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-apigateway-kinesisstreams  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.apigatewaykinesisstreams  | 

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

 此模式實作連接到 Amazon Kinesis 資料流的 Amazon API 閘道 REST API。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { ApiGatewayToKinesisStreams, ApiGatewayToKinesisStreamsProps } from '@aws-solutions-constructs/aws-apigateway-kinesisstreams';

new ApiGatewayToKinesisStreams(this, 'test-apigw-kinesis', {});
```

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

```
new ApiGatewayToKinesisStreams(scope: Construct, id: string, props: ApiGatewayToKinesisStreamsProps);
```

 *參數* 
+  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` 
+  提案[`ApiGatewayToKinesisStreamsProps`](#pattern-construct-props-29) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  阿比格特威道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html)  |  選用的使用者提供的道具，可覆寫 API Gateway REST API 的預設道具。 | 
|  記錄請求模板？  |  string  |  傳 PutRecord 動作的 API Gateway 要求範本。如果沒有提供，將使用默認的。 | 
|  記錄請求模型？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.ModelOptions.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.ModelOptions.html)  |  傳 PutRecord 動作的 API Gateway 要求模型。如果沒有提供，則會建立預設的。 | 
|  輸入記錄請求模板？  |  string  |  傳 PutRecords 動作的 API Gateway 要求範本。如果沒有提供，將使用默認的。 | 
|  記錄請求模型？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.ModelOptions.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.ModelOptions.html)  |  傳 PutRecords 動作的 API Gateway 要求模型。如果沒有提供，則會建立預設的。 | 
|  現在的斯特拉莫比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html)  |  Kinesis 流的現有實例，提供這個和kinesisStreamProps將導致錯誤。 | 
|  運動流道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html)  |  選用的使用者提供的道具，可覆寫 Kinesis 串流的預設道具。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  使用者提供的選用道具，可覆寫 CloudWatch Logs Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  AigGateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html)  |  返回由模式創建的 API Gateway REST API 的實例。 | 
|  角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 API Gateway REST API 模式所建立的 IAM 角色執行個體。 | 
|  雲端觀察角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回模式所建立的 IAM 角色執行個體，該模式可啟用從 API Gateway REST API 存取記錄至 CloudWatch。 | 
|  應用路徑記錄群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回傳送 API Gateway REST API 存取記錄檔的模式所建立之記錄群組的執行個體。 | 
|  KinesisStream  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html)  |  返回由模式創建的 Kinesis 流的實例。 | 

## API API 用量範例
<a name="sample-api-usage"></a>


|  **方法**  |  **請求路徑。**  |  **請求內文**  |  **佇列動作**  |  **描述**  | 
| --- | --- | --- | --- | --- | 
|  POST  |  /record  |  <pre>{ <br />  "data": "Hello World!", <br />  "partitionKey": "pk001"<br />}</pre>  |  kinesis:PutRecord  |  將單一資料記錄寫入串流。 | 
|  POST  |  /records  |  <pre>{ <br />    "records": [<br />      { "data": "abc", <br />        "partitionKey": "pk001" <br />      }, <br />      { "data": "xyz", <br />        "partitionKey": "pk001" <br />      }<br />     ] <br />}</pre>  |  kinesis:PutRecords  |  在單一呼叫中將多個資料記錄寫入串流。 | 

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

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

### Amazon API Gateway
<a name="amazon-api-gateway-29"></a>
+  部署邊緣最佳化的 API 端點。
+  啟用 API Gateway 的 CloudWatch 記錄。
+  設定 API Gateway 的最低權限存取 IAM 角色。
+  將所有 API 方法的預設授權類型設定為 IAM。
+  啟用 X-Ray 追蹤。
+  在將資料傳遞給 Kinesis 之前驗證要求主體。

### Amazon Kinesis Data Stream
<a name="amazon-sqs-queue"></a>
+  設定 Kinesis 串流的最低權限存取 IAM 角色。
+  使用 AWS 受管 KMS 金鑰啟用 Kinesis 串流的伺服器端加密。

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

![\[Diagram showing data flow between cloud search, code analysis, and network components.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-apigateway-kinesisstreams.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/操作方式-運動流](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-apigateway-kinesisstreams)  | 

# AW-每個人的拉姆達
<a name="aws-apigateway-lambda"></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\$1apigateway\$1lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-apigateway-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.apigatewaylambda  | 

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

 此 AWS 解決方案建構實作連接到 AWS Lambda 函數的 Amazon API Gateway REST API。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { ApiGatewayToLambda } from '@aws-solutions-constructs/aws-apigateway-lambda';

new ApiGatewayToLambda(this, 'ApiGatewayToLambdaPattern', {
    lambdaFunctionProps: {
      runtime: lambda.Runtime.NODEJS_14_X,
      // This assumes a handler function in lib/lambda/index.js
      code: lambda.Code.fromAsset(`${__dirname}/lambda`),
      handler: 'index.handler'
    }
});
```

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

```
new ApiGatewayToLambda(scope: Construct, id: string, props: ApiGatewayToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`ApiGatewayToLambdaProps`](#pattern-construct-props-1) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會造成錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性，可覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  阿比格特威道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html)  |  可選的使用者提供的道具來覆寫 API 的預設道具。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  可選用的使用者提供的道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  雲端觀察角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回模式所建立的 IAM 角色執行個體，該模式可啟用從 API Gateway REST API 存取記錄至 CloudWatch。 | 
|  應用路徑記錄群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回傳送 API Gateway REST API 存取記錄檔的模式所建立之記錄群組的執行個體。 | 
|  LambdaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  AgeGateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html)  |  返回由模式創建的 API Gateway REST API 的實例。 | 

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

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

### Amazon API Gateway
<a name="amazon-api-gateway-1"></a>
+  部署邊緣最佳化的 API 端點 
+  啟用適用於 API Gateway 的 CloudWatch 日誌 
+  設定 API Gateway 的最低權限存取 IAM 角色 
+  將所有 API 方法的預設授權類型設定為 IAM 
+  啟用 X-Ray 追蹤
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### AWS Lambda 功能
<a name="aws-lambda-function"></a>
+  針對 Lambda 函數設定有限的權限存取 IAM 角色 
+  針對 NodeJS Lambda 函數啟用具有持續作用的重複使用連線 
+  啟用 X-Ray 追蹤

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

![\[Diagram showing interaction between Amazon API Gateway, AWS Lambda, and Amazon CloudWatch with roles.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-apigateway-lambda.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/AW-每個人-lambda](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-apigateway-lambda)  | 

# AW-每個地方-邏輯點
<a name="aws-apigateway-sagemakerendpoint"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1apigateway\$1sagemakerendpoint  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-apigateway-sagemakerendpoint  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.apigatewaysagemakerendpoint  | 

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

 這個 AWS 解決方案建構實作了一個連接到亞馬遜 SagMaker 終端節點的 Amazon API Gateway REST API。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { ApiGatewayToSageMakerEndpoint, ApiGatewayToSageMakerEndpointProps } from '@aws-solutions-constructs/aws-apigateway-sagemakerendpoint';

// Below is an example VTL (Velocity Template Language) mapping template for mapping the Api GET request to the Sagemaker POST request
const requestTemplate =
`{
    "instances": [
#set( $user_id = $input.params("user_id") )
#set( $items = $input.params("items") )
#foreach( $item in $items.split(",") )
    {"in0": [$user_id], "in1": [$item]}#if( $foreach.hasNext ),#end
    $esc.newline
#end
    ]
}`;

// Replace 'my-endpoint' with your Sagemaker Inference Endpoint
new ApiGatewayToSageMakerEndpoint(this, 'test-apigw-sagemakerendpoint', {
    endpointName: 'my-endpoint',
    resourcePath: '{user_id}',
    requestMappingTemplate: requestTemplate
});
```

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

```
new ApiGatewayToSageMakerEndpoint(scope: Construct, id: string, props: ApiGatewayToSageMakerEndpointProps);
```

 *參數* 
+  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` 
+  提案[`ApiGatewayToSageMakerEndpointProps`](#pattern-construct-props-33) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  阿比格特威道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html)  |  選用的使用者提供的道具，可覆寫 API Gateway REST API 的預設道具。 | 
|  應用程式執行角色？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  API Gateway 使用的 IAM 角色叫用 SageMaker 端點。如果未指定，則會建立預設角色，並存取endpointName。 | 
|  Endpoint Name  |  string  |  已部署的 SageMaker 推論端點的名稱。 | 
|  ResourcenName？  |  string  |  可選的資源名稱，其中 GET 方法將可用。 | 
|  resourcePath  |  string  |  GET 方法的資源路徑。這裡定義的變量可以在requestMappingTemplate。 | 
|  請求對映範本  |  string  |  對應範本，將 REST API 上接收的 GET 要求轉換為 SageMaker 端點所預期的 POST 要求。 | 
|  ResponseMappingTemplate？  |  string  |  選用的對應範本，可轉換從 SageMaker 端點接收到的回應。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  可選的使用者提供的道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  ApeGateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html)  |  返回由模式創建的 API Gateway REST API 的實例。 | 
|  應用方式角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 API Gateway REST API 模式所建立的 IAM 角色執行個體。 | 
|  雲端觀察角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回模式所建立的 IAM 角色執行個體，該模式可啟用從 API Gateway REST API 存取記錄至 CloudWatch。 | 
|  應用路徑記錄群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回傳送 API Gateway REST API 存取記錄檔的模式所建立之記錄群組的執行個體。 | 

## 範例 API 使用
<a name="sample-api-usage"></a>

**請注意：** 每個 SageMaker 端點都是唯一的，API 的回應將取決於部署的模型。下面給出的例子假定從樣本[這篇博客文章](https://aws.amazon.com/blogs/machine-learning/creating-a-machine-learning-powered-rest-api-with-amazon-api-gateway-mapping-templates-and-amazon-sagemaker/)。有關如何實施的參考，請參閱[智能方式分配點覆蓋 .ts](https://github.com/awslabs/aws-solutions-constructs/blob/f02997ea4fa6515fc4429771d21821d2c26a8584/source/patterns/%40aws-solutions-constructs/aws-apigateway-sagemakerendpoint/test/integ.apigateway-sagemakerendpoint-overwrite.ts)。


|  **方法**  |  **請求路徑**  |  **查詢字串**  |  **SageMaker 動作**  |  **描述**  | 
| --- | --- | --- | --- | --- | 
|  GET  |  /321  |  items=101,131,162  |  sagemaker:InvokeEndpoint  |  擷取特定使用者和項目的預測。 | 

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

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

### Amazon API Gateway
<a name="amazon-api-gateway-33"></a>
+  部署邊緣最佳化的 API 端點 
+  啟用適用於 API Gateway 的 CloudWatch 日誌 
+  設定 API Gateway 的最低權限存取 IAM 角色 
+  將所有 API 方法的預設授權類型設定為 IAM 
+  啟用 X-Ray 追蹤 
+  在將數據傳遞給 SageMaker 之前驗證請求參數 

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

![\[Diagram showing Amazon CloudWatch, API 閘道, SageMaker endpoint, and IAM roles connections.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-apigateway-sagemakerendpoint.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/AW-應用-邏輯點](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-apigateway-sagemakerendpoint)  | 

# AW-每個人的-數據
<a name="aws-apigateway-sqs"></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\$1apigateway\$1sqs  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-apigateway-sqs  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.apigatewaysqs  | 

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

 此 AWS 解決方案建構實作連接到 Amazon SQS 佇列的 Amazon API 閘道 REST API。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { ApiGatewayToSqs, ApiGatewayToSqsProps } from "@aws-solutions-constructs/aws-apigateway-sqs";

new ApiGatewayToSqs(this, 'ApiGatewayToSqsPattern', {});
```

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

```
new ApiGatewayToSqs(scope: Construct, id: string, props: ApiGatewayToSqsProps);
```

 *參數* 
+  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` 
+  提案[`ApiGatewayToSqsProps`](#pattern-construct-props-2) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  阿比格特威道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html)  |  可選的使用者提供的道具來覆寫 API Gateway 的預設道具。 | 
|  佇列道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  可選的使用者提供的道具來覆寫佇列的預設道具。 | 
|  部署死亡佇列？  |  boolean  |  是否部署輔助佇列做為無效字母佇列。預設為 true。 | 
|  maxReceiveCount  |  number  |  訊息移到無效字母佇列之前，需交付到無效字母佇列的次數。 | 
|  是否允許作業？  |  boolean  |  是否部署在隊列上創建操作的 API Gateway 方法（即 SQL：發送消息）。 | 
|  建立請求範本？  |  string  |  覆寫建立方法的預設 API Gateway 要求範本，如果allowCreateOperation已設定為true。 | 
|  允許操作？  |  boolean  |  是否部署在隊列上讀取操作的 API Gateway 方法（即 SQL：接收消息）。 | 
|  讀取要求樣板？  |  string  |  覆寫讀取方法的預設 API Gateway 要求範本，如果allowReadOperation已設定為true。 | 
|  是否允許刪除作業？  |  boolean  |  是否部署在隊列上刪除操作的 API Gateway 方法（即 SQL：刪除）。 | 
|  刪除請求範本？  |  string  |  覆寫刪除方法的預設 API Gateway 要求範本，如果allowDeleteOperation已設定為true。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  可選的使用者提供的道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  AigGateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html)  |  返回由模式創建的 API Gateway REST API 的實例。 | 
|  雲端觀察角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回模式所建立的 IAM 角色執行個體，該模式可啟用從 API Gateway REST API 存取記錄至 CloudWatch。 | 
|  應用路徑記錄群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回傳送 API Gateway REST API 存取記錄檔的模式所建立之記錄群組的執行個體。 | 
|  應用方式角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 API Gateway REST API 模式所建立的 IAM 角色執行個體。 | 
|  死機隊列？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的死信隊列的實例，如果一個被部署。 | 
|  平方  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的 SQS 隊列的實例。 | 

## 範例 API 使用
<a name="sample-api-usage"></a>


|  **方法**  |  **請求路徑。**  |  **請求內文**  |  **佇列動作**  |  **描述**  | 
| --- | --- | --- | --- | --- | 
|  GET  |  /  |   |  sqs::ReceiveMessage  |  從佇列擷取訊息。 | 
|  POST  |  /  |  \$1 "data": "Hello World\$1" \$1  |  sqs::SendMessage  |  將訊息傳遞到佇列。 | 
|  DELETE  |  /message?receiptHandle=[value]  |   |  sqs::DeleteMessage  |  從佇列刪除指定的訊息  | 

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

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

### Amazon API Gateway
<a name="amazon-api-gateway-2"></a>
+  部署邊緣最佳化的 API 端點 
+  為 API Gateway 啟用 CloudWatch 日誌 
+  設定 API Gateway 的最低權限存取 IAM 角色 
+  將所有 API 方法的預設授權類型設定為 IAM 
+  啟用 X-Ray 追蹤

### Amazon SQS 佇列
<a name="amazon-sqs-queue"></a>
+  為來源 SQS 佇列建立 SQS 無效字母佇列 
+  使用 AWS 受管 KMS Key 為來源 SQS 佇列啟用伺服器端加密 
+  強制加密傳輸中的資料 

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

![\[Diagram showing Amazon API Gateway, CloudWatch, and Simple Queue Service interactions with roles.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-apigateway-sqs.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/操作-應用程序](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-apigateway-sqs)  | 

# 雲端前面的每個角落
<a name="aws-cloudfront-apigateway"></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\$1cloudfront\$1apigateway  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-cloudfront-apigateway  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.cloudfrontapigateway  | 

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

 這個 AWS 解決方案構建在 Amazon API Gateway REST API 前面實作了一個 Amazon CloudFront 分發。

 下面是 TypeScript 中的最小可部署模式定義：

```
import * as api from '@aws-cdk/aws-apigateway';
import * as lambda from "@aws-cdk/aws-lambda";
import { CloudFrontToApiGateway } from '@aws-solutions-constructs/aws-cloudfront-apigateway';
  
const lambdaProps: lambda.FunctionProps = {
    code: lambda.Code.fromAsset(`${__dirname}/lambda`),
    runtime: lambda.Runtime.NODEJS_12_X,
    handler: 'index.handler'
};

const lambdafunction = new lambda.Function(this, 'LambdaFunction', lambdaProps);

const apiGatewayProps: api.LambdaRestApiProps = {
        handler: lambdafunction,
        endpointConfiguration: {
            types: [api.EndpointType.REGIONAL]
        },
        defaultMethodOptions: {
            authorizationType: api.AuthorizationType.NONE
        }
};

const apiGateway = new api.LambdaRestApi(this, 'LambdaRestApi', apiGatewayProps);

new CloudFrontToApiGateway(this, 'test-cloudfront-apigateway', {
    existingApiGatewayObj: apiGateway
});
```

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

```
new CloudFrontToApiGateway(scope: Construct, id: string, props: CloudFrontToApiGatewayProps);
```

 *參數* 
+  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` 
+  提案[`CloudFrontToApiGatewayProps`](#pattern-construct-props-4) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現有的阿比格特瓦尤比  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html)  |  將使用 CloudFront 前端的區域 API Gateway  | 
|  雲端發佈道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.html)  |  可選的使用者提供的道具，以覆寫 CloudFront 分發的預設道具。 | 
|  插入安全性標頭？  |  boolean  |  可選的用戶提供的道具，用於在 CloudFront 的所有響應中打開/關閉最佳實踐 HTTP 安全標頭的自動注入  | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  ApeGateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html)  |  返回由模式創建的 API Gateway REST API 的實例。 | 
|  雲端記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  傳回 CloudFront 網頁分發模式所建立之記錄儲存貯體的執行個體。 | 
|  雲端網絡發佈  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistribution.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistribution.html)  |  返回由模式創建的 CloudFront 網絡分發的實例。 | 
|  埃德格拉姆針灸版本？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Version.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Version.html)  |  返回由模式創建的 Lambda 邊緣函數版本的實例。 | 

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

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

### Amazon CloudFront
<a name="amazon-cloudfront-1"></a>
+  設定 CloudFront 網路發佈的存取記錄 
+  在 CloudFront 網路發佈的所有回應中啟用自動插入最佳實務 HTTP 安全性標頭 

### Amazon API Gateway
<a name="amazon-api-gateway-4"></a>
+  用戶提供的 API Gateway 對象按原樣使用 
+  啟用 X-Ray 追蹤

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

![\[Diagram showing data flow between network, code, storage, and cloud search components.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-cloudfront-apigateway.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-結構/aws-雲前面的方式](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-cloudfront-apigateway)  | 

# aws-云前面的每個角度-lambda
<a name="aws-cloudfront-apigateway-lambda"></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\$1cloudfront\$1apigateway\$1lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-cloudfront-apigateway-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.cloudfrontapigatewaylambda  | 

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

 這個 AWS 解決方案建構在 Amazon API 閘道支援 LambDA 的 REST API 前面實作了一個 Amazon 雲端分發。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { CloudFrontToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cloudfront-apigateway-lambda';

new CloudFrontToApiGatewayToLambda(this, 'test-cloudfront-apigateway-lambda', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    }
});
```

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

```
new CloudFrontToApiGatewayToLambda(scope: Construct, id: string, props: CloudFrontToApiGatewayToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`CloudFrontToApiGatewayToLambdaProps`](#pattern-construct-props-3) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性，可覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  阿比格特威道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApiProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApiProps.html)  |  可選用的使用者提供的道具來覆寫 API Gateway 的預設道具  | 
|  雲端發佈道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.html)  |  可選的使用者提供的道具，以覆寫 CloudFront 分發的預設道具。 | 
|  插入安全性標頭？  |  boolean  |  可選的用戶提供的道具，用於在 CloudFront 的所有響應中打開/關閉最佳實踐 HTTP 安全標頭的自動注入  | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  使用者提供的可選道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  ApeGateway Gateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html)  |  返回由模式創建的 API Gateway REST API 的實例。 | 
|  雲端觀察角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回模式所建立的 IAM 角色執行個體，該模式可啟用從 API Gateway REST API 存取記錄至 CloudWatch。 | 
|  應用路徑記錄群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回傳送 API Gateway REST API 存取記錄檔的模式所建立之記錄群組的執行個體。 | 
|  雲端記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  傳回 CloudFront 網頁分發模式所建立之記錄儲存貯體的執行個體。 | 
|  雲端網絡發佈  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistribution.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistribution.html)  |  返回由模式創建的 CloudFront 網絡分發的實例。 | 
|  埃德格拉姆針灸版本  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Version.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Version.html)  |  返回由模式創建的 Lambda 邊緣函數版本的實例。 | 
|  LambdaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 

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

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

### Amazon CloudFront
<a name="amazon-cloudfront"></a>
+  設定 CloudFront 網路發佈的存取記錄 
+  在 CloudFront 網路發佈的所有回應中啟用自動插入最佳實務 HTTP 安全性標頭 

### Amazon API Gateway
<a name="amazon-api-gateway-3"></a>
+  部署區域性 API 端點 
+  啟用適用於 API Gateway 的 CloudWatch 日誌 
+  設定 API Gateway 的最低權限存取 IAM 角色 
+  將所有 API 方法的預設授權類型設定為 IAM 
+  啟用 X-Ray 追蹤

### AWS Lambda 功能
<a name="aws-lambda-function-1"></a>
+  針對 Lambda 函數配置有限的許可存取 IAM 角色 
+  針對 NodeJS Lambda 函數啟用具有持續作用的重複使用連線 
+  啟用 X-Ray 追蹤
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

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

![\[Diagram showing data flow between AWS 服務 including AppSync, Lambda, and CloudSearch.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-cloudfront-apigateway-lambda.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/AW-雲-應用程序-lambda](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-cloudfront-apigateway-lambda)  | 

# 雲端前端媒體存放區
<a name="aws-cloudfront-mediastore"></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\$1cloudfront\$1mediastore  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-cloudfront-mediastore  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.cloudfrontmediastore  | 

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

 這個 AWS 解決方案建構實作連接到 AWS Elemental MediaStore 容器的 Amazon CloudFront 分發。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { CloudFrontToMediaStore } from '@aws-solutions-constructs/aws-cloudfront-mediastore';

new CloudFrontToMediaStore(this, 'test-cloudfront-mediastore-default', {});
```

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

```
new CloudFrontToMediaStore(scope: Construct, id: string, props: CloudFrontToMediaStoreProps);
```

 *參數* 
+  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` 
+  提案[`CloudFrontToMediaStoreProps`](#pattern-construct-props-38) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  存在媒體商店集裝箱？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-mediastore.CfnContainer.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-mediastore.CfnContainer.html)  |  可選的使用者提供的 MediaStore 容器來覆寫預設的媒體存放區容器。 | 
|  媒體存儲容器道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-mediastore.CfnContainerProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-mediastore.CfnContainerProps.html)  |  可選的使用者提供的道具來覆寫 MediaStore 容器的預設道具。 | 
|  雲端發佈道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.html) \$1 any  |  可選的使用者提供的道具，用於覆寫 CloudFront 發佈的預設道具。 | 
|  插入安全性標頭？  |  boolean  |  可選的使用者提供的道具，可在 CloudFront 的所有回應中開啟/關閉最佳做法 HTTP 安全標頭的自動注入。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  雲端網絡發佈  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistribution.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistribution.html)  |  返回由模式創建的 CloudFront 網絡分發的實例。 | 
|  媒體儲存區容器  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-mediastore.CfnContainer.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-mediastore.CfnContainer.html)  |  返回由模式創建的 MediaStore 容器的實例。 | 
|  雲端記錄桶  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  傳回 CloudFront 網頁分發模式所建立之記錄儲存貯體的執行個體。 | 
|  雲端前端要求原則  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.OriginRequestPolicy.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.OriginRequestPolicy.html)  |  傳回由 CloudFront 網路分發的模式所建立的 CloudFront 原始碼請求原則的執行個體。 | 
|  CloudFrontOrigin? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.OriginAccessIdentity.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.OriginAccessIdentity.html)  |  傳回由 CloudFront 網路分發的模式所建立的 CloudFront 原始存取身分識別的執行個體。 | 
|  埃德格拉姆針灸版  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Version.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Version.html)  |  返回由模式創建的 Lambda 邊緣函數版本的實例。 | 

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

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

### Amazon CloudFront
<a name="amazon-cloudfront-2"></a>
+  設定 CloudFront 網路分發的存取記錄 
+  啟用 AWS Elemental MediaStore 容器的 CloudFront 原始請求政策 
+  設定`User-Agent`具有 CloudFront 原始伺服器存取身份的自訂 
+  在 CloudFront 網路分發的所有回應中，啟用自動插入最佳實務 HTTP 安全性標頭 

### AWS Elemental MediaStore
<a name="amazon-elemental-mediastore"></a>
+  設定刪除原則以保留資源 
+  使用 CloudFormation 堆疊名稱設定容器名稱 
+  設定預設[容器跨來源資源分享 (CORS) 政策](https://docs.aws.amazon.com/mediastore/latest/ug/cors-policy.html) 
+  設定預設[物件生命週期政策](https://docs.aws.amazon.com/mediastore/latest/ug/policies-object-lifecycle.html) 
+  設定預設[容器政策](https://docs.aws.amazon.com/mediastore/latest/ug/policies.html)只允許`aws:UserAgent`具有 CloudFrontOrigin 原始伺服器 
+  設定預設[指標政策](https://docs.aws.amazon.com/mediastore/latest/ug/policies-metric.html) 
+  啟用存取日誌

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

![\[Diagram showing interaction between Amazon CloudFront, AWS Elemental MediaStore, and Amazon S3.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-cloudfront-mediastore.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案結構/aws-雲前媒體存儲](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-cloudfront-mediastore)  | 

# 雲端前端 3
<a name="aws-cloudfront-s3"></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\$1cloudfront\$1s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-cloudfront-s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.cloudfronts3  | 

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

 AWS 解決方案建構會在 Amazon S3 儲存貯體前實作 Amazon CloudFront 散發。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { CloudFrontToS3 } from '@aws-solutions-constructs/aws-cloudfront-s3';

new CloudFrontToS3(this, 'test-cloudfront-s3', {});
```

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

```
new CloudFrontToS3(scope: Construct, id: string, props: CloudFrontToS3Props);
```

 *參數* 
+  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` 
+  提案[`CloudFrontToS3Props`](#pattern-construct-props-5) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在的巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  S3 桶對象的現有實例。如果這是提供的，那麼還提供bucketProps是錯誤。 | 
|  水桶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  可選的使用者提供的屬性來覆寫儲存貯體的預設屬性。忽略existingBucketObj提供。 | 
|  雲端發佈道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.html)  |  可選的使用者提供的道具，以覆寫 CloudFront 分發的預設道具。 | 
|  插入安全性標頭？  |  boolean  |  可選的用戶提供的道具，用於在 CloudFront 的所有響應中打開/關閉最佳實踐 HTTP 安全標頭的自動注入  | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  雲端網絡發佈  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistribution.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistribution.html)  |  返回由模式創建的 CloudFront 網絡分發的實例。 | 
|  S3 儲存貯體？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由模式創建的 S3 存儲桶的實例。 | 
|  S3 記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由 S3 存儲桶模式創建的日誌存儲桶的實例。 | 
|  埃德格拉姆針灸版本？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Version.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Version.html)  |  返回由模式創建的 Lambda 邊緣函數版本的實例。 | 
|  雲端記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  傳回 CloudFront 網頁分發模式所建立之記錄儲存貯體的執行個體。 | 

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

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

### Amazon CloudFront
<a name="amazon-cloudfront-2"></a>
+  設定 CloudFront 網路發佈的存取記錄 
+  在 CloudFront 網路發佈的所有回應中啟用自動插入最佳實務 HTTP 安全性標頭 

### Amazon S3 儲存貯體
<a name="amazon-s3-bucket"></a>
+  設定 S3 儲存貯體的存取記錄 
+  使用 AWS 受管 KMS 金鑰啟用 S3 儲存貯體的伺服器端加密 
+  打開 S3 存儲桶的版本控制 
+  不允許公開存取 S3 儲存貯體 
+  刪除 CloudFormation 堆疊時保留 S3 桶 
+  強制加密傳輸中的資料 
+  套用生命週期規則，在 90 天後將非目前物件版本移至 Glacier 儲存區 

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

![\[CloudFront distribution workflow with Origin Access Control, S3 bucket, and associated logs.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-cloudfront-s3.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案結構/aws-雲前面 3](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-cloudfront-s3)  | 

# aw-認識-意大利-拉姆達
<a name="aws-cognito-apigateway-lambda"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1cognito\$1apigateway\$1lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-cognito-apigateway-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.cognitoapigatewaylambda  | 

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

 這個 AWS 解決方案建構實作了 Amazon Cognito 保護 Amazon API Gateway 支援 LambDA 的 REST API。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { CognitoToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cognito-apigateway-lambda';

new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    }
});
```

 如果您在 API 上定義資源和方法（例如`proxy = false`），您必須調用`addAuthorizers()`方法完全定義 API 之後。這可確保 API 中的每個方法都受到保護。

 請見此處 TypeScript：

```
import { CognitoToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cognito-apigateway-lambda';

const construct = new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', {
    lambdaFunctionProps: {
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        runtime: lambda.Runtime.NODEJS_12_X,
        handler: 'index.handler'
    },
    apiGatewayProps: {
      proxy: false
    }
});

const resource = construct.apiGateway.root.addResource('foobar');
resource.addMethod('POST');

// Mandatory to call this method to Apply the Cognito Authorizers on all API methods
construct.addAuthorizers();
```

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

```
new CognitoToApiGatewayToLambda(scope: Construct, id: string, props: CognitoToApiGatewayToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`CognitoToApiGatewayToLambdaProps`](#pattern-construct-props-6) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，同時提供這個和lambdaFunctionProps會造成錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  阿比格特威道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html)  |  可選用的使用者提供的道具來覆寫 API Gateway 的預設道具  | 
|  干邑吐司道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolProps.html)  |  選用的使用者提供的道具，以覆寫 Cognito 使用者集區的預設道具  | 
|  認識吐司游泳池客戶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClientProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClientProps.html)  |  選擇性的使用者提供的道具，可覆寫 Cognito 使用者集區用戶端的預設道具  | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  使用者提供的選用道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  ApeGateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html)  |  返回由模式創建的 API Gateway REST API 的實例。 | 
|  LambdaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  userPool  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html)  |  傳回由模式建立的 Cognito 使用者集區的執行個體。 | 
|  UserPoolClient  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClient.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClient.html)  |  傳回由模式建立的 Cognito 使用者集區用戶端的執行個體。 | 
|  雲端觀察角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回模式所建立的 IAM 角色執行個體，該模式可啟用從 API Gateway REST API 存取記錄至 CloudWatch。 | 
|  應用路徑記錄群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回傳送 API Gateway REST API 存取記錄檔的模式所建立之記錄群組的執行個體。 | 
|  應用程式授權器  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.CfnAuthorizer.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.CfnAuthorizer.html)  |  返回由模式創建的 API Gateway 授權的實例。 | 

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

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

### Amazon Cognito
<a name="amazon-cognito"></a>
+  設定使用者集區的密碼策略 
+  強制執行「使用者集區」的進階安全模式 

### Amazon API Gateway
<a name="amazon-api-gateway-5"></a>
+  部署邊緣最佳化的 API 端點 
+  啟用適用於 API Gateway 的 CloudWatch 日誌 
+  設定 API Gateway 的最低權限存取 IAM 角色 
+  將所有 API 方法的預設授權類型設定為 IAM 
+  啟用 X-Ray 追蹤

### AWS Lambda 功能
<a name="aws-lambda-function-2"></a>
+  針對 Lambda 函數設定有限的權限存取 IAM 角色 
+  針對 NodeJS Lambda 函數啟用具有持續作用的重複使用連線 
+  啟用 X-Ray 追蹤
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

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

![\[Diagram showing interactions between API 閘道, Lambda, and CloudWatch with security icons.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-cognito-apigateway-lambda.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/AW-認識-應用-lambda](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-cognito-apigateway-lambda)  | 

# aws-dynamodb-流-lambda
<a name="aws-dynamodb-stream-lambda"></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\$1dynamodb\$1stream\$1lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-dynamodb-stream-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.dynamodbstreamlambda  | 

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

 此 AWS 解決方案建構實作含串流的模式 Amazon DynamoDB 表格，以使用最低權限叫用 AWS Lambda 函數。

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

```
import { DynamoDBStreamToLambdaProps, DynamoDBStreamToLambda} from '@aws-solutions-constructs/aws-dynamodb-stream-lambda';

new DynamoDBStreamToLambda(this, 'test-dynamodb-stream-lambda', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    },
});
```

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

```
new DynamoDBStreamToLambda(scope: Construct, id: string, props: DynamoDBStreamToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`DynamoDBStreamToLambdaProps`](#pattern-construct-props-8) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會造成錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  DynamoTable 道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html)  |  選擇性的使用者提供的道具，用於覆寫 DynamoDB 表格的預設道具  | 
|  現有的表格？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)  |  DynamoDB 表格物件的現有實體，同時提供這個和dynamoTableProps會造成錯誤。 | 
|  華康活動推薦道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda-event-sources.DynamoEventSourceProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda-event-sources.DynamoEventSourceProps.html)  |  選擇性的使用者提供的道具，用於覆寫 DynamoDB 事件來源的預設道具  | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  DynaMotion 表格  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)  |  傳回由樣式建立之 DynamoDB 表格的實體。 | 
|  LambdaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 

## Lambda 功能
<a name="lambda-function-8"></a>

此模式需要 Lambda 函數，該函數可以從 DynamoDB 串流將資料張貼至 Elasticsearch 服務。提供範例函數[這裡](https://github.com/awslabs/aws-solutions-constructs/blob/master/source/patterns/%40aws-solutions-constructs/aws-dynamodb-stream-lambda/test/lambda/index.js)。

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

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

### Amazon DynamoDB 資料表
<a name="amazon-dynamodb-table-2"></a>
+  將 DynamoDB 表格的計費模式設定為隨選 (按請求付費) 
+  使用 AWS 受管的 KMS 金鑰啟用 DynamoDB 表格的伺服器端加密 
+  為 DynamoDB 表建立名為「id」的分割區索引鍵 
+  刪除 CloudFormation 堆棧時保留表 
+  啟用持續備份和時間點復原 

### AWS Lambda 功能
<a name="aws-lambda-function-4"></a>
+  針對 Lambda 函數設定有限權限存取 IAM 角色 
+  針對 NodeJS Lambda 函數啟用具有持續作用的重複使用連線 
+  啟用 X-Ray 追蹤
+  啟用失敗處理功能：在功能錯誤時啟用二分點；設定預設記錄保留天數上限 (24 小時)；設定預設重試嘗試次數上限 (500)；以及在失敗時部署 SQS 無效字母佇列做為目的地
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

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

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


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


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

# aws-Dynamodb 流-羊肉-彈性搜索-基班納
<a name="aws-dynamodb-stream-lambda-elasticsearch-kibana"></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\$1dynamodb\$1stream\$1lambda\$1elasticsearch\$1kibana  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.dynamodbstreamlambdaelasticsearchkibana  | 

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

 此 AWS 解決方案建構實作具有串流、AWS Lambda 函數以及具有最低特權權限的 Amazon DynamoDB 表格。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { DynamoDBStreamToLambdaToElasticSearchAndKibana, DynamoDBStreamToLambdaToElasticSearchAndKibanaProps } from '@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana';
import { Aws } from "@aws-cdk/core";

const props: DynamoDBStreamToLambdaToElasticSearchAndKibanaProps = {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    },
    domainName: 'test-domain',
    // TODO: Ensure the Cognito domain name is globally unique
    cognitoDomainName: 'globallyuniquedomain' + Aws.ACCOUNT_ID;
};

new DynamoDBStreamToLambdaToElasticSearchAndKibana(this, 'test-dynamodb-stream-lambda-elasticsearch-kibana', props);
```

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

```
new DynamoDBStreamToLambdaToElasticSearchAndKibana(scope: Construct, id: string, props: DynamoDBStreamToLambdaToElasticSearchAndKibanaProps);
```

 *參數* 
+  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` 
+  提案[`DynamoDBStreamToLambdaToElasticSearchAndKibanaProps`](#pattern-construct-props-7) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，同時提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  DynamoTable 道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html)  |  選擇性的使用者提供的道具，用於覆寫 DynamoDB 表格的預設道具  | 
|  現有的表格？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)  |  DynamoDB 表格物件的現有實體，同時提供這個和dynamoTableProps會導致錯誤。 | 
|  華康活動推薦道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda-event-sources.DynamoEventSourceProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda-event-sources.DynamoEventSourceProps.html)  |  選擇性的使用者提供的道具，用於覆寫 DynamoDB 事件來源的預設道具  | 
|  電子域名道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomainProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomainProps.html)  |  可選用的使用者提供的道具，以覆寫 Amazon Elasticsearch Service 的預設道具  | 
|  domainName  |  string  |  Cognito 和 Amazon Elasticsearch Service 的域名  | 
|  創建雲端觀察器  |  boolean  |  是否要建立建議的警報。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  雲觀察屋？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)  |  傳回模式建立的一或多個 CloudWatch 警示的清單。 | 
|  DynaMotion 表格  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)  |  傳回由樣式建立之 DynamoDB 表格的實體。 | 
|  彈性搜尋網域  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomain.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomain.html)  |  返回由圖案創建的 Elasticsearch 域的實例。 | 
|  IdentityPool  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.CfnIdentityPool.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.CfnIdentityPool.html)  |  傳回由模式建立的 Cognito 身分識別集區的執行個體。 | 
|  LambdaFAULT  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  userPool  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html)  |  傳回由模式建立的 Cognito 使用者集區的執行個體。 | 
|  UserPoolClient  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClient.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClient.html)  |  傳回由模式建立的 Cognito 使用者集區用戶端的執行個體。 | 

## Lambda 功能
<a name="lambda-function-7"></a>

此模式需要 Lambda 函數，該函數可以從 DynamoDB 串流將資料張貼至 Elasticsearch 服務。提供範例函數[這裡](https://github.com/awslabs/aws-solutions-constructs/blob/master/source/patterns/%40aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/lambda/index.js)。

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

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

### Amazon DynamoDB 表
<a name="amazon-dynamodb-table-1"></a>
+  將 DynamoDB 表格的計費模式設定為隨選 (按請求付費) 
+  使用 AWS 受管的 KMS 金鑰啟用 DynamoDB 表格的伺服器端加密 
+  為 DynamoDB 表格建立名為「id」的分割區索引鍵 
+  刪除 CloudFormation 堆棧時保留表 
+  啟用連續備份和時間點復原 

### AWS Lambda 功能
<a name="aws-lambda-function-3"></a>
+  針對 Lambda 函數設定有限權限存取 IAM 角色 
+  針對 NodeJS Lambda 函數啟用具有持續作用的重複使用連線 
+  啟用 X-Ray 追蹤
+  啟用失敗處理功能：在功能錯誤時啟用二分點；設定預設記錄保留天數上限 (24 小時)；設定預設重試嘗試次數上限 (500)；以及在失敗時部署 SQS 無效字母佇列做為目的地
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### Amazon Cognito
<a name="amazon-cognito-1"></a>
+  設定使用者集區的密碼策略 
+  強制執行使用者集區的進階安全模式 

### Amazon Elasticsearch Service
<a name="amazon-elasticsearch-service"></a>
+  為彈性搜索域部署最佳實踐 CloudWatch 警報 
+  使用 Cognito 使用者集區保護 Kibana 儀表板存取 
+  使用 AWS 受管的 KMS 金鑰啟用彈性搜尋網域的伺服器端加密 
+  啟用彈性搜尋網域的節點對節點加密 
+  為 Amazon ES 網域配置叢集 

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

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-dynamodb-stream-lambda-elasticsearch-kibana.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-Dynamodb 流-羊肉-彈性搜索-kibana](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana)  | 

# AWS-事件規則-運動防火軟管-3
<a name="aws-events-rule-kinesisfirehose-s3"></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\$1kinesisfirehose\$1s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.eventsrulekinesisfirehoses3  | 

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

 此 AWS 解決方案建構實作了 Amazon CloudWatch Events 規則，將資料傳送到連接到 Amazon S3 儲存貯體的 Amazon Kinesis 資料火軟管交付串流。

 下面是 TypeScript 中的最小可部署模式定義：

```
import * as cdk from '@aws-cdk/core';
import { EventsRuleToKinesisFirehoseToS3, EventsRuleToKinesisFirehoseToS3Props } from '@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3';

const eventsRuleToKinesisFirehoseToS3Props: EventsRuleToKinesisFirehoseToS3Props = {
    eventRuleProps: {
    schedule: events.Schedule.rate(cdk.Duration.minutes(5))
    }
};

new EventsRuleToKinesisFirehoseToS3(this, 'test-events-rule-firehose-s3', eventsRuleToKinesisFirehoseToS3Props);
```

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

```
new EventsRuleToKinesisFirehoseToS3(scope: Construct, id: string, props: EventsRuleToKinesisFirehoseToS3Props);
```

 *參數* 
+  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` 
+  提案[`EventsRuleToKinesisFirehoseToS3Props`](#pattern-construct-props-35) 

## 模式建立道具
<a name="pattern-construct-props-35"></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-kinesisfirehose.CfnDeliveryStreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html)  |  選用的使用者提供的道具，可覆寫 Kinesis 火軟管傳遞串流的預設道具。 | 
|  現在的巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)  |  S3 存儲桶對象的現有實例。如果這是提供的，那麼還提供bucketProps是錯誤。 | 
|  水桶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  可選的使用者提供的道具來覆寫 S3 儲存貯體的預設道具。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  使用者提供的選用道具，用於覆寫 CloudWatch Logs 日誌群組的預設定。 | 

## 模式性質
<a name="pattern-properties-35"></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)  |  傳回模式所建立之事件規則的實體。 | 
|  動力煙管  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html)  |  傳回模式所建立之 Kinesis Firehose 傳遞串流的執行個體。 | 
|  S3 儲存貯體  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由模式創建的 S3 存儲桶的實例。 | 
|  S3 記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由 S3 存儲桶模式創建的日誌存儲桶的實例。 | 
|  事件角色？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 CloudWatch 事件規則建構所建立角色的執行個體。 | 
|  啟動式火爐  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 Kinesis 火軟管交付串流模式所建立的 IAM 角色執行個體。 | 
|  啟動火源群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回由 Kinesis Firehose 存取記錄傳送至此模式所建立的記錄群組執行個體。 | 

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

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

### Amazon CloudWatch Events
<a name="amazon-events-rule-35"></a>
+  為事件規則設定最低權限存取 IAM 角色，以發佈至 Kinesis Firehose 傳遞串流。

### Amazon Kinesis Firehose
<a name="amazon-kinesisfirehose-35"></a>
+  啟用 Kinesis 防火軟管的 CloudWatch 控記錄功能。
+  為 Amazon Kinesis Firehose 設定最低權限存取 IAM 角色。

### Amazon S3 儲存貯體
<a name="amazon-s3-bucket-35"></a>
+  設定儲存貯體的存取記錄。
+  使用 AWS 受管 KMS 金鑰啟用儲存貯體的伺服器端加密。
+  打開存儲桶的版本控制。
+  不允許存儲桶的公開訪問。
+  刪除 CloudFormation 堆疊時保留儲存貯體。
+  套用生命週期規則，可在 90 天後將非目前物件版本移至 Glacier 儲存區。

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

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


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


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

# aws--事件-規則-運動流
<a name="aws-events-rule-kinesisstreams"></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\$1kinesisstream  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-events-rule-kinesisstreams  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.eventsrulekinesisstream  | 

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

 此 AWS 解決方案建構實作了 Amazon CloudWatch Events 規則，將資料傳送到 Amazon Kinesis 資料流。

 下面是 TypeScript 中的最小可部署模式定義：

```
import * as cdk from '@aws-cdk/core';
import {EventsRuleToKinesisStreams, EventsRuleToKinesisStreamsProps} from "@aws-solutions-constructs/aws-events-rule-kinesisstreams";

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

new EventsRuleToKinesisStreams(this, 'test-events-rule-kinesis-stream', props);
```

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

```
new EventsRuleToKinesisStreams(scope: Construct, id: string, props: EventsRuleToKinesisStreamsProps);
```

 *參數* 
+  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` 
+  提案[`EventsRuleToKinesisStreamsProps`](#pattern-construct-props-36) 

## 模式建立道具
<a name="pattern-construct-props-36"></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-kinesis.Stream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html)  |  Kinesis 流的現有實例，提供這個和kinesisStreamProps會導致錯誤。 | 
|  運動流道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html)  |  選用的使用者提供的道具，可覆寫 Kinesis 串流的預設道具。 | 
|  創建雲端觀察  |  boolean  |  是否要建立建議的警報。 | 

## 模式性質
<a name="pattern-properties-36"></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)  |  傳回模式所建立之事件規則的實體。 | 
|  KinesisStream  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html)  |  傳回由模式建立之 Kinesis 串流的實體。 | 
|  事件角色？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 CloudWatch 事件規則建構所建立角色的執行個體。 | 

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

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

### Amazon CloudWatch Events
<a name="amazon-events-rule-36"></a>
+  為事件規則設定最低權限存取 IAM 角色，以發佈至 Kinesis 資料流。

### Amazon Kinesis 串流
<a name="amazon-kinesisstream-36"></a>
+  使用 AWS 受管 KMS 金鑰為 Kinesis 資料串流啟用伺服器端加密。

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

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


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


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

# AW-事件規則-拉姆達
<a name="aws-events-rule-lambda"></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\$1lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-events-rule-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.eventsrulelambda  | 

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

 此 AWS 解決方案建構實作 AWS 事件規則和 AWS Lambda 函數。

 下面是 TypeScript 中的最小可部署模式定義：

```
const { EventsRuleToLambdaProps, EventsRuleToLambda } from '@aws-solutions-constructs/aws-events-rule-lambda';

const props: EventsRuleToLambdaProps = {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    },
    eventRuleProps: {
      schedule: events.Schedule.rate(Duration.minutes(5))
    }
};

new EventsRuleToLambda(this, 'test-events-rule-lambda', props);
```

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

```
new EventsRuleToLambda(scope: Construct, id: string, props: EventsRuleToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`EventsRuleToLambdaProps`](#pattern-construct-props-9) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會造成錯誤。 | 
|  拉姆針灸道具  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  事件規則道具  |  [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)  |  使用者提供的事件規則來覆寫預設值  | 

## 模式性質
<a name="pattern-properties-9"></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)  |  傳回模式所建立之事件規則的實體。 | 
|  LambdaFAULT  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 

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

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

### Amazon CloudWatch Events 規則
<a name="amazon-cloudwatch-events-rule"></a>
+  授與最低權限權限給 CloudWatch 事件以觸發 Lambda 函數 

### AWS Lambda 功能
<a name="aws-lambda-function-5"></a>
+  針對 Lambda 函數設定有限權限存取 IAM 角色 
+  針對 NodeJS Lambda 函數啟用具有持續作用的重複使用連線 
+  啟用 X-Ray 追蹤
+  SET DEFAULT
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

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

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


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


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

# 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)  | 

# aws--事件-規則-
<a name="aws-events-rule-sqs"></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\$1sqs  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-events-rule-sqs  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.eventsrulesqs  | 

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

 此模式實作連接至 Amazon SQS 佇列的 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 { EventsRuleToSqsProps, EventsRuleToSqs } from "@aws-solutions-constructs/aws-events-rule-sqs";

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

const constructStack = new EventsRuleToSqs(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-31"></a>

```
new EventsRuleToSqs(scope: Construct, id: string, props: EventsRuleToSqsProps);
```

 *參數* 
+  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` 
+  提案[`EventsRuleToSqsProps`](#pattern-construct-props-31) 

## 模式建立道具
<a name="pattern-construct-props-31"></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-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  選擇性的現有 SQS 佇列，而不是預設佇列。同時提供這個和queueProps會導致錯誤。 | 
|  佇列道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  選擇性的使用者提供的特性來覆寫 SQS 佇列的預設特性。忽略existingQueueObj提供。 | 
|  是否啟用佇列清除？  |  boolean  |  是否授與其他權限給 Lambda 函數，使其能夠清除 SQS 佇列。預設為 false。 | 
|  部署死亡佇列？  |  boolean  |  無論是建立用作無效字母佇列的次要佇列。預設為 true。 | 
|  死亡排隊道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  可選的使用者提供的道具來覆寫死信佇列的預設道具。只有在deployDeadLetterQueue屬性設為 true。 | 
|  maxReceiveCount？  |  number  |  訊息移到無效字母佇列之前，需交付佇列的次數。預設為 15。 | 
|  使用客戶管理的金鑰啟用加密？  |  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-31"></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)  |  傳回模式所建立之事件規則的實體。 | 
|  平方  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的 SQS 隊列的實例。 | 
|  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-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的死信隊列的實例，如果一個被部署。 | 

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

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

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

### Amazon SQS 佇列
<a name="amazon-sqs-31"></a>
+  為來源佇列部署無效字母佇列。
+  使用客戶受管 AWS KMS 金鑰，為來源佇列啟用伺服器端加密。
+  強制加密傳輸中的資料。

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

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


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


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

# aws 事件規則步驟功能
<a name="aws-events-rule-step-function"></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\$1step\$1function  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-events-rule-step-function  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.eventsrulestepfunction  | 

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

 此 AWS 解決方案建構實作 AWS 事件規則和 AWS 步驟函數。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { EventsRuleToStepFunction, EventsRuleToStepFunctionProps } from '@aws-solutions-constructs/aws-events-rule-step-function';

const startState = new stepfunctions.Pass(this, 'StartState');

const props: EventsRuleToStepFunctionProps = {
    stateMachineProps: {
      definition: startState
    },
    eventRuleProps: {
      schedule: events.Schedule.rate(Duration.minutes(5))
    }
};

new EventsRuleToStepFunction(this, 'test-events-rule-step-function-stack', props);
```

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

```
new EventsRuleToStepFunction(scope: Construct, id: string, props: EventsRuleToStepFunctionProps);
```

 *參數* 
+  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` 
+  提案[`EventsRuleToStepFunctionProps`](#pattern-construct-props-10) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  斯塔特阿奇內道具  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachineProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachineProps.html)  |  可選的用戶提供的道具來覆蓋 Sfn.Statemachine 的默認道具  | 
|  事件規則  |  [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)  |  使用者提供的事件規則來覆寫預設值  | 
|  創建雲端觀察器  |  boolean  |  是否要建立建議的警報。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  可選用的使用者提供的道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  CloudWatch? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)  |  傳回模式建立的一或多個 CloudWatch 警示的清單。 | 
|  事件規則  |  [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)  |  傳回模式所建立之事件規則的實體。 | 
|  StateMachine  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachine.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachine.html)  |  返回由模式創建的狀態機的實例。 | 
|  台北市內洛集團  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回狀態機器模式所建立之日誌群組的執行個體。 | 

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

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

### Amazon CloudWatch Events
<a name="amazon-cloudwatch-events-rule-1"></a>
+  授與最低權限權限給 CloudWatch 事件以觸發 Lambda 函數 

### AWS Step Function
<a name="aws-step-function"></a>
+  啟用 API Gateway 的 CloudWatch 日誌 
+  針對步驟功能部署最佳實務 CloudWatch 警示 

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

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


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


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

# Aws-io-運動防火軟管-3
<a name="aws-iot-kinesisfirehose-s3"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1iot\$1kinesisfirehose\$1s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-iot-kinesisfirehose-s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.iotkinesisfirehoses3  | 

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

 此 AWS 解決方案建構實作 AWS IoT MQTT 主題規則，將資料傳送到連接到 Amazon S3 儲存貯體的 Amazon Kinesis 資料火軟管交付串流。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { IotToKinesisFirehoseToS3Props, IotToKinesisFirehoseToS3 } from '@aws-solutions-constructs/aws-iot-kinesisfirehose-s3';

const props: IotToKinesisFirehoseToS3Props = {
    iotTopicRuleProps: {
        topicRulePayload: {
            ruleDisabled: false,
            description: "Persistent storage of connected vehicle telematics data",
            sql: "SELECT * FROM 'connectedcar/telemetry/#'",
            actions: []
        }
    }
};

new IotToKinesisFirehoseToS3(this, 'test-iot-firehose-s3', props);
```

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

```
new IotToKinesisFirehoseToS3(scope: Construct, id: string, props: IotToKinesisFirehoseToS3Props);
```

 *參數* 
+  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` 
+  提案[`IotToKinesisFirehoseToS3Props`](#pattern-construct-props-11) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  IOTPIC 道具  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRuleProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRuleProps.html)  |  使用者提供的 CFN 主題規則提示來覆寫預設值  | 
|  金斯火焰炮道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html)  |  選用使用者提供的道具，可覆寫 Kinesis 火軟管傳遞串流的預設道具  | 
|  現在的巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  S3 存儲桶對象的現有實例，提供這個和bucketProps會導致錯誤。 | 
|  水桶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  使用者提供的道具可覆寫 S3 儲存貯體的預設道具。如果這是提供的，那麼還提供bucketProps是錯誤。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  可選的使用者提供的道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  IOT 動作角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回 IoT 規則模式所建立的 IAM 角色執行個體。 | 
|  物件規則  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRule.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRule.html)  |  傳回模式所建立之 IoT 主題規則的執行個體。 | 
|  動力煙管  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html)  |  傳回模式所建立之 Kinesis Firehose 傳遞串流的執行個體。 | 
|  啟動火源群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回由 Kinesis Firehose 存取記錄傳送至此模式所建立的記錄群組執行個體。 | 
|  啟動式火爐  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 Kinesis 火軟管交付串流模式所建立的 IAM 角色執行個體。 | 
|  S3 儲存貯體？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由模式創建的 S3 存儲桶的實例。 | 
|  S3 記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由 S3 存儲桶模式創建的日誌存儲桶的實例。 | 

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

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

### Amazon IoT 規則
<a name="amazon-iot-rule"></a>
+  為 Amazon IoT 設定最低權限存取 IAM 角色 

### Amazon Kinesis Firehose
<a name="amazon-kinesis-firehose"></a>
+  啟用 CloudWatch 控記錄功能 
+  為 Amazon Kinesis Firehose 設定最低權限存取 IAM 角色 

### Amazon S3 儲存貯體
<a name="amazon-s3-bucket-1"></a>
+  設定 S3 儲存貯體的存取記錄 
+  使用 AWS 受管 KMS 金鑰啟用 S3 儲存貯體的伺服器端加密 
+  打開 S3 存儲桶的版本控制 
+  不允許公開存取 S3 儲存貯體 
+  刪除 CloudFormation 堆疊時保留 S3 桶 
+  套用生命週期規則，在 90 天後將非目前物件版本移至 Glacier 儲存區 

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

![\[Workflow diagram showing spray bottle, cleaning, bucket, and cloud search icons with arrows.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-iot-kinesisfirehose-s3.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/AW-動態-防火軟體-3](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-iot-kinesisfirehose-s3)  | 

# 大概-蘭姆達
<a name="aws-iot-lambda"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1iot\$1lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-iot-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.iotlambda  | 

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

 此 AWS 解決方案建構模式實作 AWS IoT MQTT 主題規則和 AWS Lambda 函數模式。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { IotToLambdaProps, IotToLambda } from '@aws-solutions-constructs/aws-iot-lambda';

const props: IotToLambdaProps = {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    },
    iotTopicRuleProps: {
        topicRulePayload: {
            ruleDisabled: false,
            description: "Processing of DTC messages from the AWS Connected Vehicle Solution.",
            sql: "SELECT * FROM 'connectedcar/dtc/#'",
            actions: []
        }
    }
};

new IotToLambda(this, 'test-iot-lambda-integration', props);
```

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

```
new IotToLambda(scope: Construct, id: string, props: IotToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`IotToLambdaProps`](#pattern-construct-props-13) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  IOTPICE 道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRuleProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRuleProps.html)  |  使用者提供的 CFN 主題規則提示來覆寫預設值  | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  物件規則  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRule.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRule.html)  |  傳回模式所建立之 IoT 主題規則的執行個體。 | 
|  LambDAFAULT  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 

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

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

### 亞馬遜 IoT 規則
<a name="amazon-iot-rule-2"></a>
+  為 Amazon IoT 設定最低權限存取 IAM 角色。

### AWS Lambda 功能
<a name="aws-lambda-function-7"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  為 NodeJS Lambda 函數啟用具有持續作用的連線重複使用。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

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

![\[Diagram showing data flow from a source to Lambda function and then to cloud search.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-iot-lambda.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-io-lambda](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-iot-lambda)  | 

# Aw-io-羊肉-動態學調節模式
<a name="aws-iot-lambda-dynamodb"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1iot\$1lambda\$1dynamodb  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-iot-lambda-dynamodb  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.iotlambdadynamodb  | 

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

 此 AWS 解決方案建構模式實作 AWS IoT 主題規則、AWS Lambda 函數以及具有最低特權權限的 Amazon DynamoDB 表格。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { IotToLambdaToDynamoDBProps,  IotToLambdaToDynamoDB } from '@aws-solutions-constructs/aws-iot-lambda-dynamodb';

const props: IotToLambdaToDynamoDBProps = {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    },
    iotTopicRuleProps: {
        topicRulePayload: {
            ruleDisabled: false,
            description: "Processing of DTC messages from the AWS Connected Vehicle Solution.",
            sql: "SELECT * FROM 'connectedcar/dtc/#'",
            actions: []
        }
    }
};

new IotToLambdaToDynamoDB(this, 'test-iot-lambda-dynamodb-stack', props);
```

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

```
new IotToLambdaToDynamoDB(scope: Construct, id: string, props: IotToLambdaToDynamoDBProps);
```

 *參數* 
+  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` 
+  提案[`IotToLambdaToDynamoDBProps`](#pattern-construct-props-12) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  IOTPIC 道具  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRuleProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRuleProps.html)  |  用戶提供的道具覆寫預設道具  | 
|  DynamoTable 道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html)  |  選擇性的使用者提供的道具，用於覆寫 DynamoDB 表格的預設道具  | 
|  表格權限？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html)  |  要授與 Lambda 函數的選擇性資料表權限。可能指定下列其中一個選項：All、Read、ReadWrite, 或Write。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  DynaMotion 表格  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)  |  傳回由樣式建立之 DynamoDB 表格的實體。 | 
|  物件規則  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRule.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRule.html)  |  傳回模式所建立之 IoT 主題規則的執行個體。 | 
|  LambDaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 

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

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

### Amazon IoT 規則
<a name="amazon-iot-rule-1"></a>
+  為 Amazon IoT 設定最低權限存取 IAM 角色。

### AWS Lambda 功能
<a name="aws-lambda-function-6"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  為 NodeJS Lambda 函數啟用具有持續作用的連線重複使用。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### Amazon DynamoDB 表
<a name="amazon-dynamodb-table-3"></a>
+  將 DynamoDB 表格的計費模式設定為隨選 (按請求付費)。
+  使用 AWS 受管的 KMS 金鑰啟用 DynamoDB 表格的伺服器端加密。
+  為 DynamoDB 表格建立名為「id」的分割區索引鍵。
+  刪除 CloudFormation 堆棧時保留表。
+  啟用連續備份和時間點復原。

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

![\[Data flow diagram showing API 閘道, AWS Lambda, and Amazon CloudSearch components.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-iot-lambda-dynamodb.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-io-lambda-動態模式](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-iot-lambda-dynamodb)  | 

# AW-運動防火軟管-3
<a name="aws-kinesisfirehose-s3"></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-kinesis-firehose-s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-kinesisfirehose-s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.kinesisfirehoses3  | 

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

 此 AWS 解決方案建構實作 Amazon S3 儲存貯體的 Amazon Kinesis Data Firehose 交付串流。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { KinesisFirehoseToS3 } from '@aws-solutions-constructs/aws-kinesisfirehose-s3';

new KinesisFirehoseToS3(this, 'test-firehose-s3', {});
```

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

```
new KinesisFirehoseToS3(scope: Construct, id: string, props: KinesisFirehoseToS3Props);
```

 *參數* 
+  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` 
+  提案[`KinesisFirehoseToS3Props`](#pattern-construct-props-15) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  水桶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  可選的使用者提供的道具來覆寫 S3 儲存貯體的預設道具。 | 
|  現在的巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)  |  S3 儲存貯體的可選現有執行個體。如果這是提供的，那麼還提供bucketProps是錯誤。 | 
|  現在正在記錄巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)  |  由模式建立之 S3 儲存貯體的可選現有記錄 S3 儲存貯體執行個體。 | 
|  金斯火焰炮道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html) \$1 any  |  選用使用者提供的道具，可覆寫 Kinesis 火軟管傳遞串流的預設道具。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  可選的使用者提供的道具，以覆寫 CloudWatchLogs 群組的預設道具。 | 

## 模式屬性
<a name="pattern-properties-15"></a>


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  動力煙管  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html)  |  返回由構造創建的一個實例。 | 
|  啟動火源群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回由 Kinesis Data Firehose 傳遞串流建構所建立之 Logs.logGroup 實體。 | 
|  啟動式火爐  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 Kinesis 資料火軟管傳送串流的建構所建立的 IAM.Role 執行個體。 | 
|  S3 儲存貯體？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由構造創建的 S3.Bucket 的實例。 | 
|  S3 記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由構造創建的 S3.Bucket 的實例作為主存儲桶的日誌存儲桶。 | 

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

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

### Amazon Kinesis Firehose
<a name="amazon-kinesis-firehose-2"></a>
+  啟用 CloudWatch 控記錄功能 
+  為 Amazon Kinesis Firehose 設定最低權限存取 IAM 角色 

### Amazon S3 儲存貯體
<a name="amazon-s3-bucket-3"></a>
+  設定 S3 儲存貯體的存取記錄 
+  使用 AWS 受管 KMS 金鑰啟用 S3 儲存貯體的伺服器端加密 
+  打開 S3 存儲桶的版本控制 
+  不允許公開存取 S3 儲存貯體 
+  刪除 CloudFormation 堆疊時保留 S3 桶 
+  強制加密傳輸中的資料 
+ 套用生命週期規則，在 90 天後將非目前物件版本移至 Glacier 儲存空間 

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

![\[Diagram showing data flow between icons for spray nozzle, bucket, cloud search, and bucket.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-kinesisfirehose-s3.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-建構/aw-運動防火軟管-3](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-kinesisfirehose-s3)  | 

# 運動防火軟管-3 和運動分析
<a name="aws-kinesisfirehose-s3-and-kinesisanalytics"></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\$1kinesisfirehose\$1s3\$1and\$1kinesisanalytics  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.kinesisfirehoses3kinesisanalytics  | 

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

 此 AWS 解決方案建構實作連接到 Amazon S3 儲存貯體和 Amazon Kinesis 分析應用程式的 Amazon Kinesis 火軟管交付串流。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { KinesisFirehoseToAnalyticsAndS3 } from '@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics';

new KinesisFirehoseToAnalyticsAndS3(this, 'FirehoseToS3AndAnalyticsPattern', {
    kinesisAnalyticsProps: {
        inputs: [{
            inputSchema: {
                recordColumns: [{
                    name: 'ticker_symbol',
                    sqlType: 'VARCHAR(4)',
                    mapping: '$.ticker_symbol'
                }, {
                    name: 'sector',
                    sqlType: 'VARCHAR(16)',
                    mapping: '$.sector'
                }, {
                    name: 'change',
                    sqlType: 'REAL',
                    mapping: '$.change'
                }, {
                    name: 'price',
                    sqlType: 'REAL',
                    mapping: '$.price'
                }],
                recordFormat: {
                    recordFormatType: 'JSON'
                },
                recordEncoding: 'UTF-8'
            },
            namePrefix: 'SOURCE_SQL_STREAM'
        }]
    }
});
```

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

```
new KinesisFirehoseToAnalyticsAndS3(scope: Construct, id: string, props: KinesisFirehoseToAnalyticsAndS3Props);
```

 *參數* 
+  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` 
+  提案[`KinesisFirehoseToAnalyticsAndS3Props`](#pattern-construct-props-14) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  金斯火焰炮道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html)  |  選用的使用者提供的道具，可覆寫 Kinesis Firehose 傳遞串流的預設道具。 | 
|  運動分析道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisanalytics.CfnApplicationProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisanalytics.CfnApplicationProps.html)  |  選用的使用者提供的道具，可覆寫 Kinesis 分析應用程式的預設道具。 | 
|  現在的巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)  |  S3 存儲桶對象的現有實例。如果這是提供的，那麼還提供bucketProps是錯誤。 \$1  | 
|  水桶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  可選的使用者提供的屬性來覆寫儲存貯體的預設屬性。忽略existingBucketObj提供。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  選用使用者提供的道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  運動分析  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisanalytics.CfnApplication.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisanalytics.CfnApplication.html)  |  傳回模式所建立之 Kinesis 分析應用程式的執行個體。 | 
|  動力煙管  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html)  |  傳回模式所建立之 Kinesis Firehose 傳遞串流的執行個體。 | 
|  啟動火源群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回由 Kinesis Firehose 存取記錄傳送至此模式所建立的記錄群組執行個體。 | 
|  啟動式火爐  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 Kinesis 火軟管交付串流模式所建立的 IAM 角色執行個體。 | 
|  S3 儲存貯體？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由模式創建的 S3 存儲桶的實例。 | 
|  S3 記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由 S3 存儲桶模式創建的日誌存儲桶的實例。 | 

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

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

### Amazon Kinesis Firehose
<a name="amazon-kinesis-firehose-1"></a>
+  啟用 CloudWatch 控記錄功能 
+  為 Amazon Kinesis Firehose 設定最低權限存取 IAM 角色 

### Amazon S3 儲存貯體
<a name="amazon-s3-bucket-2"></a>
+  設定 S3 儲存貯體的存取記錄 
+  使用 AWS 受管 KMS 金鑰啟用 S3 儲存貯體的伺服器端加密 
+  打開 S3 存儲桶的版本控制 
+  不允許公開存取 S3 儲存貯體 
+  刪除 CloudFormation 堆疊時保留 S3 桶 
+  強制加密傳輸中的資料 
+ 套用生命週期規則，在 90 天後將非目前物件版本移至 Glacier 儲存空間 

### Amazon Kinesis Data Analytics
<a name="amazon-kinesis-data-analytics"></a>
+  為 Amazon Kinesis Analytics 設定最低權限存取 IAM 角色 

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

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


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-建構/aw-運動-運動-三-和運動分析](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics)  | 

# 運動流-糖果工作
<a name="aws-kinesisstreams-gluejob"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1kinesis\$1streams\$1gluejob  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-kinesisstreams-gluejob  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.kinesisstreamsgluejob  | 

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

 此 AWS 解決方案建構部署 Amazon Kinesis 資料流，並設定 AWS Glue Job 務以執行自訂 ETL 轉換，其中包含互動和安全的適當資源/屬性。它還創建一個 Amazon S3 存儲桶，其中可以上傳 AWS Glue Job 務的 Python 腳本。

 下面是 TypeScript 中的最小可部署模式定義：

```
import * as glue from '@aws-cdk/aws-glue';
import * as s3assets from '@aws-cdk/aws-s3-assets';
import { KinesisstreamsToGluejob } from '@aws-solutions-constructs/aws-kinesisstreams-gluejob';

const fieldSchema: glue.CfnTable.ColumnProperty[] = [
    {
        name: 'id',
        type: 'int',
        comment: 'Identifier for the record',
    },
    {
        name: 'name',
        type: 'string',
        comment: 'Name for the record',
    },
    {
        name: 'address',
        type: 'string',
        comment: 'Address for the record',
    },
    {
        name: 'value',
        type: 'int',
        comment: 'Value for the record',
    },
];

const customEtlJob = new KinesisstreamsToGluejob(this, 'CustomETL', {
    glueJobProps: {
        command: {
            name: 'gluestreaming',
            pythonVersion: '3',
            scriptLocation: new s3assets.Asset(this, 'ScriptLocation', {
                path: `${__dirname}/../etl/transform.py`,
            }).s3ObjectUrl,
        },
    },
    fieldSchema: fieldSchema,
});
```

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

```
new KinesisstreamsToGluejob(scope: Construct, id: string, props: KinesisstreamsToGluejobProps);
```

 *參數* 
+  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` 
+  提案[`KinesisstreamsToGluejobProps`](#pattern-construct-props-40) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  運動流道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html)  |  可選的使用者提供的道具，用於覆寫 Amazon Kinesis 資料流的預設道具。 | 
|  現在的斯特拉莫比  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html)  |  Kinesis 流的現有實例，提供這個和kinesisStreamProps會造成錯誤。 | 
|  葛樂珠的道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJobProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJobProps.html)  |  使用者提供的道具，用於覆寫 AWS Glue 工作的預設道具。 | 
|  現在存在膠工作？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJob.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJob.html)  |  AWS Glue 任務的現有執行個體，提供這個和glueJobProps會造成錯誤。 | 
|  是否存在資料庫？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabase.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabase.html)  |  要與此建構搭配使用的現有 AWS Glue 資料庫。如果設置了這個，那麼databaseProps忽略。 | 
|  數據庫道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabaseProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabaseProps.html)  |  使用者提供的道具，用於覆寫用於建立 AWS Glue 資料庫的預設道具。 | 
|  現有表格？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.html)  |  AWS Glue 表的現有執行個體。如果設置了這個，那麼tableProps和fieldSchema會遭到忽略。 | 
|  桌面道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTableProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTableProps.html)  |  用戶提供的道具，用於覆蓋用於創建 AWS Glue 表的默認道具。 | 
|  欄位架構？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.ColumnProperty.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.ColumnProperty.html)  |  使用者提供的結構描述結構來建立 AWS Glue 表。 | 
|  輸出資料存放區？  |  [https://github.com/awslabs/aws-solutions-constructs/blob/3fd15e984943fe295690d8b0654d77157ffda8e3/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md#sinkdatastoreprops](https://github.com/awslabs/aws-solutions-constructs/blob/3fd15e984943fe295690d8b0654d77157ffda8e3/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md#sinkdatastoreprops)  |  使用者為 Amazon S3 儲存貯體提供的道具，可儲存 AWS Glue 作業輸出。目前僅支援 Amazon S3 做為輸出資料存放區類型。 | 

## SinkDataStoreProps
<a name="sink-properties-40"></a>


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  存在 3 輸出桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  S3 儲存貯體的現有執行個體，資料應該寫入。同時提供這個和outputBucketProps會造成錯誤。 | 
|  輸出路徑道具  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  使用者提供的儲存貯體屬性，用於建立用於儲存 AWS Glue 作業輸出的 Amazon S3 儲存貯體。 | 
|  資料存放區類型  |  [https://github.com/awslabs/aws-solutions-constructs/blob/3fd15e984943fe295690d8b0654d77157ffda8e3/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md#sinkstoretype](https://github.com/awslabs/aws-solutions-constructs/blob/3fd15e984943fe295690d8b0654d77157ffda8e3/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md#sinkstoretype)  |  接收資料倉庫類型。 | 

## SinkStoreType
<a name="sink-type-40"></a>

列舉可能包括 S3、DynamoDB、DocumentDB、RDS 或 Redshift 的資料存放區類型。當前構造實現只支持 S3，但未來可能添加其他輸出類型。


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  S3  |  string  |  S3 儲存類型  | 

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

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

### Amazon Kinesis Streams
<a name="w23aab9d115c29b5"></a>
+  為 Amazon Kinesis 資料流設定最低權限存取 IAM 角色。
+  使用 AWS 受管 KMS 金鑰為 Amazon Kinesis 串流啟用伺服器端加密。
+  為 Amazon CloudWatch Amazon Kinesis 串流部署最佳實務。

### Glue Job
<a name="w23aab9d115c29b7"></a>
+  建立 AWS Glue 安全組態，以設定 CloudWatch、Job 書籤和 S3 的加密。CloudWatch 和 Job 書籤使用為 AWS 膠水服務建立的 AWS 受管 KMS 金鑰進行加密。S3 儲存貯體是以 SSE-S3 加密模式配置的。
+  設定允許 AWS Glue 從 Amazon Kinesis Data Streams 讀取的服務角色政策。

### Glue 資料庫
<a name="w23aab9d115c29b9"></a>
+  建立 AWS Glue 資料庫。AWS Glue 表將新增至資料庫。此表格定義 Amazon Kinesis 資料串流中緩衝記錄的結構描述。

### Glue 表
<a name="w23aab9d115c29c11"></a>
+  建立 AWS Glue 表格。表格結構描述定義是以 Amazon Kinesis 資料串流中緩衝記錄的 JSON 結構為基礎。

### IAM 角色
<a name="w23aab9d115c29c13"></a>
+  具有權限的工作執行角色 1) 從 Amazon S3 儲存貯體位置讀取 ETL 指令碼、2) 從 Amazon Kinesis 資料流讀取記錄，以及 3) 執行 Amazon Glue 工作。

### S3 儲存貯體
<a name="w23aab9d115c29c15"></a>
+  存放 ETL 轉換輸出的 Amazon S3 儲存貯體。此存儲桶將作為參數傳遞給創建的 AWS Glue 作業，以便在 ETL 腳本中使用它來將數據寫入其中。

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

![\[AWS Glue job diagram showing data flow from Kinesis to various storage destinations.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-kinesisstreams-gluejob.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-結構/aw-運動流-糖果](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-gluejob)  | 

# AW-運動流-運動防火軟管-3
<a name="aws-kinesisstreams-kinesisfirehose-s3"></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\$1kinesisstreams\$1kinesisfirehose\$1s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-kinesis-streams-kinesis-firehose-s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.kinesisstreamskinesisfirehoses3  | 

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

 此 AWS 解決方案建構實作連接到 Amazon S3 儲存貯體的 Amazon Kinesis 資料火管 (KDF) 交付串流的 Amazon Kinesis 資料流 (KDS)。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { KinesisStreamsToKinesisFirehoseToS3 } from '@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3';

new KinesisStreamsToKinesisFirehoseToS3(this, 'test-stream-firehose-s3', {});
```

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

```
new KinesisStreamsToKinesisFirehoseToS3(scope: Construct, id: string, props: KinesisStreams...ToS3Props);
```

 *參數* 
+  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` 
+  提案[`KinesisStreams...ToS3Props`](#pattern-construct-props-34) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  水桶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  可選的使用者提供的道具來覆寫 S3 儲存貯體的預設道具。 | 
|  創造雲端觀察武器？  |  boolean  |  選擇性是否建立建議的 CloudWatch 報。 | 
|  現在的巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)  |  S3 存儲桶對象的可選現有實例。如果這是提供的，那麼還提供bucketProps是錯誤。 | 
|  現在正在記錄巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)  |  針對模式建立的 S3 儲存貯體的可選現有記錄 S3 儲存貯體物件的執行個體。 | 
|  現在的斯特拉莫比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html)  |  Kinesis 流的現有實例，提供這個和kinesisStreamProps會導致錯誤。 | 
|  金斯火焰炮道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html) \$1 any  |  選用使用者提供的道具，可覆寫 Kinesis 火軟管傳遞串流的預設道具。 | 
|  運動流道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html)  |  選用的使用者提供的道具可覆寫 Kinesis 串流的預設道具。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  可選的使用者提供的道具可覆寫 CloudWatchlog 記錄群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  CloudwatchAlidwatchAlims  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)  |  返回由構造創建的雲 WATCH 實例列表。 | 
|  動力煙管  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html)  |  返回由構造創建的一個實例。 | 
|  啟動火源群組  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回由 Kinesis Data Firehose 傳遞串流建構所建立之 Logs.logGroup 實體。 | 
|  啟動式火爐  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 Kinesis 資料火軟管傳送串流的建構所建立的 IAM.Role 執行個體。 | 
|  運動串流角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回由 Kinesis 資料流建構所建立的 IAM.Role 的實體。 | 
|  S3 儲存貯體？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由構造創建的 S3.Bucket 的實例。 | 
|  S3 記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由構造創建的 S3.Bucket 的實例作為主存儲桶的日誌存儲桶。 | 

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

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

### Amazon Kinesis 串流
<a name="amazon-kinesis-stream-34"></a>
+  設定 Kinesis 串流的最低權限存取 IAM 角色 
+  使用 AWS 受管 KMS 金鑰啟用 Kinesis 串流的伺服器端加密 
+  為 Kinesis 串流部署最佳實務 CloudWatch 警示 

### Amazon Kinesis Firehose
<a name="amazon-kinesis-firehose-34"></a>
+  啟用 CloudWatch 控記錄功能 
+  為 Amazon Kinesis Firehose 設定最低權限存取 IAM 角色 

### Amazon S3 儲存貯體
<a name="amazon-s3-bucket-34"></a>
+  S3 儲存貯體設定存取記錄 
+  使用 AWS 受管 KMS 金鑰啟用 S3 儲存貯體的伺服器端加密 
+  強制加密傳輸中的資料 
+  啟用儲存貯體版本設定 
+  不允許公開存取 S3 儲存貯體 
+  刪除 CloudFormation 堆疊時保留 S3 桶 
+  套用生命週期規則，在 90 天後將非目前物件版本移至 Glacier 儲存空間 

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

![\[Workflow diagram showing data flow between components for face liveness detection.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-kinesisstreams-kinesisfirehose-s3.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-建構/aw-運動流-運動火腿-3](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3)  | 

# aw-運動流-拉姆達
<a name="aws-kinesisstreams-lambda"></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-kinesis-streams-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-kinesisstreams-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.kinesisstreamslambda  | 

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

 此 AWS 解決方案建構部署 Kinesis 串流和 Lambda 函數，其中包含適當的資源/屬性，以提供互動和安全性。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { KinesisStreamsToLambda } from '@aws-solutions-constructs/aws-kinesisstreams-lambda';

new KinesisStreamsToLambda(this, 'KinesisToLambdaPattern', {
    kinesisEventSourceProps: {
        startingPosition: lambda.StartingPosition.TRIM_HORIZON,
        batchSize: 1
    },
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    }
});
```

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

```
new KinesisStreamsToLambda(scope: Construct, id: string, props: KinesisStreamsToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`KinesisStreamsToLambdaProps`](#pattern-construct-props-16) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，同時提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  運動流道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html)  |  選用的使用者提供的道具，可覆寫 Kinesis 串流的預設道具。 | 
|  現在的斯特拉莫比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html)  |  Kinesis 流的現有實例，提供這個和kinesisStreamProps會導致錯誤。 | 
|  活動活動道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda-event-sources.KinesisEventSourceProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda-event-sources.KinesisEventSourceProps.html)  |  選用的使用者提供的道具，可覆寫 Lambda 事件來源對應的預設道具。 | 
|  創建雲端觀察器  |  boolean  |  是否要建立建議的警報。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  Kinesis串流  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html)  |  傳回由模式建立之 Kinesis 串流的實體。 | 
|  Lambda FAULT  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  運動串流角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回 Kinesis 串流模式所建立的 IAM 角色執行個體。 | 
|  CloudwatchAloudwatchAlims？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)  |  傳回模式建立的一或多個 CloudWatch 警示的清單。 | 

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

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

### Amazon Kinesis 串流
<a name="amazon-kinesis-stream"></a>
+  設定 Kinesis 串流的最低權限存取 IAM 角色。
+  使用 AWS 受管的 KMS 金鑰啟用 Kinesis 串流的伺服器端加密。
+  為 Kinesis 串流部署最佳作法 CloudWatch 警示。

### AWS Lambda 功能
<a name="aws-lambda-function-8"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  針對 NodeJS Lambda 函數啟用重複使用連線的功能。
+  啟用 X-Ray 追蹤。
+  啟用失敗處理功能：在功能錯誤時啟用二分點；設定預設的記錄保留時間上限 (24 小時)；設定預設的重試嘗試次數上限 (500)；以及在失敗時將 SQS 無效字母佇列部署為目的地。
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

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

![\[Diagram showing data flow between AWS 服務: CloudWatch, Lambda, and IAM Role.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-kinesisstreams-lambda.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/AW-運動流-lambda](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-lambda)  | 

# aws-lambda-dynamodb
<a name="aws-lambda-dynamodb"></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\$1lambda\$1dynamodb  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-lambda-dynamodb  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdadynamodb  | 

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

 此 AWS 解決方案建構實作具有最低權限的 AWS Lambda 函數和 Amazon DynamoDB 表格。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { LambdaToDynamoDBProps,  LambdaToDynamoDB } from '@aws-solutions-constructs/aws-lambda-dynamodb';

const props: LambdaToDynamoDBProps = {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    }
};

new LambdaToDynamoDB(this, 'test-lambda-dynamodb-stack', props);
```

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

```
new LambdaToDynamoDB(scope: Construct, id: string, props: LambdaToDynamoDBProps);
```

 *參數* 
+  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` 
+  提案[`LambdaToDynamoDBProps`](#pattern-construct-props-17) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會造成錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  DynamoTable 道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html)  |  選擇性的使用者提供的道具，用於覆寫 DynamoDB 表格的預設道具  | 
|  現有的表格？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)  |  DynamoDB 表格物件的現有實體，同時提供這個和dynamoTableProps會造成錯誤。 | 
|  表格權限？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html)  |  要授與 Lambda 函數的可選表格權限。您可以指定下列其中一個選項：All、Read、ReadWrite, 或Write。 | 
|  桌面環境變量名稱？  |  string  |  為 Lambda 函數設定之 DynamoDB 表格環境變數的選擇性名稱。 | 
|  是否存在 VPC？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  應該部署此模式的選用現有 VPC。在 VPC 中部署時，Lambda 函數將使用 VPC 中的 ENI 來存取網路資源，並且將在 Amazon DynamoDB 的 VPC 中建立閘道端點。如果提供了現有的 VPC，則deployVpc屬性不能true。這使用ec2.IVpc，以允許用戶端使用[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options)方法。 | 
|  VPCProps？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html)  |  可選的使用者提供的屬性，用於覆寫新 VPC 的預設屬性。enableDnsHostnames、enableDnsSupport、natGateways，以及subnetConfiguration是由模式設置的，因此此處提供的屬性的任何值都將被覆蓋。如果deployVpc不是true那麼這個屬性將被忽略。 | 
|  部署 vPC？  |  boolean  |  是否建立新的 VPC 基於vpcProps來部署此模式。將其設置為 true 將部署最小，最私有的 VPC 來運行該模式：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/aws-lambda-dynamodb.html) 如果此屬性為true，然後existingVpc無法指定。預設為 false。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  DynaMotion 表格  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)  |  傳回由樣式建立之 DynamoDB 表格的實體。 | 
|  LambdaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  vpc？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  返回模式使用的 VPC 上的接口（如果有的話）。這可能是由模式或提供給模式構造函數的 VPC 創建的 VPC。 | 

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

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

### AWS Lambda 功能
<a name="aws-lambda-function-9"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  為 NodeJS Lambda 函數啟用具有持續作用的連線重複使用。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  `DDB_TABLE_NAME` (default)
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### Amazon DynamoDB 表
<a name="amazon-dynamodb-table-4"></a>
+  將 DynamoDB 表格的計費模式設定為隨選 (按請求付費)。
+  使用 AWS 受管的 KMS 金鑰啟用 DynamoDB 表格的伺服器端加密。
+  為 DynamoDB 表格建立名為「id」的分割區索引鍵。
+  刪除 CloudFormation 堆棧時保留表。
+  啟用連續備份和時間點復原。

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

![\[Diagram showing data flow from OpenSearch and Lambda to DynamoDB and CloudSearch.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-lambda-dynamodb.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-lambda-動態模式](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-dynamodb)  | 

# aws-lambda-彈性搜索-基班納
<a name="aws-lambda-elasticsearch-kibana"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1lambda\$1elasticsearch\$1kibana  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-lambda-elasticsearch-kibana  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdaelasticsearchkibana  | 

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

 此 AWS 解決方案建構實作 AWS Lambda 函數和具有最低權限的 Amazon Elasticsearch Service 網域。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { LambdaToElasticSearchAndKibana } from '@aws-solutions-constructs/aws-lambda-elasticsearch-kibana';
import { Aws } from "@aws-cdk/core";

const lambdaProps: lambda.FunctionProps = {
    runtime: lambda.Runtime.NODEJS_14_X,
    // This assumes a handler function in lib/lambda/index.js
    code: lambda.Code.fromAsset(`${__dirname}/lambda`),
    handler: 'index.handler'
};

new LambdaToElasticSearchAndKibana(this, 'test-lambda-elasticsearch-kibana', {
    lambdaFunctionProps: lambdaProps,
    domainName: 'test-domain',
    // TODO: Ensure the Cognito domain name is globally unique
    cognitoDomainName: 'globallyuniquedomain' + Aws.ACCOUNT_ID;
});
```

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

```
new LambdaToElasticSearchAndKibana(scope: Construct, id: string, props: LambdaToElasticSearchAndKibanaProps);
```

 *參數* 
+  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` 
+  提案[`LambdaToElasticSearchAndKibanaProps`](#pattern-construct-props-18) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，同時提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  電子域名道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomainProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomainProps.html)  |  可選用的使用者提供的道具，以覆寫 Amazon Elasticsearch Service 的預設道具  | 
|  domainName  |  string  |  Cognito 和 Amazon Elasticsearch Service 的域名  | 
|  科尼托網域名稱？  |  string  |  選擇性 Cognito 網域名稱。如果有提供，它將用於 Cognito 網域，而domainName將用於彈性搜索域。 | 
|  創建雲端觀察器  |  boolean  |  是否要建立建議的警報。 | 
|  網域端點虛擬名稱變數名稱？  |  string  |  為 Lambda 函數設定的 ElasticSearch 網域端點環境變數選擇性名稱。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  CloudwatchAlims？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)  |  傳回模式建立的一或多個 CloudWatch 警示的清單。 | 
|  彈性搜尋網域  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomain.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomain.html)  |  返回由圖案創建的 Elasticsearch 域的實例。 | 
|  彈性搜尋網域角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  傳回 Elasticsearch 網域模式所建立的 IAM 角色執行個體。 | 
|  IdentityPool  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.CfnIdentityPool.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.CfnIdentityPool.html)  |  傳回由模式建立的 Cognito 身分識別集區的執行個體。 | 
|  Lambda FAULT  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  userPool  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html)  |  傳回由模式建立的 Cognito 使用者集區的執行個體。 | 
|  UserPoolClient  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClient.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClient.html)  |  傳回由模式建立的 Cognito 使用者集區用戶端的執行個體。 | 

## Lambda 功能
<a name="lambda-function-18"></a>

此模式需要 Lambda 函數，該函數可以從 DynamoDB 串流將資料張貼至 Elasticsearch 服務。提供範例函數[這裡](https://github.com/awslabs/aws-solutions-constructs/blob/master/source/patterns/%40aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/lambda/index.js)。

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

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

### AWS Lambda 功能
<a name="aws-lambda-function-10"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  針對 NodeJS Lambda 函數啟用重複使用連線的功能。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  `DOMAIN_ENDPOINT` (default)
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### Amazon Cognito
<a name="amazon-cognito-2"></a>
+  設定「使用者集區」的密碼策略。
+  強制執行「使用者集區」的進階安全模式。

### Amazon Elasticsearch Service
<a name="amazon-elasticsearch-service-1"></a>
+  針對彈性搜尋網域部署最佳實務 CloudWatch 警示。
+  使用 Cognito 使用者集區保護 Kibana 儀表板存取權。
+  使用 AWS 受管的 KMS 金鑰為彈性搜尋網域啟用伺服器端加密。
+  啟用 Elastisearch 網域的節點對節點加密。
+  為 Amazon ES 網域設定叢集。

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

![\[Diagram showing data flow between AWS Lambda, Amazon Athena, and identity verification.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-lambda-elasticsearch-kibana.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-lambda-彈性搜索-kibana](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-elasticsearch-kibana)  | 

# aws-lambda-3
<a name="aws-lambda-s3"></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\$1lambda\$1s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-lambda-s3  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdas3  | 

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

 此 AWS 解決方案建構實作連接到 Amazon S3 儲存貯體的 AWS Lambda函數。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { LambdaToS3 } from '@aws-solutions-constructs/aws-lambda-s3';

new LambdaToS3(this, 'LambdaToS3Pattern', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    }
});
```

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

```
new LambdaToS3(scope: Construct, id: string, props: LambdaToS3Props);
```

 *參數* 
+  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` 
+  提案[`LambdaToS3Props`](#pattern-construct-props-19) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，同時提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  現在的巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)  |  S3 存儲桶對象的現有實例。如果這是提供的，那麼還提供bucketProps是錯誤。 | 
|  水桶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  可選的使用者提供的屬性來覆寫儲存貯體的預設屬性。忽略existingBucketObj提供。 | 
|  儲存區權限？  |  string[]  |  可選的儲存貯體權限授與 Lambda 函數。可指定下列一或多個：Delete、Put、Read、ReadWrite、Write。 | 
|  是否存在 VPC？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  應該部署此模式的選用現有 VPC。在 VPC 中部署時，Lambda 函數將使用 VPC 中的 ENI 來存取網路資源，並且會在 Amazon SQS 的 VPC 中建立一個介面端點。如果提供了現有的 VPC，deployVpc屬性不能為true。這使用ec2.IVpc，以允許用戶端使用[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options)方法。 | 
|  部署 vPC？  |  boolean  |  是否建立新的 VPCvpcProps來部署此模式。將此設為true將部署最小的，最私有的 VPC 來運行該模式：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/aws-lambda-s3.html) 如果此屬性為true，然後existingVpc無法指定。預設為 false。 | 
|  VPCProps？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html)  |  可選的使用者提供的屬性，用於覆寫新 VPC 的預設屬性。enableDnsHostnames、enableDnsSupport、natGateways和subnetConfiguration是由模式設置的，因此此處提供的屬性的任何值都將被覆蓋。如果deployVpc不是true那麼這個屬性將被忽略。 | 
|  時段變數名稱？  |  string  |  為 Lambda 函數設定之 S3 儲存貯體環境變數的選擇性名稱。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  LambdaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  S3 儲存貯體？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由模式創建的 S3 存儲桶的實例。 | 
|  S3 記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由 S3 存儲桶模式創建的日誌存儲桶的實例。 | 
|  vpc？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  返回模式使用的 VPC 的實例（如果有的話）。這可能是由模式或提供給模式構造函數的 VPC 創建的 VPC。 | 

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

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

### AWS Lambda 功能
<a name="aws-lambda-function-11"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  針對 NodeJS Lambda 函數啟用重複使用連線的功能。
+  啟用 X-Ray 追蹤
+  設定環境變數：
  +  `S3_BUCKET_NAME` (default)
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### Amazon S3 儲存貯體
<a name="amazon-s3-bucket-4"></a>
+  設定 S3 儲存貯體的存取記錄。
+  使用 AWS 受管 KMS 金鑰啟用 S3 儲存貯體的伺服器端加密。
+  打開 S3 存儲桶的版本控制。
+  不允許公開存取 S3 儲存貯體。
+  刪除 CloudFormation 堆疊時保留 S3 桶。
+  強制加密傳輸中的資料。
+  套用生命週期規則，在 90 天後將非目前物件版本移至 Glacier 儲存區。

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

![\[AWS Lambda function interacting with Amazon S3 bucket, mediated by an IAM role.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-lambda-s3.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-lambda-3](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-s3)  | 

# aws-lambda 字符串參數
<a name="aws-lambda-ssmstringparameter"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1lambda\$1ssm\$1string\$1parameter  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-lambda-ssmstringparameter  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdassmstringparameter  | 

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

 此 AWS 解決方案建構以最低權限實作 AWS Lambda 函數和 AWS Systems Manager Parameter Store 字串參數。

 下面是 TypeScript 中的最小可部署模式定義：

```
const { LambdaToSsmstringparameterProps,  LambdaToSsmstringparameter } from '@aws-solutions-constructs/aws-lambda-ssmstringparameter';

const props: LambdaToSsmstringparameterProps = {
    lambdaFunctionProps: {
      runtime: lambda.Runtime.NODEJS_14_X,
      // This assumes a handler function in lib/lambda/index.js
      code: lambda.Code.fromAsset(`${__dirname}/lambda`),
      handler: 'index.handler'
    }, 
    stringParameterProps: { stringValue: "test-string-value" }
};

new LambdaToSsmstringparameter(this, 'test-lambda-ssmstringparameter-stack', props);
```

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

```
new LambdaToSsmstringparameter(scope: Construct, id: string, props: LambdaToSsmstringparameterProps);
```

 *參數* 
+  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` 
+  提案[`LambdaToSsmstringparameterProps`](#pattern-construct-props-43) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，同時提供這個和lambdaFunctionProps會造成錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj已提供。 | 
|  存在字符串參數？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ssm.StringParameter.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ssm.StringParameter.html)  |  SSM 字串參數物件的現有執行個體，同時提供這個和stringParameterProps會造成錯誤。 | 
|  字符串參數道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ssm.StringParameterProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ssm.StringParameterProps.html)  |  可選的使用者提供的道具來覆寫 SSM 字串參數的預設道具。如果existingStringParameterObj未設定，stringParameterProps是必要的。唯一支援[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ssm.StringParameterProps.html#type](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ssm.StringParameterProps.html#type)是[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ssm.ParameterType.html#string](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ssm.ParameterType.html#string)如果提供了不同的值，它將被覆蓋。 | 
|  字符串參數變量名稱？  |  string  |  為 Lambda 函數設定的 SSM 字串參數環境變數的選擇性名稱。 | 
|  是否存在 VPC？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  應該部署此模式的選用現有 VPC。在 VPC 中部署時，Lambda 函數將使用 VPC 中的 ENI 來存取網路資源，並且會在 VPC 中為 AWS Systems Manager 參數建立一個介面端點。如果提供了現有的 VPC，deployVpc屬性不能為true。這會使用ec2.IVpc，以允許用戶端使用[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options)方法。 | 
|  VPCProps？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html)  |  可選的使用者提供的屬性，用於覆寫新 VPC 的預設屬性。enableDnsHostnames、enableDnsSupport、natGateways和subnetConfiguration是由模式設置的，因此此處提供的屬性的任何值都將被覆蓋。如果deployVpc不是true那麼這個屬性將忽略。 | 
|  部署 vPC？  |  boolean  |  是否建立新的 VPC 基於vpcProps來部署此模式。將此設為true將部署最小的，最私有的 VPC 來運行該模式：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/aws-lambda-ssmstringparameter.html) 如果此屬性已設為true，然後existingVpc無法指定。預設為 false。 | 
|  字串參數權限？  |  string  |  要授與 Lambda 函數的選用 SSM 字串參數權限。可指定下列任一項：Read、ReadWrite。 | 

## 模式屬性
<a name="pattern-properties-43"></a>


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  Lambda Function  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  傳回lambda.Function由建構建立。 | 
|  StringParameter  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ssm.StringParameter.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ssm.StringParameter.html)  |  傳回ssm.StringParameter由建構建立。 | 
|  vpc？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  返回模式使用的 VPC 上的接口（如果有的話）。這可能是由模式或提供給模式構造函數的 VPC 創建的 VPC。 | 

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

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

### AWS Lambda 功能
<a name="aws-lambda-function-9"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  針對 NodeJS Lambda 函數啟用重複使用連線的功能。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  `SSM_STRING_PARAMETER_NAME` (default)
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### Amazon AWS AWS Systems Manager Parameter Store String
<a name="amazon-ssm-43"></a>
+  啟用相關聯的 AWS Lambda 函數的唯讀存取權。
+  使用提供的值建立新的 SSM 字串參數。
+  刪除 CloudFormation 堆疊時，請保留 SSM 字串參數。

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

![\[AWS Lambda logo connected to CloudFormation and AWSCloudWatch icons via arrows.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-lambda-ssmstringparameter.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-lambda-字符串參數](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-ssmstringparameter)  | 

# aws-lambda-區域分析點
<a name="aws-lambda-sagemakerendpoint"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1lambda\$1sagemakerendpoint  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-lambda-sagemakerendpoint  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdasagemakerendpoint  | 

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

 此 AWS 解決方案建構實作連接到 Amazon Sagemaker 終端節點的 AWS Lambda 函數。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { Duration } from '@aws-cdk/core';
import * as lambda from '@aws-cdk/aws-lambda';
import {
  LambdaToSagemakerEndpoint,
  LambdaToSagemakerEndpointProps,
} from '@aws-solutions-constructs/aws-lambda-sagemakerendpoint';

const constructProps: LambdaToSagemakerEndpointProps = {
  modelProps: {
    primaryContainer: {
      image: '{{AccountId}}.dkr.ecr.{{region}}.amazonaws.com/linear-learner:latest',
      modelDataUrl: 's3://{{bucket-name}}/{{prefix}}/model.tar.gz',
    },
  },
  lambdaFunctionProps: {
    runtime: lambda.Runtime.PYTHON_3_8,
    // This assumes a handler function in lib/lambda/index.py
    code: lambda.Code.fromAsset(`${__dirname}/lambda`),
    handler: 'index.handler',
    timeout: Duration.minutes(5),
    memorySize: 128,
  },
};

new LambdaToSagemakerEndpoint(this, 'LambdaToSagemakerEndpointPattern', constructProps);
```

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

```
new LambdaToSagemakerEndpoint(scope: Construct, id: string, props: LambdaToSagemakerEndpointProps);
```

 *參數* 
+  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` 
+  提案[`LambdaToSagemakerEndpointProps`](#pattern-construct-props-41) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會造成錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。 | 
|  現在薩格馬克倫波因托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnEndpoint.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnEndpoint.html)  |  要使用的選擇性現有 Sagemaker 登錄。同時提供這個和endpointProps會造成錯誤。 | 
|  模型道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnModelProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnModelProps.html) \$1 any  |  使用者提供的性質，以取代「草繪機模型」的預設性質。至少要modelProps.primaryContainer必須提供來創建一個模型。依預設，模式會建立具有最低所需權限的角色，但用戶端可以使用modelProps.executionRoleArn。 | 
|  端點配置道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnEndpointConfigProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnEndpointConfigProps.html)  |  可選的使用者提供的性質，用於覆寫 Sagemaker 端點組態的預設性質。 | 
|  端點道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnEndpointProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnEndpointProps.html)  |  可選的使用者提供的性質，用於取代「草繪器端點」的預設性質。 | 
|  是否存在 VPC？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  應該部署此建構的選用現有 VPC。在 VPC 中部署時，Lambda 函數和 Sagemaker 端點將使用 VPC 中的 ENI 來存取網路資源。將在亞馬遜 Sagemaker 運行時和 Amazon S3 VPC 端點的 VPC 中創建一個接口端點。如果提供了現有的 VPC，則deployVpc屬性不能為true。 | 
|  VPCProps？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html)  |  可選的使用者提供的屬性，用於覆寫新 VPC 的預設屬性。enableDnsHostnames、enableDnsSupport、natGateways和subnetConfiguration是由構造設置的，所以這裡提供的屬性的任何值都將被覆蓋。如果deployVpc不是true，則此屬性會忽略。 | 
|  部署 vPC？  |  boolean  |  是否建立新的 VPC 基於vpcProps來部署此模式。將此設為true將部署最小的，最私有的 VPC 來運行該模式：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/aws-lambda-sagemakerendpoint.html) 如果此屬性已設為true，然後existingVpc無法指定。預設為 false。 | 
|  薩格馬克倫聲音變數名稱？  |  string  |  為 Lambda 函數設定的 SageMaker 端點環境變數的可選名稱。 | 

## 模式屬性
<a name="pattern-properties-41"></a>


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  LambdFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  相模繪圖連接點  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnEndpoint.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnEndpoint.html)  |  傳回由樣式建立的「切割器端點」的例證。 | 
|  薩格馬克點配置？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnEndpointConfig.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnEndpointConfig.html)  |  返回由模式創建的 SageMaker EndpointConfig 的實例，如果existingSagemakerEndpointObj未提供。 | 
|  射影模型？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnModel.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sagemaker.CfnModel.html)  |  返回由圖案創建的 Sagemaker 模型的實例，如果existingSagemakerEndpointObj未提供。 | 
|  vpc？  |  ec2.IVpc  |  返回由模式創建的 VPC 的實例，如果deployVpc是true，或者如果existingVpc已提供。 | 

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

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

### AWS Lambda 功能
<a name="w23aab9d147c25b5"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  為 NodeJS Lambda 函數啟用具有持續作用的連線重複使用。
+  允許函數為「推論」呼叫「草繪器」端點。
+  配置函數以存取 VPC 中部署 Sagemaker 端點的資源。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  + `SAGEMAKER_ENDPOINT_NAME` (default)
  + `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### Amazon SagMaker 端點
<a name="w23aab9d147c25b7"></a>
+  配置有限的權限以創建 Sagemaker 資源。
+  部署「切割器」模型、端點設定和端點。
+  設定要在 VPC 中部署的 Sagemaker 端點。
+  部署 S3 VPC 端點和模具執行階段 VPC 介面。

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

![\[Diagram showing AWS Lambda connected to CloudWatch, SageMaker Endpoint, and IAM Roles.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-lambda-sagemakerendpoint.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案結構/aws-lambda-模擬點](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-sagemakerendpoint)  | 

# aws-lambda 秘密管理器
<a name="aws-lambda-secretsmanager"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1lambda\$1secretsmanager  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-lambda-secretsmanager  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdasecretsmanager  | 

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

 此 AWS 解決方案建構實作 AWS Lambda 函數和 AWS Secrets Manager 密碼，並具有最低特權權限。

 下面是 TypeScript 中的最小可部署模式定義：

```
const { LambdaToSecretsmanagerProps,  LambdaToSecretsmanager } from '@aws-solutions-constructs/aws-lambda-secretsmanager';

const props: LambdaToSecretsmanagerProps = {
    lambdaFunctionProps: {
      runtime: lambda.Runtime.NODEJS_14_X,
      // This assumes a handler function in lib/lambda/index.js
      code: lambda.Code.fromAsset(`${__dirname}/lambda`),
      handler: 'index.handler'
    },
};

new LambdaToSecretsmanager(this, 'test-lambda-secretsmanager-stack', props);
```

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

```
new LambdaToSecretsmanager(scope: Construct, id: string, props: LambdaToSecretsmanagerProps);
```

 *參數* 
+  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` 
+  提案[`LambdaToSecretsmanagerProps`](#pattern-construct-props-42) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  用戶提供的道具來覆蓋 Lambda 函數的默認道具。 | 
|  秘密道具  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.SecretProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.SecretProps.html)  |  可選的使用者提供的道具來覆寫 Secrets Manager 的預設道具。 | 
|  現在的秘密? |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.Secret.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.Secret.html)  |  Secrets Manager 對象的現有實例，如果這被設置，則secretProps會被忽略。 | 
|  格蘭特存取權？  |  boolean  |  Lambda 函數之密碼的選擇性寫入存取權限 (預設為唯讀)。 | 
|  秘密變數名稱？  |  string  |  為 Lambda 函數設定之 Secrets Manager 秘密環境變數的選擇性名稱。 | 
|  是否存在 VPC？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  應該部署此模式的選用現有 VPC。在 VPC 中部署時，Lambda 函數將使用 VPC 中的 ENI 來存取網路資源，並且會在 AWS Secrets Manager 的 VPC 中建立一個介面端點。如果提供了現有的 VPC，deployVpc屬性不能為true。這使用ec2.IVpc以允許用戶端提供存在於堆疊外部的 VPC，使用[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options)方法。 | 
|  虛擬電腦產品？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html)  |  可選的使用者提供的屬性，用於覆寫新 VPC 的預設屬性。enableDnsHostnames、enableDnsSupport、natGateways，以及subnetConfiguration是由模式設置的，因此此處提供的屬性的任何值都將被覆蓋。如果deployVpc不是true那麼這個屬性將被忽略。 | 
|  部署 vPC？  |  boolean  |  是否建立新的 VPC 基於vpcProps來部署這種模式。將此設為true將部署最小的，最私有的 VPC 來運行該模式：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/aws-lambda-secretsmanager.html) 如果此屬性為true，然後existingVpc無法指定。預設為 false。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  Lambda  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  傳回lambda.Function由建構建立。 | 
|  秘密  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.Secret.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.Secret.html)  |  傳回secretsmanager.Secret由建構建立。 | 
|  vpc？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  返回模式使用的 VPC 上的接口（如果有的話）。這可能是由模式或提供給模式構造函數的 VPC 創建的 VPC。 | 

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

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

### AWS Lambda 功能
<a name="aws-lambda-function-42"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  為 NodeJS Lambda 函數啟用具有持續作用的連線重複使用。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  （默認）秘密 \$1ARN 包含由 CDK 返回的秘密 ARN[秘書](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.Secret.html#secretarn)屬性
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### Amazon Secrets Manager 秘密
<a name="aws-secretsmanger-secret"></a>
+  為相關聯的 AWS Lambda 函數啟用唯讀存取 
+  使用帳戶和區域的預設 KMS 金鑰啟用伺服器端加密 
+  建立新密碼：
  + (預設) 隨機名稱
  + （默認）隨機值
+  刪除 CloudFormation 堆疊時保留秘密 

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

![\[Diagram showing AWS Lambda icon connecting to security and cloud search icons.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-lambda-secretsmanager.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案構造/aws-lambda-秘密管理器](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-secretsmanager)  | 

# aws-lambda-
<a name="aws-lambda-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\$1lambda\$1sns  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-lambda-sns  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdasns  | 

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

 此 AWS 解決方案建構實作連接到 Amazon SNS 主題的 AWS Lambda 函數。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { LambdaToSns, LambdaToSnsProps } from "@aws-solutions-constructs/aws-lambda-sns";

new LambdaToSns(this, 'test-lambda-sns', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    }
});
```

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

```
new LambdaToSns(scope: Construct, id: string, props: LambdaToSnsProps);
```

 *參數* 
+  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` 
+  提案[`LambdaToSnsProps`](#pattern-construct-props-20) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性，可覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj已提供。 | 
|  現在的托比科比？  |  [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 主題的預設屬性。 | 
|  是否存在 VPC？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  應該部署此模式的選用現有 VPC。在 VPC 中部署時，Lambda 函數將使用 VPC 中的 ENI 來存取網路資源，並且會在 Amazon SQS 的 VPC 中建立一個介面端點。如果提供了現有的 VPC，deployVpc屬性不能為true。這使用ec2.IVpc以允許用戶端提供存在於堆疊外部的 VPC，使用[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options)方法。 | 
|  部署 vPC？  |  boolean  |  是否建立新的 VPCvpcProps來部署這種模式。將此設為true將部署最小的，最私有的 VPC 來運行該模式：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/aws-lambda-sns.html) 如果此屬性為true，然後existingVpc無法指定。預設為 false。 | 
|  虛擬電腦產品？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html)  |  可選的使用者提供的屬性，用於覆寫新 VPC 的預設屬性。enableDnsHostnames、enableDnsSupport、natGateways和subnetConfiguration是由模式設置的，因此此處提供的屬性的任何值都將被覆蓋。如果deployVpc不是true那麼這個屬性將被忽略。 | 
|  主題環境變數名稱？  |  string  |  為 Lambda 函數設定的 SNS 主題 ARN 環境變數的選擇性名稱。 | 
|  主題名稱環境變數名稱？  |  string  |  為 Lambda 函數設定的 SNS 主題名稱環境變數的選擇性名稱。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  Lambda  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  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 主題的實例。 | 
|  vpc？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  返回模式使用的 VPC 的實例（如果有的話）。這可能是由模式或提供給模式構造函數的 VPC 創建的 VPC。 | 

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

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

### AWS Lambda 功能
<a name="aws-lambda-function-12"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  為 NodeJS Lambda 函數啟用具有持續作用的連線重複使用。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  `SNS_TOPIC_NAME` (default)
  +  `SNS_TOPIC_ARN` (default)
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

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

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

![\[AWS Lambda connected to Amazon Simple Notification Service with IAM role below Lambda.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-lambda-sns.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-lambda-s](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-sns)  | 

# aws-lambda-資料
<a name="aws-lambda-sqs"></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\$1lambda\$1sqs  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-lambda-sqs  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdasqs  | 

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

 此 AWS 解決方案建構實作連接到 Amazon SQS 佇列的 AWS Lambda 函數。

 下面是 TypeScript 中的最小可部署模式定義：

```
 import { LambdaToSqs, LambdaToSqsProps } from "@aws-solutions-constructs/aws-lambda-sqs";

 new LambdaToSqs(this, 'LambdaToSqsPattern', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    }
 });
```

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

```
 new LambdaToSqs(scope: Construct, id: string, props: LambdaToSqsProps);
```

 *參數* 
+  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` 
+  提案[`LambdaToSqsProps`](#pattern-construct-props-25) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  要使用的選用現有 Lambda 函數，而不是預設函數。同時提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性，可覆寫 Lambda 函數的預設屬性。 | 
|  是否存在佇列中？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  選擇性的現有 SQS 佇列，而不是預設佇列。同時提供這個和queueProps會導致錯誤。 | 
|  佇列道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  選擇性的使用者提供的特性，用來覆寫 SQS 佇列的預設特性。 | 
|  是否啟用佇列清除？  |  boolean  |  是否授與其他權限給 Lambda 函數，使其能夠清除 SQS 佇列。預設為 false。 | 
|  部署死亡佇列？  |  boolean  |  無論是建立輔助佇列做為無效字母佇列。預設為 true。 | 
|  死亡排隊道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  可選的使用者提供的道具來覆寫死信佇列的預設道具。只有在deployDeadLetterQueue屬性設為 true。 | 
|  maxReceiveCount  |  number  |  訊息移到無效字母佇列之前，需交付佇列的次數。預設為 15。 | 
|  是否存在 VPC？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  應該部署此模式的選用現有 VPC。部署到 VPC 時，Lambda 函數將使用 VPC 中的 ENI 來存取網路資源，並且會在 Amazon SQS 的 VPC 中建立一個介面端點。如果提供了現有的 VPC，deployVpc屬性不能為true。一個ec2.IVpc用來允許用戶端提供存在於堆疊外部的 VPC，使用[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options)方法。 | 
|  部署 vPC？  |  boolean  |  是否建立新的 VPC 基於vpcProps來部署這種模式。將此設為true將部署最小的，最私有的 VPC 來運行該模式：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/aws-lambda-sqs.html) 如果此屬性為true，然後existingVpc無法指定。預設為 false。 | 
|  虛擬電腦產品？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html)  |  可選的使用者提供的屬性，用於覆寫新 VPC 的預設屬性。enableDnsHostnames、enableDnsSupport、natGateways，以及subnetConfiguration是由模式設置的，因此此處提供的屬性的任何值都將被覆蓋。如果deployVpc不true，那麼此屬性將被忽略。 | 
|  佇列環境變數名稱？  |  string  |  為 Lambda 函數設定的 SQS 佇列 URL 環境變數的選擇性名稱。 | 

## 模式屬性
<a name="pattern-properties-25"></a>


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  死機隊列？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的死信隊列的實例，如果一個被部署。 | 
|  Lambda Function  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  平方  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的 SQS 隊列的實例。 | 
|  vpc？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  返回由模式創建或使用的 VPC 的實例（如果有的話）。這可能是由模式或提供給模式構造函數的 VPC 創建的 VPC。 | 

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

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

### AWS Lambda 功能
<a name="aws-lambda-function-25"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  為 NodeJS Lambda 函數啟用具有持續作用的連線重複使用。
+  允許函數只將訊息傳送至佇列 (可以使用`enableQueuePurge`屬性）。
+  啟用 X-Ray 追蹤
+  設定環境變數：
  +  `SQS_QUEUE_URL`
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### Amazon SQS 佇列
<a name="amazon-sqs-queue-25"></a>
+  為來源 SQS 佇列建立 SQS 無效字母佇列。
+  使用 AWS 受管 KMS 金鑰為來源 SQS 佇列啟用伺服器端加密。
+  強制加密傳輸中的資料。

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

![\[Icons representing cloud search, Lambda function, SQS queue, and DLQ in a workflow diagram.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-lambda-sqs.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-lambda-Q](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-sqs)  | 

# aw-拉姆達-Q-拉姆達
<a name="aws-lambda-sqs-lambda"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1lambda\$1sqs\$1lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-lambda-sqs-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdasqslambda  | 

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

 此 AWS 解決方案建構模式實作 (1) 設定為將訊息傳送到佇列的 AWS Lambda 函數；(2) Amazon SQS 佇列；以及 (3) 設定為使用佇列中訊息的 AWS Lambda 函數。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { LambdaToSqsToLambda, LambdaToSqsToLambdaProps } from "@aws-solutions-constructs/aws-lambda-sqs-lambda";

new LambdaToSqsToLambda(this, 'LambdaToSqsToLambdaPattern', {
    producerLambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/producer-function/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`),
        handler: 'index.handler'
    },
    consumerLambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/consumer-function/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`),
        handler: 'index.handler'
    }
});
```

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

```
new LambdaToSqsToLambda(scope: Construct, id: string, props: LambdaToSqsToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`LambdaToSqsToLambdaProps`](#pattern-construct-props-27) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在的生產商是蘭姆達布公司？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  選擇性的現有 Lambda 函數，用來取代傳送訊息至佇列的預設函數。同時提供這個和producerLambdaFunctionProps會導致錯誤。 | 
|  生產者拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性，可覆寫產生者 Lambda 函數的預設屬性。 | 
|  是否存在佇列中？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  選擇性的現有 SQS 佇列，而不是預設佇列。同時提供這個和queueProps會導致錯誤。 | 
|  佇列道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  選擇性的使用者提供的特性來覆寫 SQS 佇列的預設特性。同時提供這個和existingQueueObj會導致錯誤。 | 
|  部署死亡佇列？  |  boolean  |  無論建立輔助佇列做為無效字母佇列。預設為 true。 | 
|  死亡排隊道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  可選的使用者提供的道具來覆寫死信佇列的預設道具。只有在deployDeadLetterQueue屬性已設為true。 | 
|  maxReceiveCount？  |  number  |  訊息移到無效字母佇列之前，需交付佇列的次數。預設為 15。 | 
|  現在還有消費者拉姆達寶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  選用的現有 Lambda 函數，而不是用來從佇列中擷取/取用訊息的預設函數。同時提供這個和consumerLambdaFunctionProps會導致錯誤。 | 
|  消費者拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性，可覆寫取用者 Lambda 函數的預設屬性。 | 
|  佇列環境變數名稱？  |  string  |  為產生者 Lambda 函數設定的 SQS 佇列 URL 環境變數的選擇性名稱。 | 

## 模式屬性
<a name="pattern-properties-27"></a>


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  消費者拉姆達  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的消費者 Lambda 函數的實例。 | 
|  死機隊列？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的死信隊列的實例，如果一個被部署。 | 
|  生產商 LambDafer  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的生產者 Lambda 函數的實例。 | 
|  平方  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的 SQS 隊列的實例。 | 

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

 此構造的開箱即用實現（沒有任何覆蓋的屬性）將堅持以下默認值：

### AWS Lambda 函數
<a name="aws-lambda-function-27"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  啟用 NodeJS Lambda 函數的持續作用中重複使用連線。
+  啟用 X-Ray 追蹤
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### Amazon SQS 佇列
<a name="amazon-sqs-queue-27"></a>
+  為主佇列部署無效字母佇列。
+  使用 AWS 受管 KMS 金鑰為主佇列啟用伺服器端加密。
+  強制加密傳輸中的資料 

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

![\[Diagram showing cloud search, Lambda functions, queue, and DLQ components in AWS architecture.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-lambda-sqs-lambda.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aw-lambda-q-lambda](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-sqs-lambda)  | 

# aws-lambda 步驟函數
<a name="aws-lambda-step-function"></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\$1lambda\$1step\$1function  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-lambda-step-function  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdastepfunction  | 

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

 此 AWS 解決方案建構實作連接到 AWS 步驟函數的 AWS Lambda 函數。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { LambdaToStepFunction } from '@aws-solutions-constructs/aws-lambda-step-function';
import * as stepfunctions from '@aws-cdk/aws-stepfunctions';

const startState = new stepfunctions.Pass(this, 'StartState');

new LambdaToStepFunction(this, 'LambdaToStepFunctionPattern', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    },
    stateMachineProps: {
      definition: startState
    }
});
```

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

```
new LambdaToStepFunction(scope: Construct, id: string, props: LambdaToStepFunctionProps);
```

 *參數* 
+  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` 
+  提案[`LambdaToStepFunctionProps`](#pattern-construct-props-26) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  斯塔特阿奇內道具  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachineProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachineProps.html)  |  用戶為 SFN.Statemachine 提供的道具。 | 
|  創建雲端觀察器  |  boolean  |  是否要建立建議的警報。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  可選的使用者提供的道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 
|  系統環境變數名稱  |  string  |  為產生者 Lambda 函數設定的 Step Functions 狀態機環境變數的選擇性名稱。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  雲端觀察  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)  |  傳回模式建立的一或多個 CloudWatch Logs 警示的清單。 | 
|  LambDaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  StateMachine  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachine.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachine.html)  |  返回由模式創建的狀態機的實例。 | 
|  台北市內洛集團  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回狀態機器模式所建立之日誌群組的執行個體。 | 

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

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

### AWS Lambda 功能
<a name="aws-lambda-function-26"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  啟用 NodeJS Lambda 函數的持續作用中重複使用連線。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  `STATE_MACHINE_ARN` (default)
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

### AWS Step Functions 狀態機
<a name="amazon-sf-state-machine-26"></a>
+  為 AWS Step Functions 狀態機器部署最佳實務 CloudWatch 警示。

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

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


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


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

# 差異-3 蘭姆達
<a name="aws-s3-lambda"></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\$1s3\$1lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-s3-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.s3lambda  | 

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

 此 AWS 解決方案建構實作了連接到 AWS Lambda 函數的 Amazon S3 儲存貯體。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { S3ToLambdaProps, S3ToLambda } from '@aws-solutions-constructs/aws-s3-lambda';

new S3ToLambda(this, 'test-s3-lambda', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    },
});
```

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

```
new S3ToLambda(scope: Construct, id: string, props: S3ToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`S3ToLambdaProps`](#pattern-construct-props-21) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，提供這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  現在的巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  S3 桶對象的現有實例。如果這是提供的，那麼還提供bucketProps是錯誤。 | 
|  水桶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  可選的使用者提供的屬性來覆寫儲存貯體的預設屬性。忽略existingBucketObj提供。 | 
|  S3 活動推廣道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda-event-sources.S3EventSourceProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda-event-sources.S3EventSourceProps.html)  |  可選的使用者提供的道具，以覆寫 S3EventProp 的預設道具  | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  Lambda Function  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  S3 儲存貯體？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由模式創建的 S3 存儲桶的實例。 | 
|  S3 記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由 S3 存儲桶模式創建的日誌存儲桶的實例。 | 

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

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

### Amazon S3 儲存貯體
<a name="amazon-s3-bucket-5"></a>
+  設定 S3 儲存貯體的存取記錄。
+  使用 AWS 受管 KMS 金鑰啟用 S3 儲存貯體的伺服器端加密。
+  打開 S3 存儲桶的版本控制。
+  不允許公開存取 S3 儲存貯體。
+  刪除 CloudFormation 堆疊時保留 S3 桶。
+  強制加密傳輸中的資料。
+  套用生命週期規則，在 90 天後將非目前物件版本移至 Glacier 儲存區。

### AWS Lambda 功能
<a name="aws-lambda-function-13"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  為 NodeJS Lambda 函數啟用具有持續作用的連線重複使用。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

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

![\[Diagram showing data flow from S3 bucket to Lambda function to CloudSearch domain.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-s3-lambda.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aws-3 lambda](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-s3-lambda)  | 

# AWS-3-數據庫
<a name="aws-s3-sqs"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1s3\$1sqs  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-s3-sqs  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.s3sqs  | 

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

 此 AWS 解決方案建構實作了一個 Amazon S3 儲存貯體，該儲存貯體配置為將通知傳送到 Amazon SQS 佇列。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { S3ToSqs } from "@aws-solutions-constructs/aws-s3-sqs";

new S3ToSqs(stack, 'S3ToSQSPattern', {});
```

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

```
new S3ToSqs(scope: Construct, id: string, props: S3ToSqsProps);
```

 *參數* 
+  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` 
+  提案[`S3ToSqsProps`](#pattern-construct-props-39) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在的巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  S3 存儲桶對象的現有實例。如果這是提供的，那麼還提供bucketProps是錯誤。 | 
|  水桶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  可選的使用者提供的道具來覆寫 S3 儲存貯體的預設道具。 | 
|  三個活動類型？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.EventType.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.EventType.html)  |  將觸發通知的 S3 事件類型。預設為 s3.EventType.OBJECT\$1CREATED。 | 
|  S3 事件過濾器？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.NotificationKeyFilter.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.NotificationKeyFilter.html)  |  S3 物件索引鍵篩選規則，以判斷哪些物件會觸發此事件。如果未指定，則不會套用任何篩選規則。 | 
|  是否存在佇列中？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  選擇性的現有 SQS 佇列，而不是預設佇列。同時提供這個和queueProps會導致錯誤。如果 SQS 佇列已加密，則用於加密的 KMS 金鑰必須是客戶管理的 CMK。 | 
|  佇列道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  選擇性的使用者提供的特性，用來覆寫 SQS 佇列的預設特性。忽略existingQueueObj提供。 | 
|  死亡排隊道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  可選的使用者提供的道具來覆寫死信佇列的預設道具。只有在deployDeadLetterQueue屬性設為 true。 | 
|  部署死亡佇列？  |  boolean  |  無論建立次要佇列做為無效字母佇列。預設為 true。 | 
|  maxReceiveCount  |  number  |  訊息移到無效字母佇列之前，需交付佇列的次數。預設為 15。 | 
|  使用客戶管理的金鑰啟用加密？  |  boolean  |  是否使用 KMS 金鑰，由此 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-39"></a>


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  平方  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的 SQS 隊列的實例。 | 
|  死機隊列？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的死信隊列的實例，如果一個被部署。 | 
|  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)  |  返回由模式創建的加密密鑰的實例。 | 
|  S3 儲存貯體？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由模式創建的 S3 存儲桶的實例。 | 
|  S3 記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由 S3 存儲桶模式創建的日誌存儲桶的實例。 | 

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

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

### Amazon S3 儲存貯體
<a name="amazon-s3-bucket-39"></a>
+  設定 S3 儲存貯體的存取記錄 
+  使用 AWS 受管 KMS 金鑰啟用 S3 儲存貯體的伺服器端加密 
+  打開 S3 存儲桶的版本控制 
+  不允許公開存取 S3 儲存貯體 
+  刪除 CloudFormation 堆疊時保留 S3 桶 
+  強制加密傳輸中的資料 
+  套用生命週期規則，在 90 天後將非目前物件版本移至 Glacier 儲存空間

### Amazon SQS 佇列
<a name="aws-sqs-queue-39"></a>
+  設定 SQS 佇列的最低權限存取權限 
+  為來源 SQS 佇列建立 SQS 佇列 
+  使用客戶管理 KMS 金鑰為 SQS 佇列啟用伺服器端加密 
+  強制加密傳輸中的資料 

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

![\[Diagram showing Amazon Simple Notification Service connecting to Amazon Simple Queue Service and AWS Lambda.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-s3-sqs.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-結構/aws-3-](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-s3-sqs)  | 

# AWS-3 步驟函數
<a name="aws-s3-step-function"></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\$1s3\$1step\$1function  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-s3-step-function  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.s3stepfunction  | 

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

 此 AWS 解決方案建構實作了連接到 AWS 步驟函數的 Amazon S3 儲存貯體。

**注意**  
此構造使用亞馬遜 EventBridge（Amazon CloudWatch Events）來觸發 AWS Step Functions。EventBridge 更具彈性，但使用 S3 事件通知觸發 Step Functions 的延遲較少，並且更具成本效益。如果成本和/或延遲是一個問題，您應該考慮部署`aws-s3-lambda`和`aws-lambda-stepfunctions`來代替這個構造。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { S3ToStepFunction, S3ToStepFunctionProps } from '@aws-solutions-constructs/aws-s3-step-function';
import * as stepfunctions from '@aws-cdk/aws-stepfunctions';

const startState = new stepfunctions.Pass(this, 'StartState');

new S3ToStepFunction(this, 'test-s3-step-function-stack', {
    stateMachineProps: {
      definition: startState
    }
});
```

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

```
new S3ToStepFunction(scope: Construct, id: string, props: S3ToStepFunctionProps);
```

 *參數* 
+  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` 
+  提案[`S3ToStepFunctionProps`](#pattern-construct-props-22) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在的巴克托比？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)  |  S3 桶對象的現有實例。如果這是提供的，那麼還提供bucketProps是錯誤。 | 
|  水桶道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)  |  可選的使用者提供的屬性來覆寫儲存貯體的預設屬性。忽略existingBucketObj提供。 | 
|  斯塔特阿奇內道具  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachineProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachineProps.html)  |  可選的用戶提供的道具來覆蓋 SFN.Statemachine 的默認道具。 | 
|  事件道具？  |  [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)  |  可選的使用者提供的 EventruleProp 來覆寫預設值。 | 
|  部署雲端追蹤？  |  boolean  |  是否在 AWS CloudTrail 中部署追蹤以在 Amazon S3 中記錄 API 事件。預設為 true。 | 
|  創建雲端觀察器  |  boolean  |  是否要建立建議的警報。 | 
|  記錄群組道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  選用使用者提供的道具，用於覆寫 CloudWatch Logs 日誌群組的預設道具。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  CloudTrail  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudtrail.Trail.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudtrail.Trail.html)  |  返回由模式創建的 Cloudrail 軌跡的實例。 | 
|  雲軌道？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由用於存儲 Cloudrail 跟踪數據的模式創建的存儲桶的實例。 | 
|  雲端記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由 Cloudrail 跟踪使用的主存儲桶模式創建的日誌存儲桶的實例。 | 
|  CloudwatchAlims  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)  |  傳回模式建立的一或多個 CloudWatch Events 警示的清單。 | 
|  S3 儲存貯體？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由模式創建的 S3 存儲桶的實例。 | 
|  S3 記錄桶？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)  |  返回由 S3 存儲桶模式創建的日誌存儲桶的實例。 | 
|  StateMachine  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachine.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachine.html)  |  返回由模式創建的狀態機的實例。 | 
|  斯塔蒂內洛集團  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  傳回狀態機器模式所建立之日誌群組的執行個體。 | 

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

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

### Amazon S3 儲存貯體
<a name="amazon-s3-bucket-6"></a>
+  設定 S3 儲存貯體的存取記錄。
+  使用 AWS 受管 KMS 金鑰啟用 S3 儲存貯體的伺服器端加密。
+  打開 S3 存儲桶的版本控制。
+  不允許公開存取 S3 儲存貯體。
+  刪除 CloudFormation 堆疊時保留 S3 桶。
+  強制加密傳輸中的資料。
+  套用生命週期規則，在 90 天後將非目前物件版本移至 Glacier 儲存區。

### AWS CloudTrail
<a name="aws-cloudtrail"></a>
+  在 AWS CloudTrail 中配置追蹤，以在 Amazon S3 中記錄與建構建立的儲存貯體相關的 API 事件。

### Amazon CloudWatch Events 規則
<a name="amazon-cloudwatch-events-rule-2"></a>
+  授與最低權限權限給 CloudWatch 事件以觸發 Lambda 函數。

### AWS Step Function
<a name="aws-step-function-1"></a>
+  啟用 API Gateway 的 CloudWatch 記錄。
+  為步驟功能部署最佳實務 CloudWatch 警示。

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

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


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


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

# 差不多-蘭姆達
<a name="aws-sns-lambda"></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\$1sns\$1lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-sns-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.snslambda  | 

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

 此 AWS 解決方案建構實作連接到 AWS Lambda 函數的 Amazon SNS。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { SnsToLambda, SnsToLambdaProps } from "@aws-solutions-constructs/aws-sns-lambda";

new SnsToLambda(this, 'test-sns-lambda', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    }
});
```

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

```
new SnsToLambda(scope: Construct, id: string, props: SnsToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`SnsToLambdaProps`](#pattern-construct-props-23) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，同時提供了這個和lambdaFunctionProps會導致錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性，可覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  現在的托比科比？  |  [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 主題的預設屬性。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  Lambda FaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  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 主題的實例。 | 

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

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

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

### AWS Lambda 功能
<a name="aws-lambda-function-14"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  為 NodeJS Lambda 函數啟用具有持續作用的連線重複使用。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

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

![\[Diagram showing data flow between icons representing different cloud services or components.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-sns-lambda.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aws-南-蘭姆達](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-sns-lambda)  | 

# 反射-反射-反射
<a name="aws-sns-sqs"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](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\$1sns\$1sqs  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-sns-sqs  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.snssqs  | 

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

 此 AWS 解決方案建構實作連接到 Amazon SQS 佇列的 Amazon SNS 主題。

 下面是 TypeScript 中的最小可部署模式定義：

```
import { SnsToSqs, SnsToSqsProps } from "@aws-solutions-constructs/aws-sns-sqs";
import * as iam from '@aws-cdk/aws-iam';

const snsToSqsStack = new SnsToSqs(this, 'SnsToSqsPattern', {});

// 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: [ "*" ]
});

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

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

```
new SnsToSqs(scope: Construct, id: string, props: SnsToSqsProps);
```

 *參數* 
+  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` 
+  提案[`SnsToSqsProps`](#pattern-construct-props-28) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在的托比科比？  |  [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提供。 | 
|  是否存在佇列中？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  選擇性的現有 SQS 佇列，而不是預設佇列。同時提供這個和queueProps會導致錯誤。 | 
|  佇列道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  選擇性的使用者提供的特性來覆寫 SQS 佇列的預設特性。忽略existingQueueObj提供。 | 
|  部署死亡佇列？  |  boolean  |  無論建立次要佇列做為無效字母佇列。預設為 true。 | 
|  死亡排隊道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  可選的使用者提供的道具來覆寫死信佇列的預設道具。只有在deployDeadLetterQueue屬性會設為 true。 | 
|  maxReceiveCount？  |  number  |  訊息移到無效字母佇列之前，需交付佇列的次數。預設為 15。 | 
|  使用客戶管理的金鑰啟用加密？  |  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-28"></a>


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  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)  |  返回由模式創建的加密密鑰的實例。 | 
|  平方  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的 SQS 隊列的實例。 | 
|  死機隊列？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的死信隊列的實例，如果一個被部署。 | 

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

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

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

### Amazon SQS 佇列
<a name="aws-lambda-function-28"></a>
+  設定 SQS 佇列的最低權限存取權限。
+  為來源 SQS 佇列建立無效字母佇列。
+  使用客戶管理的 KMS 金鑰啟用 SQS 佇列的伺服器端加密。
+  強制加密傳輸中的資料。

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

![\[AWS 服務 diagram showing SNS, SQS, and Lambda interactions with queues and notifications.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-sns-sqs.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-結構/awssssss-](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-sns-sqs)  | 

# Aws-秒-蘭姆達
<a name="aws-sqs-lambda"></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\$1sqs\$1lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-sqs-lambda  | 
|  ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.sqslambda  | 

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

 此 AWS 解決方案建構實作連接到 AWS Lambda 函數的 Amazon SQS 佇列。

 下面是 TypeScript 中的最小可部署模式定義：

```
const { SqsToLambda } = require('@aws-solutions-constructs/aws-sqs-lambda');

new SqsToLambda(stack, 'SqsToLambdaPattern', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    }
});
```

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

```
new SqsToLambda(scope: Construct, id: string, props: SqsToLambdaProps);
```

 *參數* 
+  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` 
+  提案[`SqsToLambdaProps`](#pattern-construct-props-24) 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  現在還有蘭姆達伯？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda 函數對象的現有實例，同時提供這個和lambdaFunctionProps會造成錯誤。 | 
|  拉姆針灸道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  選用的使用者提供的屬性來覆寫 Lambda 函數的預設屬性。忽略existingLambdaObj提供。 | 
|  是否存在佇列中？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  選擇性的現有 SQS 佇列，而不是預設佇列。同時提供這個和queueProps會造成錯誤。 | 
|  佇列道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  選擇性的使用者提供的特性來覆寫 SQS 佇列的預設特性。忽略existingQueueObj提供。 | 
|  部署死亡佇列？  |  boolean  |  無論建立要做為無效字母佇列使用的輔助佇列。預設為 true。 | 
|  死亡排隊道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  可選的使用者提供的道具來覆寫死信佇列的預設道具。只有在deployDeadLetterQueue屬性設為 true。 | 
|  maxReceiveCount？  |  number  |  訊息移到無效字母佇列之前，需交付佇列的次數。預設為 15。 | 

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


|  **名稱**  |  **類型**  |  **描述**  | 
| --- | --- | --- | 
|  死機隊列？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的死信隊列的實例，如果一個被部署。 | 
|  LambDAFAULT  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  返回由模式創建的 Lambda 函數的實例。 | 
|  平方  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  返回由模式創建的 SQS 隊列的實例。 | 

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

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

### Amazon SQS 佇列
<a name="amazon-sqs-queue-1"></a>
+  為來源 SQS 佇列建立 SQS 佇列。
+  使用 AWS 受管 KMS 金鑰為來源 SQS 佇列啟用伺服器端加密。
+  強制加密傳輸中的資料。

### AWS Lambda 功能
<a name="aws-lambda-function-15"></a>
+  設定 Lambda 函數的有限權限存取 IAM 角色。
+  針對 NodeJS Lambda 函數啟用重複使用連線的功能。
+  啟用 X-Ray 追蹤。
+  設定環境變數：
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（對於節點 10.x 和更高版本的函數）

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

![\[Diagram showing Amazon Simple Queue Service connecting to AWS Lambda, which interacts with CloudWatch and a Role.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-sqs-lambda.png)


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


|  **要查看此模式的代碼，創建/查看問題和提取請求，以及更多：**  | 
| --- | 
|  ![\[Circular icon with a graduation cap symbol representing education or learning.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png)  |  [@aws-解決方案-構造/aws-q-lambda](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-sqs-lambda)  | 

# core
<a name="core"></a>

![\[Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/experimental.png)


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

 核心程式庫包含 AWS 解決方案建立區塊。它定義了其他 AWS 解決方案建構中使用的核心類別。

## AWS CDK 建構的預設屬性
<a name="default-properties-for-aws-cdk-constructs"></a>

 核心程式庫會為 AWS 解決方案建構所使用的 AWS CDK 建構設定預設屬性。

 例如，以下是 AWS 解決方案建構建立的 S3 儲存貯體建構的預設屬性片段。默認情況下，它將打開服務器端加密，存儲桶版本控制，阻止所有公共訪問並設置 S3 訪問日誌。

```
{
  encryption: s3.BucketEncryption.S3_MANAGED,
  versioned: true,
  blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL,
  removalPolicy: RemovalPolicy.RETAIN,
  serverAccessLogsBucket: loggingBucket
}
```

## 覆寫預設屬性
<a name="override-the-default-properties"></a>

 由 Core 庫設置的默認屬性可以被用戶提供的屬性覆蓋。例如，使用者可以覆寫 Amazon S3 區塊公用存取屬性以符合特定要求。

```
  const stack = new cdk.Stack();

  const props: CloudFrontToS3Props = {
    bucketProps: {
      blockPublicAccess: {
        blockPublicAcls: false,
        blockPublicPolicy: true,
        ignorePublicAcls: false,
        restrictPublicBuckets: true
      }
    }
  };

  new CloudFrontToS3(stack, 'test-cloudfront-s3', props);

  expect(stack).toHaveResource("AWS::S3::Bucket", {
    PublicAccessBlockConfiguration: {
      BlockPublicAcls: false,
      BlockPublicPolicy: true,
      IgnorePublicAcls: false,
      RestrictPublicBuckets: true
    },
  });
```

## 屬性覆寫警告
<a name="property-override-warnings"></a>

 當從核心庫的默認屬性被用戶提供的屬性覆蓋，構造將發出一個或多個警告消息到控制台突出顯示更改（S）。這些訊息旨在為使用者提供情境感知，並防止意外覆寫可能造成安全性風險。這些消息將在執行部署/構建相關命令時出現，包括`cdk deploy`、`cdk synth`、`npm test`、等 

 範例訊息：`AWS_CONSTRUCTS_WARNING: An override has been provided for the property: BillingMode. Default value: 'PAY_PER_REQUEST'. You provided: 'PROVISIONED'.`

### 切換覆寫警告
<a name="toggling-override-warnings"></a>

 覆寫警告訊息預設為啟用，但可以使用`overrideWarningsEnabled`殼層變數。
+  若要明確*關閉*覆寫警告，執行`export overrideWarningsEnabled=false`。
+  若要明確*開啟*覆寫警告，執行`export overrideWarningsEnabled=true`。
+  若要還原為預設值，請執行`unset overrideWarningsEnabled`。