

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

# aws-lambda 步进函数
<a name="aws-lambda-step-function"></a>

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


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

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


|  **语言**  |  **程序包**  | 
| --- | --- | 
|  ![](http://docs.aws.amazon.com/zh_cn/solutions/latest/constructs/images/python.png) Python  |  aws\_solutions\_constructs.aws\_lambda\_step\_function  | 
|  ![](http://docs.aws.amazon.com/zh_cn/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-lambda-step-function  | 
|  ![](http://docs.aws.amazon.com/zh_cn/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` 
+  props[`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会导致错误。 | 
|  Lambda 功能道具？  |  [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  |  是否创建推荐的 CloudWatch 警报。 | 
|  日志组道具？  |  [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>


|  **名称**  |  **类型**  |  **描述**  | 
| --- | --- | --- | 
|  CloudwatchAltms  |  [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 警报的列表。 | 
|  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 函数的实例。 | 
|  StatadeMachine  |  [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 角色。
+  为节点 JS Lambda 函数启用使用保持活动状态的连接重复使用。
+  启用 X-Ray 跟踪。
+  设置环境变量：
  +  `STATE_MACHINE_ARN` (默认值)
  +  `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>

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


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

[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/solutions/latest/constructs/aws-lambda-step-function.html)