aws-s3 步骤函数 - AWS 解决方案构造

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

aws-s3 步骤函数

所有类都处于积极开发之中,并且在任何未来版本中都会受到非向后兼容的更改或删除。这些不受语义版本模型。这意味着,虽然您可以使用它们,但在升级到此软件包的较新版本时,您可能需要更新源代码。

注意: 为确保正确的功能,您项目中的 AWS 解决方案构造软件包和 AWS CDK 包必须是相同的版本。

语言 程序包
Python
aws_solutions_constructs.aws_s3_step_function
TypeScript
@aws-solutions-constructs/aws-s3-step-function
Java
software.amazon.awsconstructs.services.s3stepfunction

Overview

此 AWS 解决方案构造实现了连接到 AWS 步骤函数的 Amazon S3 存储桶。

注意

此构造使用亚马逊 EventBridge(Amazon CloudWatch Events)来触发 AWS Step Functions。EventBridge 更加灵活,但使用 S3 事件通知触发 Step Functions 的延迟更少,而且更具成本效益。如果成本和/或延迟是一个问题,则应考虑部署aws-s3-lambdaaws-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

new S3ToStepFunction(scope: Construct, id: string, props: S3ToStepFunctionProps);

参数

模式构建道具

名称 类型 描述
现有的存储桶吗? s3.IBucket S3 存储桶对象的现有实例。如果提供了这一点,那么还提供bucketProps是一个错误。
桶道具? s3.BucketProps 用户提供的可选属性,用于覆盖存储桶的默认属性。忽略的是existingBucketObj提供。
国家道具 sfn.StateMachineProps 可选用户提供的道具来覆盖 SFN.Statemachine 的默认道具。
事件道具? events.RuleProps 可选用户提供的事件 Props 来覆盖默认值。
部署云跟踪? boolean 是否在 AWS CloudTrail 中部署跟踪以在 Amazon S3 中记录 API 事件。默认值为 true
创造云监视图 boolean 是否创建推荐的 CloudWatch 警报。
日志组道具? logs.LogGroupProps 用户提供的可选道具,用于覆盖 CloudWatch Logs 日志组的默认道具。

模式属性

名称 类型 描述
CloudTrail? cloudtrail.Trail 返回由模式创建的 Cloudrail 跟踪的实例。
云行道桶? s3.Bucket 返回由模式创建的用于存储 Cloudrail 跟踪数据的存储桶实例。
云跟踪记录存储桶? s3.Bucket 返回由 Cloudrail 跟踪使用的主存储桶模式创建的日志记录桶实例。
CloudwatchAltms cloudwatch.Alarm[] 返回模式创建的一个或多个 CloudWatch 警报的列表。
S3Bucket s3.Bucket 返回模式创建的 S3 存储桶的实例。
S3 记录桶? s3.Bucket 返回由模式为 S3 存储桶创建的日志记录存储桶的实例。
StadeMachine sfn.StateMachine 返回由模式创建的状态机的实例。
国家机械学组 logs.LogGroup 返回由状态机模式创建的日志组的实例。

默认设置

没有任何覆盖的此模式的开箱即用实现将设置以下默认值:

Amazon S3 存储桶

  • 配置 S3 存储桶的访问日志记录。

  • 使用 AWS 托管 KMS 密钥为 S3 存储桶启用服务器端加密。

  • 启用 S3 存储桶的版本控制。

  • 不允许 S3 存储桶的公共访问。

  • 删除 CloudFormation 堆栈时保留 S3 存储桶。

  • 实施传输中数据加密。

  • 应用生命周期规则在 90 天后将非当前对象版本移动到 Glacier 存储。

AWS CloudTrail

  • 在 AWS CloudTrail 中配置跟踪,以在 Amazon S3 中记录与构造创建的存储桶相关的 API 事件。

Amazon CloudWatch Events

  • 向 CloudWatch 事件授予最低权限以触发 Lambda 函数。

AWS Step Function

  • 为 API Gateway 启用 CloudWatch 日志记录。

  • 为步骤功能部署最佳实践 CloudWatch 警报。

Architecture

GitHub

要查看此模式的代码、创建/查看问题和拉取请求等,请执行以下操作:
@aws-解决方案结构/aws-S3 步骤函数