本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 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 标头模板
工作方式
-
Amazon API Gateway 接收来自的传入 AS2 消息 AWS Transfer Family。
-
该请求被转发到 Lambda 函数。
-
Lambda 函数处理请求,根据需要添加或修改标头。
-
然后,修改后的请求会被转发到合作伙伴的 AS2 服务器。
-
来自合作伙伴服务器的响应将通过 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: 此参数用于命名模板创建的资源:无论它们是用于开发环境还是生产环境。有效值为 dev 和 prod。 -
PartnerHost: AS2 伙伴服务器的 IP 地址或主机名。 -
PartnerPort: AS2 伙伴服务器的端口号。如果未指定,则 HTTP 的默认值为 80,HTTPS 的默认值为 443。 -
PartnerPath: 伙伴服务器上 AS2 终端节点的路径 -
ProtocolType:用于 AS2 通信的协议:有效值为 HTTP 和 HTT PS。
有条件的资源
为了支持 HTTPS,模板会有条件地创建:
-
用于 CA 证书的 Lambda 层
-
Lambda 函数中特定于 HTTPS 的配置
部署和使用
使用 CloudFormation 模板自定义 AS2 HTTP 标头
-
在 https://console.aws.amazon.com/cloudformat
ion 上打开 AWS CloudFormation 控制台。 -
在左侧导航窗格中,选择堆栈。
-
选择创建堆栈,然后选择使用新资源(标准)。
-
在 “先决条件-准备模板” 部分,选择 “选择现有模板”。
-
复制此链接,即动态 HTTP 标头模板
,然后将其粘贴到 Amazon S3 网址字段中。 -
选择下一步。
-
在参数详细信息中填写您的信息。详情请参阅模板参数。
-
选择下一步。在配置堆栈选项页面上,再次选择下一步。
-
查看您正在创建的堆栈的详细信息,然后选择创建堆栈。
注意
在页面底部的能力下,您必须确认这 AWS CloudFormation 可能会创建 AWS Identity and Access Management (IAM) 资源。
部署此 AWS CloudFormation 堆栈后:
-
请注意堆栈输出中提供的 Amazon API Gateway 终端节点网址。
-
更新您的现有 AWS Transfer Family 连接器以使用这个新的 Amazon API Gateway 终端节点。
-
现在,该解决方案将处理 AS2 消息,根据配置添加或修改标头。
警告
仅修改主题标题或添加合作伙伴明确期望的标题。更改其他标头可能会导致传输失败。