为 AS2 消息自定义 HTTP 标头 - AWS Transfer Family

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

为 AS2 消息自定义 HTTP 标头

向贸易伙伴发送 AS2 消息时,您可能需要自定义 HTTP 标头以满足特定要求或增强与合作伙伴 AS2 服务器配置的兼容性。此 AWS CloudFormation 模板创建了一个基础架构,用于为通过发送的 AS2 消息启用自定义 HTTP 标头 AWS Transfer Family。它设置了充当代理的 Amazon API Gateway 和 Lambda 函数,允许动态修改交易伙伴 AS2 服务器所需的标头。

使用此模板执行以下操作:

  • 向出站 AS2 消息添加自定义 HTTP 标头

  • 使用自定义值覆盖默认标题值

    重要

    覆盖默认标头值时要小心,因为这可能会导致发送失败:需要一些 AS2 标头。

  • 确保与具有特定标题要求的贸易伙伴兼容

模板概述

该模板创建了以下主要组件:

  • 用于处理和转发消息的 Lambda 函数 AS2

  • 用于公开 Lambda 函数的亚马逊 API Gateway

  • Lambda 函数的 IAM 角色和权限

  • 支持 HTTPS 的条件资源

模板文件可在此处获得:动态 HTTP 标头模板

工作方式

  1. Amazon API Gateway 接收来自的传入 AS2 消息 AWS Transfer Family。

  2. 该请求被转发到 Lambda 函数。

  3. Lambda 函数处理请求,根据需要添加或修改标头。

  4. 然后,修改后的请求会被转发到合作伙伴的 AS2 服务器。

  5. 来自合作伙伴服务器的响应将通过 Lambda 和 Amazon API Gateway 返回到。 AWS Transfer Family

主要功能

  • 动态标题修改:允许自定义主题标题和添加其他必需的标题。

  • P@@ rotocol Support:可同时使用 HTTP 和 HTTPS 协议。

  • 灵活配置:允许指定合作伙伴主机、端口和路径。

实施详情

该模板实现了以下关键组件:

Lambda 函数

该解决方案的核心是一个 Node.js Lambda 函数,该函数:

  • 接收来自亚马逊 API Gateway 的请求

  • 根据配置和传入的请求数据修改标头

  • 将修改后的请求转发到合作伙伴的服务器 AS2

  • 同时处理 HTTP 和 HTTPS 协议

  • 包括错误处理和日志记录

Amazon API Gateway

HTTP API 设置为:

  • 接收传入的 AS2 消息

  • 将请求路由到 Lambda 函数

  • 将回复返回到 AWS Transfer Family

模板参数

按如下方式输入模板参数信息。请注意,所有这些参数都是字符串。

  • Environment: 此参数用于命名模板创建的资源:无论它们是用于开发环境还是生产环境。有效值为 devprod

  • PartnerHost: AS2 伙伴服务器的 IP 地址或主机名。

  • PartnerPort: AS2 伙伴服务器的端口号。如果未指定,则 HTTP 的默认值为 80,HTTPS 的默认值为 443。

  • PartnerPath: 伙伴服务器上 AS2 终端节点的路径

  • ProtocolType:用于 AS2 通信的协议:有效值为 HTTP 和 HTT PS

有条件的资源

为了支持 HTTPS,模板会有条件地创建:

  • 用于 CA 证书的 Lambda 层

  • Lambda 函数中特定于 HTTPS 的配置

部署和使用

使用 CloudFormation 模板自定义 AS2 HTTP 标头
  1. https://console.aws.amazon.com/cloudformat ion 上打开 AWS CloudFormation 控制台。

  2. 在左侧导航窗格中,选择堆栈

  3. 选择创建堆栈,然后选择使用新资源(标准)

  4. 在 “先决条件-准备模板” 部分,选择 “选择现有模板”。

  5. 复制此链接,即动态 HTTP 标头模板,然后将其粘贴到 Amazon S3 网址字段中。

  6. 选择下一步

  7. 在参数详细信息中填写您的信息。详情请参阅模板参数

  8. 选择下一步。在配置堆栈选项页面上,再次选择下一步

  9. 查看您正在创建的堆栈的详细信息,然后选择创建堆栈

    注意

    在页面底部的能力下,您必须确认这 AWS CloudFormation 可能会创建 AWS Identity and Access Management (IAM) 资源。

部署此 AWS CloudFormation 堆栈后:

  1. 请注意堆栈输出中提供的 Amazon API Gateway 终端节点网址。

  2. 更新您的现有 AWS Transfer Family 连接器以使用这个新的 Amazon API Gateway 终端节点。

  3. 现在,该解决方案将处理 AS2 消息,根据配置添加或修改标头。

警告

仅修改主题标题或添加合作伙伴明确期望的标题。更改其他标头可能会导致传输失败。