将工作流导出到 IaC 模板 - AWS Step Functions

将工作流导出到 IaC 模板

借助 AWS Step Functions 控制台,您可以导出保存的工作流并以 AWS CloudFormation 或 AWS SAM(SAM)模板形式下载。对于支持 AWS 基础设施编辑器 的 AWS 区域,还可以将工作流导出到基础设施编辑器并导航到基础设施编辑器控制台,您可以在控制台中继续处理新生成的模板。

模板配置选项

此功能提供以下选项。如果您选择导出并下载 IaC 模板文件,则控制台会显示适用于所保存状态机的选项以供选择。如果您要导出到基础设施编辑器,Step Functions 控制台会自动实施适用于状态机的配置。

  • 包括控制台代表您创建的 IAM 角色 – 此选项可导出执行角色策略。它在模板中构造一个 IAM 角色并将其附加到状态机资源。仅当状态机具有由控制台创建的执行角色时,此选项才适用。

  • 包括 CloudWatch 日志组 – 在模板中构造一个 CloudWatch 日志组并将其附加到状态机资源。仅当状态机附有 CloudWatch 日志组且日志级别设置为 OFF 时,此选项才适用。

  • 将资源引用替换为 DefinitionSubstitutions – 此选项为以下组件生成 DefinitionSubstitutions

    • 分布式 Map S3 字段。

    • Activity 资源。导出内容包括 CloudFormation 模板中适用于任何 Run Activity 任务的 Activity 资源。导出还提供 DefinitionSubstitutions,用于引用所创建的 Activity 资源。

    • 所有服务集成的有效载荷字段中的任何 ARNS3URI

    • ARNS3URI 字段外,导出还会为其他常用的服务集成有效载荷字段生成 DefinitionSubstitutions。具体的服务集成如下:

      • athena:startQueryExecution

      • batch:submitJob

      • dynamodb:getItem, dynamodb:updateItem, dynamodb:updateItem, dynamodb:deleteItem

      • ecs:runTask

      • glue:startJobRun

      • http:invoke

      • lambda:invoke

      • sns:publish

      • sqs:sendMessage

      • states:startExecution

导出并下载工作流的 IaC 模板

将工作流导出到 IaC 模板文件
  1. 打开 Step Functions 控制台并选择要使用的状态机。继续执行下一步操作之前,请务必先保存对状态机所做的任何更改。

  2. 操作菜单中选择导出到 CloudFormation 或 SAM 模板

  3. 在出现的对话框中,对于类型,选择 SAMCloudFormation

    • 如果选择了 CloudFormation 模板,则接下来选择 JSONYAML 文件格式。

    • 如果选择了 SAM 模板,则不会显示任何格式选项。SAM 模板默认采用 YAML 文件格式。

  4. 展开其他配置。默认情况下,所有选项均已选中。查看并更新 IaC 模板的选项选择。上一部分(标题为模板配置选项)详细介绍了这些选项。

    如果某个选项不适用于您的特定工作流,则该选项将不会显示在对话框中。

  5. 选择下载,导出并下载生成的 IaC 模板文件。

将工作流直接导出到 AWS 基础设施编辑器

将工作流导出到 Infrastructure Composer
  1. 打开 Step Functions 控制台并选择要使用的状态机。继续执行下一步操作之前,请务必先保存对状态机所做的任何更改。

  2. 操作菜单中选择导出到基础设施编辑器

  3. 此时将显示导出到基础设施编辑器对话框。可以使用传输存储桶名称字段中显示的默认名称,也可以输入新名称。Amazon S3 存储桶的名称必须全局唯一,并遵守存储桶命名规则

  4. 选择确认并创建项目,将工作流导出到基础设施编辑器。

  5. 要在基础设施编辑器中保存项目和工作流定义,请激活本地同步模式

注意

如果您之前使用过导出到基础设施编辑器功能并使用默认名称创建了 Amazon S3 存储桶,Step Functions 可以重复使用该存储桶(如果它仍然存在)。接受对话框中的默认存储桶名称以重复使用现有存储桶。

Amazon S3 传输存储桶配置

Step Functions 为传输您的工作流而创建的 Amazon S3 存储桶会使用 AES 256 加密标准自动加密对象。Step Functions 还将存储桶配置为使用存储桶拥有者条件,以确保只有您的 AWS 账户 能向存储桶添加对象。

默认存储桶名称使用前缀 states-templates、10 位字母数字字符串以及您创建工作流所在的 AWS 区域:states-templates-amzn-s3-demo-bucket-us-east-1。为避免给您的 AWS 账户 增加额外费用,建议在完成将工作流导出到基础设施编辑器后立即删除 Amazon S3 存储桶。

标准 Amazon S3 定价适用。

所需的权限

要将此 Step Functions 导出功能与基础设施编辑器结合使用,您需要一定的权限才能下载 AWS SAM 模板并将模板配置写入 Amazon S3。

要下载 AWS SAM 模板,您必须拥有使用以下 API 操作的权限:

要让 Step Functions 将您的函数配置写入 Amazon S3,您必须拥有使用以下 API 操作的权限:

如果无法将函数的配置导出到基础设施编辑器,请检查账户是否具有这些操作所需的权限。