

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

# AWS-3 步驟函數
<a name="aws-s3-step-function"></a>

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


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

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


|  **語言**  |  **套件**  | 
| --- | --- | 
|  ![](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/python.png) Python  |  aws\_solutions\_constructs.aws\_s3\_step\_function  | 
|  ![](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/typescript.png) 打字稿  |  @aws-solutions-constructs/aws-s3-step-function  | 
|  ![](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>

![](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/aws-s3-step-function.png)


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


<table>
<thead>
  <tr><th colspan="2"> 要查看此模式的代碼，創建/查看問題和提取請求，以及更多： </th></tr>
</thead>
<tbody>
  <tr><td> ![](http://docs.aws.amazon.com/zh_tw/solutions/latest/constructs/images/GitHub-Mark-32px.png) </td><td> [@aws-解決方案-構造/aws-3 步驟函數](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-s3-step-function) </td></tr>
</tbody>
</table>
