

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

# 创建 AS2 服务器
<a name="create-as2-transfer-server"></a>

本主题提供使用控制台或 CloudFormation 模板创 AS2-enabled 建 Transfer Family 服务器的说明。有关端到端示例的 AS2 配置，请参阅 [设置 AS2 配置](as2-example-tutorial.md)。创建 AS2 服务器后，可以向服务器添加协议。

1. [导入 AS2 证书](managing-as2-partners.md#configure-as2-certificate)

1. [创建 AS2 配置文件](configure-as2-profile.md)

1. 创建 AS2 服务器

1. [创建 AS2 协议](#as2-agreements)

1. [配置 AS2 连接器](configure-as2-connector.md)

**Topics**
+ [使用 Transfer Family 控制台创建 AS2 服务器](#create-server-as2-console)
+ [使用模板创建演示 Transfer Family AS2 堆栈](#as2-cfn-demo-template)
+ [创建 AS2 协议](#as2-agreements)

## 使用 Transfer Family 控制台创建 AS2 服务器
<a name="create-server-as2-console"></a>

此过程说明了如何使用 Transfer Family 控制台创建 AS2-enabled 服务器。如果要 AWS CLI 改用，请参阅[步骤 4：创建使用 AS2 协议的 Transfer Family 服务器](as2-example-tutorial.md#as2-example-server)。

**注意**  
您可以将文件处理工作流程附加到使用 AS2 协议的 Transfer Family 服务器：但是，AS2 消息不执行附加到服务器的工作流程。

**创建 AS2-enabled 服务器**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在左侧的导航窗格中，选择**服务器**，然后选择**创建服务器**。

1. 在**选择协议**页面上，选择 **AS2（适用性声明 2）**，然后选择**下一步**。

1. 在**选择身份提供商**页面上，选择**下一步**。
**注意**  
对于 AS2，您无法选择身份提供商，因为 AS2 协议不支持基本身份验证。相反，您可以通过虚拟私有云 (VPC) 安全组控制访问权限。

1. 在**选择端点**页面上，执行以下操作：  
![控制台屏幕截图显示了选择端点页面，已选择 VPC 托管。](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/create-server-choose-endpoint-vpc-internal.png)

   1. 对于**端点类型**，选择托管服务器端点的 **VPC 托管**。有关设置 VPC-hosted 终端节点的信息，请参阅[在虚拟私有云中创建服务器](create-server-in-vpc.md)。
**注意**  
AS2 协议不支持可公开访问的端点。要使您的 VPC 端点可通过互联网访问，请在**访问权限**下选择**面向互联网**，然后提供您的弹性 IP 地址。

   1. 对于**访问权限**，请选择下列选项之一：
      + **内部** — 选择此选项可在您的 VPC 和 VPC-connected环境中提供访问权限，例如本地数据中心 Direct Connect 或 VPN。
      + **面向互联网** — 选择此选项可通过互联网以及您的 VPC 和 VPC-connected 环境（例如本地数据中心 Direct Connect 或 VPN）提供访问权限。

        如果您选择**面向互联网**，请在出现提示时提供您的弹性 IP 地址。

   1. 对于 **VPC**，选择现有 VPC 或选择**创建 VPC** 以创建新的 VPC。

   1. 对于**启用 FIPS**，请清除**启用 FIPS 端点**复选框。
**注意**  
FIPS-enabled AS2 协议不支持端点。

   1. 选择**下一步**。

1. 在**选择域**页面上，选择 **Amazon S3** 以使用所选协议将文件作为对象存储和访问。

   选择**下一步**。

1. 在**配置其他详细信息**页面上，选择所需的设置。
**注意**  
如果您正在与 AS2 一起配置任何其他协议，则所有其他详细设置都适用。但是，对于 AS2 协议，唯一适用的设置是**CloudWatch 日志**和**标签**部分中的设置。  
尽管设置 CloudWatch 日志记录角色是可选的，但我们强烈建议您对其进行设置，以便您可以查看消息状态并解决配置问题。

1. 在**查看并创建**页面上，查看您的选择以确保它们正确无误。
   + 如果要编辑任何设置，请选择要更改步骤旁边的**编辑**。
**注意**  
如果您编辑某个步骤，我们建议您在选择编辑的步骤之后查看每个步骤。
   + 如果没有任何更改，请选择**创建服务器**来创建您的服务器。您将转至如下所示的**服务器**页面，其中列出了您的新服务器。

     您的新服务器状态更改为**在线**可能需要几分钟时间。到时候，您的服务器可以执行用户的文件操作。

## 使用模板创建演示 Transfer Family AS2 堆栈
<a name="as2-cfn-demo-template"></a>

我们提供了一个独立的 CloudFormation 模板来快速创建 Transfer Fam AS2-enabled ily 服务器。该模板为服务器配置公有 Amazon VPC 端点、证书、本地和合作伙伴配置文件、协议和连接器。

基本 AS2 服务器模板创建以下资源：
+ 带有 VPC 终端节点的 Tr AS2-enabled ansfer Family 服务器
+ 带有证书的本地和合作伙伴 AS2 档案
+ 个人资料之间的协议
+ 用于文件存储的 Amazon S3 存储桶
+ 所需的 IAM 角色和策略
+ CloudWatch 日志配置

 在使用此模板之前，请注意以下事项：
+ 如果您根据此模板创建堆栈，则需为使用的 AWS 资源计费。
+ 该模板会创建多个证书并将其放入其中 AWS Secrets Manager 以安全地存储它们。如果您愿意，您可以从 Secrets Manager 中删除这些证书，因为使用此服务需要付费。在 Secrets Manager 中删除这些证书不会将其从 Transfer Family 服务器中删除。因此，演示堆栈的功能不受影响。但是，对于要在生产 AS2 服务器上使用的证书，您可能需要使用 Secrets Manager 来管理和定期轮换存储的证书。
+ 我们建议您仅将模板用作基础，主要用于演示目的。如果您想在生产环境中使用此演示堆栈，我们建议您修改模板的 YAML 代码以创建更强大的堆栈。例如，创建生产级证书，并创建可在生产中使用的 AWS Lambda 函数。

**使用 CloudFormation 模板创建 Tr AS2-enabled ansfer Family 服务器**

1. 打开 CloudFormation 控制台，网址为[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)。

1. 在左侧导航窗格中，选择**堆栈**。

1. 选择**创建堆栈**，然后选择**使用新资源（标准）**。

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

1. 复制此链接，即 [AS2 演示模板](https://s3.amazonaws.com/aws-transfer-resources/as2-templates/aws-transfer-as2-basic.template.yml)，然后将其粘贴到 **Amazon S3 URL** 字段中。

1. 选择**下一步**。

1. 在**指定堆栈详细信息**页面上，命名您的堆栈，然后指定以下参数：
   + 在 **AS2** 下，输入**本地 AS2 ID** 和**合作伙伴 AS2 ID** 的值，或者分别接受默认值 `local` 和 `partner`。
   + 在**网络**下，输入**安全组入口 CIDR IP** 的值，或接受默认值 `0.0.0.0/0`。
**注意**  
此值采用 CIDR 格式，指定允许哪些 IP 地址可传入流量到 AS2 服务器。默认值 `0.0.0.0/0` 允许所有 IP 地址。
   + 在**常规**下，输入**前缀**的值，或接受默认值 `transfer-as2`。此前缀位于堆栈创建的任何资源名称之前。例如，如果您使用默认前缀，则会将您的 Amazon S3 存储桶命名为 `transfer-as2-{{amzn-s3-demo-bucket}}`。

1. 选择**下一步**。在**配置堆栈选项**页面上，再次选择**下一步**。

1. 查看您正在创建的堆栈的详细信息，然后选择**创建堆栈**。
**注意**  
在页面底部的**能力**下，您必须确认这 CloudFormation 可能会创建 AWS Identity and Access Management (IAM) 资源。

创建堆栈后，您可以使用 AWS Command Line Interface (AWS CLI) 将测试 AS2 消息从伙伴服务器发送到本地 Transfer Family 服务器。将创建用于发送测试消息的示例 AWS CLI 命令以及堆栈中的所有其他资源。

要使用此示例命令，请转到堆栈的 “**输出**” 选项卡，然后复制**TransferExampleAs2Command**。然后，您可以使用 AWS CLI运行该命令。如果您尚未安装 AWS CLI，请参阅*AWS Command Line Interface 用户指南 AWS CLI*中的[安装或更新最新版本](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)的。

此示例命令采用以下格式：

```
aws s3api put-object --bucket {{amzn-s3-demo-bucket}} --key test.txt && aws transfer start-file-transfer --region {{aws-region}} --connector-id {{TransferConnectorId}} --send-file-paths /{{amzn-s3-demo-bucket}}/test.txt
```

**注意**  
此命令的版本包含堆栈中 `{{amzn-s3-demo-bucket}}` 和 `{{TransferConnectorId}}` 资源的实际值。

此示例命令由两个单独的命令组成，这两个命令使用 `&&` 字符串链接在一起。

第一个命令在您的存储桶中创建一个新的空文本文件：

```
aws s3api put-object --bucket {{amzn-s3-demo-bucket}} --key test.txt
```

然后，第二个命令使用连接器将文件从合作伙伴配置文件发送到本地配置文件。Transfer Family 服务器已设置协议，允许本地配置文件接受来自合作伙伴配置文件的消息。

```
aws transfer start-file-transfer --region {{aws-region}} --connector-id {{TransferConnectorId}} --send-file-paths /{{amzn-s3-demo-bucket}}/test.txt
```

运行命令后，您可以转到您的 Amazon S3 存储桶 (`{{amzn-s3-demo-bucket}}`) 并查看其内容。如果命令成功，您应看到存储桶中有以下对象：
+ `processed/` – 此文件夹包含一个 JSON 文件，该文件描述传输的文件和 MDN 响应。
+ `processing/` – 此文件夹暂时包含正在处理的文件，但在传输完成后，此文件夹应为空。
+ `{{server-id}}/` – 此文件夹根据您的 Transfer Family 服务器 ID 命名。它包含 `from-{{partner}}`（此文件夹根据合作伙伴的 AS2 ID 动态命名），其本身包含 `failed/`、`processed/` 和 `processing/` 文件夹。`/{{server-id}}/from-{{partner}}/processed/` 文件夹包含传输的文本文件的副本以及相应的 JSON 和 MDN 文件。
+ `test.txt` – 此对象是传输的（空）文件。

## 创建 AS2 协议
<a name="as2-agreements"></a>

协议与 Transfer Family 服务器相关联。它们为使用 AS2 协议使用 Transfer Family 交换消息或文件的交易伙伴以及*入站*传输（将 AS2 文件从合作伙伴拥有的外部源发送到 Transfer Family 服务器）提供了详细信息。

此步骤说明了如何使用 Transfer Family 控制台创建 AS2 协议。如果要 AWS CLI 改用，请参阅[第 5 步：创建您与合作伙伴之间的协议](as2-example-tutorial.md#as2-create-agreement-example)。

**要为 Transfer Family 服务器创建协议**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在左侧导航窗格中，选择**服务器**，然后选择使用 AS2 协议的服务器。

   或者，只要您至少有一台使用 AS2 协议的 Transfer Family 服务器，请从 **AS2 贸易伙伴**菜单中选择 “**协议” 以接收消息**。然后，在**创建协议**屏幕中，选择要将此协议关联到的 AS2 服务器。

1. 在服务器详细信息页面上，向下滚动到**协议**部分。

1. 选择**添加协议**。

1. 填写协议参数，如下所示：

   1. 在**协议配置**部分中，输入描述性名称。确保您可以通过协议名称来识别协议的目的。此外，还要设置协议的**状态**：**活动**（默认选中）或**非活动**。

   1. 在**通信配置**部分，选择本地配置文件和合作伙伴配置文件。此外，还要选择是否强制执行消息签名。
      + 默认情况下，“**强制消息签名**” 处于启用状态，这意味着 Transfer Family 会拒绝您的交易伙伴为此协议发送的未签名消息。
      + 清除此设置可允许 Transfer Family 接受交易伙伴为本协议发送的未签名消息。

   1. 在**收件箱目录配置**部分，提供以下信息。
      + 确定是否选择**指定单独的目录来存储 AS2 消息、MDN 文件和 JSON 状态文件**。
        + 如果选择此选项，则可以为负载文件、失败文件、MDN 文件、状态文件和临时文件指定单独的位置。
        + 如果清除此选项，则所有 AS2 文件都将进入您为基目录指定的位置。
      + 对于 **S3 存储桶**，请选择一个 Amazon S3 存储桶。
      + 在 **P** refix 中，您可以输入用于在存储桶中存储文件的前缀（文件夹）。

        例如，如果您**amzn-s3-demo-bucket**为存储桶和**incoming**前缀输入，则您的 AS2 文件将保存到该文件`/amzn-s3-demo-bucket/incoming`夹。
      + 对于 **AWS IAM 角色**，请选择可以访问您指定的存储桶的角色。
      + 在 “**保留文件名**” 中，选择是否为传入 AS2 邮件负载保留原始文件名。
        + 如果您选择此设置，则在将文件保存到 Amazon S3 中时，您的交易伙伴提供的文件名将被保留。
        + 如果清除此设置，则在 Transfer Family 保存文件时，会调整文件名，如中所述[文件名和位置](send-as2-messages.md#file-names-as2)。

   1. （可选）在**标签**部分中，添加标签。

   1. 输入协议的所有信息后，选择**创建协议**。

新协议显示在服务器详细信息页面的**协议**部分。