

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

# 设置 AS2 配置
<a name="as2-example-tutorial"></a>

本教程介绍如何使用设置适用性声明 2 (AS2) 配置 AWS Transfer Family。完成此处描述的步骤后，您将拥有一 AS2台支持该服务器的服务器，可以接受来自示例交易伙伴的 AS2 消息。您还将有一个连接器，可用于向示例贸易伙伴发送 AS2 消息。

**注意**  
示例设置的某些部分使用 AWS Command Line Interface (AWS CLI)。如果您尚未安装 AWS CLI，请参阅*AWS Command Line Interface 用户指南 AWS CLI*中的[安装或更新最新版本](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)的。



1. 为自己和您的交易伙伴创建证书。如果您拥有可以使用的现有证书，则可跳过此部分。

   [步骤 1：为创建证书 AS2](#as2-create-certs) 中介绍了此过程。

1. 导入已在第 1 步中创建的证书。

   [第 2 步：将证书作为 Transfer Family 证书资源导入](#as2-import-certs-example) 中介绍了此过程。

1. 要设置您的交易伙伴，请创建本地配置文件和合作伙伴配置文件。

   [第 3 步：为您和您的贸易伙伴创建档案](#as2-create-profiles-example) 中介绍了此过程。

1. 创建使用该 AS2 协议的 AWS Transfer Family 服务器。或者，您可以向服务器添加弹性 IP 地址，使其面向互联网。

   [步骤 4：创建使用该 AS2 协议的 Transfer Family 服务器](#as2-example-server) 中介绍了此过程。
**注意**  
您必须仅为入站传输创建 Transfer Family 服务器。如果您只执行出站传输，则不需要 Transfer Family 服务器。

1. 在您和您的交易伙伴之间创建协议。

   [第 5 步：创建您与合作伙伴之间的协议](#as2-create-agreement-example) 中介绍了此过程。
**注意**  
您必须仅为入站传输创建协议。如果您只执行出站传输，则无需协议。

1. 在您和您的交易伙伴之间创建连接器。

   [第 6 步：创建您与合作伙伴之间的连接器](#as2-create-connector-example) 中介绍了此过程。
**注意**  
您必须仅为出站传输创建连接器。如果您仅执行入站传输，则不需要连接器。

1. 测试 AS2 文件交换。

   [第 7 步：使用 Transfer Famil AS2 y 测试文件交换情况](#as2-test-config) 中介绍了此过程。

完成这些步骤后，您可以执行以下操作：
+ 使用 Transfer AS2 Family `start-file-transfer` AWS Command Line Interface (AWS CLI) 命令将文件发送到启用远程功能的伙伴服务器。
+ 通过您的虚拟私有云 (VPC) 终端节点在端口 5080 上从 AS2支持远程功能的合作伙伴服务器接收文件。



## 步骤 1：为创建证书 AS2
<a name="as2-create-certs"></a>

 AS2 交易所双方都需要 X.509 证书。您可以按喜欢的任何方式创建这些证书。本主题介绍如何通过命令行使用 [OpenSSL](https://www.openssl.org/) 创建根证书，然后对从属证书进行签名。双方都必须生成自己的证书。

**注意**  
 AS2 证书的密钥长度必须至少为 2048 位，最多为 4096 位。

要与合作伙伴传输文件，请注意以下事项：
+ 您可以将证书附加到配置文件。证书包含公钥或私钥。
+ 您的交易伙伴将他们的公钥发送给您，而您则将您的公钥发送给他们。
+ 您的交易伙伴使用您的公钥对消息进行加密，并使用其私钥对消息进行签名。相反，您可以使用合作伙伴的公钥对消息进行加密，然后使用您的私钥对消息进行签名。
**注意**  
如果您更喜欢使用 GUI 管理密钥，[http://portecle.sourceforge.net/](http://portecle.sourceforge.net/) 则是您可以使用的一个选项。

**生成示例证书**
**重要**  
**不要将您的私钥发送给您的合作伙伴。**在此示例中，您为一方生成一组自签名的公钥和私钥。如果您打算同时充当两个交易伙伴进行测试，则可以重复这些说明以生成两组密钥：每个交易伙伴一组。在这种情况下，您无需生成两个根证书颁发机构 (CAs)。

1. 运行以下命令以生成带有 2048 位长度模数的 RSA 私有密钥。

   ```
   /usr/bin/openssl genrsa -out root-ca-key.pem 2048
   ```

1. 运行以下命令以使用您的 `root-ca-key.pem` 文件创建自签名证书。

   ```
   /usr/bin/openssl req \
   -x509 -new -nodes -sha256 \
   -days 1825 \
   -subj "/C=US/ST=MA/L=Boston/O=TransferFamilyCustomer/OU=IT-dept/CN=ROOTCA" \
   -key root-ca-key.pem \
   -out root-ca.pem
   ```

   `-subj` 参数由以下值组成。

     
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/as2-example-tutorial.html)

1. 为您的本地配置文件创建签名密钥和加密密钥。

   ```
   /usr/bin/openssl genrsa -out signing-key.pem 2048
   /usr/bin/openssl genrsa -out encryption-key.pem 2048
   ```
**注意**  
某些 AS2启用了 Open 的服务器（例如 Op AS2 en）要求您使用相同的证书进行签名和加密。在这种情况下，您可以为这两个目的导入相同的私钥和证书。为此，请运行以下命令而不是之前的两个命令：  

   ```
   /usr/bin/openssl genrsa -out signing-and-encryption-key.pem 2048
   ```

1. 运行以下命令创建证书签名请求 (CSRs)，供根密钥签名。

   ```
   /usr/bin/openssl req -new -key signing-key.pem -subj \
   "/C=US/ST=MA/L=Boston/O=TransferFamilyCustomer/OU=IT-dept/CN=Signer" -out signing-key-csr.pem
   ```

   ```
   /usr/bin/openssl req -new -key encryption-key.pem -subj \
   "/C=US/ST=MA/L=Boston/O=TransferFamilyCustomer/OU=IT-dept/CN=Encrypter" -out encryption-key-csr.pem
   ```

1. 接下来，必须创建一个 `signing-cert.conf` 文件和一个 `encryption-cert.conf` 文件。
   + 使用文本编辑器创建包含以下内容的 `signing-cert.conf` 文件：

     ```
     authorityKeyIdentifier=keyid,issuer
     keyUsage = digitalSignature, nonRepudiation
     ```
   + 使用文本编辑器创建包含以下内容的 `encryption-cert.conf` 文件：

     ```
     authorityKeyIdentifier=keyid,issuer
     keyUsage = dataEncipherment
     ```

1. 最后，您可以通过运行以下命令来创建签名证书。

   ```
   /usr/bin/openssl x509 -req -sha256 -CAcreateserial -days 1825 -in signing-key-csr.pem -out signing-cert.pem -CA \
   root-ca.pem -CAkey root-ca-key.pem -extfile signing-cert.conf
   ```

   ```
   /usr/bin/openssl x509 -req -sha256 -CAcreateserial -days 1825 -in encryption-key-csr.pem -out encryption-cert.pem \
   -CA root-ca.pem -CAkey root-ca-key.pem -extfile encryption-cert.conf
   ```

## 第 2 步：将证书作为 Transfer Family 证书资源导入
<a name="as2-import-certs-example"></a>

此过程介绍如何使用 AWS CLI导入证书。如果您想改用 Transfer Family 控制台，请参阅 [导入 AS2 证书](managing-as2-partners.md#configure-as2-certificate)。

要导入您在第 1 步中创建的签名和加密证书，请运行以下 `import-certificate` 命令。如果您使用相同的证书进行加密和签名，请两次导入相同的证书（一次是 `SIGNING` 用法，另一次是 `ENCRYPTION` 用法）。

**注意**  
 如果您的文件同时包含证书及其链，则只需使用`certificate`参数即可将该文件提供给`import-certificate`命令。例如：  

```
aws transfer import-certificate --usage ENCRYPTION --certificate file://combined-cert-and-chain-file.pem
```
如果您使用`certificate`参数上传证书及其链，请不要使用该`certificate-chain`参数。  
如果合并证书及其链，则密钥将使用传统的 PEM 标准进行格式化，其中包括每 64 个字符换行符 “\$1 n”。存储的证书在功能上与您上传的证书相同，唯一的区别是通过的`DescribeCertificate`响应 AWS CLI 将包含这些换行符。

```
aws transfer import-certificate --usage SIGNING --certificate file://signing-cert.pem \
            --private-key file://signing-key.pem --certificate-chain file://root-ca.pem
```

此命令返回您的签名 `CertificateId`。在下一节中，此证书 ID 被称为 `my-signing-cert-id`。

```
aws transfer import-certificate --usage ENCRYPTION --certificate file://encryption-cert.pem \
            --private-key file://encryption-key.pem --certificate-chain file://root-ca.pem
```

此命令返回您的加密信息 `CertificateId`。在下一节中，此证书 ID 被称为 `my-encrypt-cert-id`。

接下来，通过运行以下命令导入合作伙伴的加密和签名证书。

```
aws transfer import-certificate --usage ENCRYPTION --certificate file://partner-encryption-cert.pem \
--certificate-chain file://partner-root-ca.pem
```

此命令返回您的合作伙伴的加密信息 `CertificateId`。在下一节中，此证书 ID 被称为 `partner-encrypt-cert-id`。

```
aws transfer import-certificate --usage SIGNING --certificate file://partner-signing-cert.pem \
--certificate-chain file://partner-root-ca.pem
```

此命令返回您的合作伙伴的签名 `CertificateId`。在下一节中，此证书 ID 被称为 `partner-signing-cert-id`。

## 第 3 步：为您和您的贸易伙伴创建档案
<a name="as2-create-profiles-example"></a>

此过程说明如何使用创建 AS2 配置文件 AWS CLI。如果您想改用 Transfer Family 控制台，请参阅 [创建 AS2 个人资料](configure-as2-profile.md)。

通过运行以下命令创建您的本地 AS2 配置文件。此命令引用包含您的公钥和私钥的证书。

```
aws transfer create-profile --as2-id MYCORP --profile-type LOCAL --certificate-ids \
my-signing-cert-id my-encrypt-cert-id
```

此命令会返回您的配置文件 ID。在下一节中，此 ID 被称为 `my-profile-id`。

现在，通过运行以下命令来创建合作伙伴配置文件。此命令仅使用合作伙伴的公钥证书。要使用此命令，请将`user input placeholders`替换为您自己的信息；例如，您的合作伙伴的 AS2 姓名和证书 IDs。

```
aws transfer create-profile --as2-id PARTNER-COMPANY --profile-type PARTNER --certificate-ids \
partner-signing-cert-id partner-encrypt-cert-id
```

此命令会返回您的合作伙伴的配置文件 ID。在下一节中，此 ID 被称为 `partner-profile-id`。

**注意**  
在前面的命令中，*MYCORP*替换为您的组织*PARTNER-COMPANY*名称和贸易伙伴的组织名称。

## 步骤 4：创建使用该 AS2 协议的 Transfer Family 服务器
<a name="as2-example-server"></a>

此过程说明了如何使用 Transfer Family 创建 AS2启用了 Transfer Famil AWS CLI y 的服务器。

**注意**  
 许多示例步骤都使用从文件加载参数的命令。有关使用文件加载参数的更多详细信息，请参阅[如何从文件加载参数](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html)。

如果要改用控制台，请参阅 [使用 Tran AS2 sfer Family 控制台创建服务器](create-as2-transfer-server.md#create-server-as2-console)。

与创建 SFTP 或 FTPS AWS Transfer Family 服务器的方式类似，您可以使用 AS2命令的`--protocols AS2`参数创建启用了的服务器。`create-server` AWS CLI 目前，Transfer Family 仅支持 VPC 终端节点类型和带有该 AS2 协议的 Amazon S3 存储。

当您使用`create-server`命令为 AS2 Transfer Family 创建已启用的服务器时，系统会自动为您创建一个 VPC 终端节点。此端点公开 TCP 端口 5080，以便它可以接受 AS2 消息。

如果您想向互联网公开您的 VPC 端点，可以将弹性 IP 地址与您的 VPC 端点关联起来。

要使用这些说明，您需要以下内容：
+ 您的 VPC 的 ID（例如 **vpc-abcdef01**）。
+ ****您的 IDs VPC 子网（例如 sub **net-abcdef01、01、subnet-021345ab**）。subnet-subnet-abcdef****
+ **允许贸易伙伴通过 TCP 端口 5080 传入流量的一个或多个 IDs 安全组（例如 sg-1234567890abcdef0 和 **sg-abcdef0123** 4567890）。**
+ （可选）您要与 VPC 端点关联的弹性 IP 地址。
+ 如果您的交易伙伴未通过 VPN 连接到您的 VPC，则需要互联网网关。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[使用互联网网关连接到互联网](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)。

**创建 AS2启用了的服务器**

1. 运行如下命令。将每个 `user input placeholder` 替换为您自己的信息。

   ```
   aws transfer create-server --endpoint-type VPC \
   --endpoint-details VpcId=vpc-abcdef01,SubnetIds=subnet-abcdef01,subnet-abcdef01,subnet-
   021345ab,SecurityGroupIds=sg-abcdef01234567890,sg-1234567890abcdef0 --protocols AS2 \
   --protocol-details As2Transports=HTTP
   ```

1. （可选）您可以将 VPC 端点设为公有。您只能通过 `update-server` 操作将弹性 IP 地址附加到 Transfer Family 服务器。以下命令停止服务器，使用弹性 IP 地址对其进行更新，然后重新启动服务器。

   ```
   aws transfer stop-server --server-id your-server-id
   ```

   ```
   aws transfer update-server --server-id your-server-id --endpoint-details \
   AddressAllocationIds=eipalloc-abcdef01234567890,eipalloc-1234567890abcdef0,eipalloc-abcd012345ccccccc
   ```

   ```
   aws transfer start-server --server-id your-server-id
   ```

   此 `start-server` 命令会自动为您创建 DNS 记录，其中包含您的服务器的公有 IP 地址。要让您的交易伙伴访问服务器，您需要向他们提供以下信息。在这种情况下，`your-region` 指的是您的 AWS 区域。

   `s-your-server-id.server.transfer.your-region.amazonaws.com`

   您提供给交易伙伴的完整 URL 如下：

   `http://s-your-server-id.server.transfer.your-region.amazonaws.com:5080`

1. 要测试 AS2启用了您的服务器是否可以访问，请使用以下命令。确保可以通过您的 VPC 端点的私有 DNS 地址或公有端点（如果您将弹性 IP 地址与端点相关联）访问您的服务器。

   如果您的服务器配置正确，则连接将成功。但是，您将收到 HTTP 状态码 400（错误请求）响应，因为您没有发送有效的 AS2 消息。
   + 对于公共端点（如果您在上一步中关联了弹性 IP 地址），请运行以下命令，替换您的服务器 ID 和区域。

     ```
     curl -vv -X POST http://s-your-server-id.transfer.your-region.amazonaws.com:5080
     ```
   + 如果您在 VPC 内进行连接，请运行以下命令查找 VPC 端点的私有 DNS 名称。

     ```
     aws transfer describe-server --server-id s-your-server-id
     ```

     此 `describe-server` 命令在 `VpcEndpointId` 参数中返回您的 VPC 端点 ID。使用此值运行以下命令。

     ```
     aws ec2 describe-vpc-endpoints --vpc-endpoint-ids vpce-your-vpc-endpoint-id
     ```

     此 `describe-vpc-endpoints` 命令返回一个包含多个 `DnsName` 参数的 `DNSEntries` 数组。在以下命令中使用区域 DNS 名称（不包括可用区的名称）。

     ```
     curl -vv -X POST http://vpce-your-vpce.vpce-svc-your-vpce-svc.your-region.vpce.amazonaws.com:5080
     ```

     例如，以下命令显示了上一个命令中占位符的示例值。

     ```
     curl -vv -X POST http://vpce-0123456789abcdefg-fghij123.vpce-svc-11111aaaa2222bbbb.us-east-1.vpce.amazonaws.com:5080
     ```

1. （可选）配置日志记录角色。Transfer Family 以结构化 JSON 格式将发送和接收的消息状态记录到亚马逊 CloudWatch 日志中。要让 Transfer Family 能够访问您账户中的 CloudWatch 日志，您必须在服务器上配置日志角色。

   创建信任`transfer.amazonaws.com`的 AWS Identity and Access Management (IAM) 角色并附加`AWSTransferLoggingAccess`托管策略。有关更多信息，请参阅 [创建 IAM 角色和策略](requirements-roles.md)。请注意您刚创建的 IAM 角色的 Amazon 资源名称 (ARN)，然后通过运行以下 `update-server` 命令将其与服务器关联：

   ```
   aws transfer update-server --server-id your-server-id --logging-role arn:aws:iam::your-account-id:role/logging-role-name
   ```
**注意**  
尽管日志记录角色是可选的，但我们强烈建议您对其进行设置，以便您可以查看消息的状态并对配置问题进行故障排除。

## 第 5 步：创建您与合作伙伴之间的协议
<a name="as2-create-agreement-example"></a>

此过程说明了如何使用创建 AS2 协议 AWS CLI。如果您想改用 Transfer Family 控制台，请参阅 [创建 AS2 协议](create-as2-transfer-server.md#as2-agreements)。

协议汇集了两个配置文件（本地和合作伙伴）、它们的证书以及允许双方之间入站 AS2 传输的服务器配置。您可以通过运行以下命令来列出您的项目。

```
aws transfer list-profiles --profile-type LOCAL
aws transfer list-profiles --profile-type PARTNER
aws transfer list-servers
```

此步骤需要一个 Amazon S3 存储桶和 IAM 角色，该角色 read/write 可以访问和访问存储桶。创建此角色的说明与 Transfer Family SFTP、FTP 和 FTPS 协议的说明相同，可在 [创建 IAM 角色和策略](requirements-roles.md) 中找到。

要创建协议，您需要以下项目：
+ 用于存储 AS2文件的 Amazon S3 存储桶名称（以及对象前缀，如果已指定）。我们建议您为不同的文件类型指定单独的目录。
+ 具有存储桶访问权限的 IAM 角色的 ARN
+ 您的 Transfer Family 服务器 ID
+ 您的配置文件 ID 和合作伙伴的配置文件 ID

将以下代码保存到文件中，例如`agreementDetails.json`。将每个 `user input placeholder` 替换为您自己的信息。

```
{
    "Description": "ExampleAgreementName",
    "ServerId": "your-server-id",
    "LocalProfileId": "your-profile-id",
    "PartnerProfileId": "your-partner-profile-id",
    "AccessRole": "arn:aws:iam::111111111111:role/TransferAS2AccessRole",
    "Status": "ACTIVE",    
    "PreserveFilename": "ENABLED",
    "EnforceMessageSigning": "ENABLED",
    "CustomDirectories": {
        "FailedFilesDirectory": "/amzn-s3-demo-destination-bucket/AS2-failed",
        "MdnFilesDirectory": "/amzn-s3-demo-destination-bucket/AS2-mdn",
        "PayloadFilesDirectory": "/amzn-s3-demo-destination-bucket/AS2-payload",
        "StatusFilesDirectory": "/amzn-s3-demo-destination-bucket/AS2-status",
        "TemporaryFilesDirectory": "/amzn-s3-demo-destination-bucket/AS2-temp"
    }
}
```

**注意**  
要使用单个基本目录而不是单独的目录，请从之前的代码中删除该`CustomDirectories`行及其各个目录行，然后改用以下参数：  
`"BaseDirectory": "/amzn-s3-demo-destination-bucket/AS2-inbox`"  
不要同时使用基本目录和单独的目录参数，否则命令将失败。

然后运行以下命令。

```
aws transfer create-agreement --cli-input-json file://agreementDetails.json
```

如果成功，此命令将返回协议的 ID。然后，您可以使用以下命令查看协议的详细信息。

```
aws transfer describe-agreement --agreement-id agreement-id --server-id your-server-id
```

## 第 6 步：创建您与合作伙伴之间的连接器
<a name="as2-create-connector-example"></a>

此过程说明如何使用创建 AS2 连接器 AWS CLI。如果您想改用 Transfer Family 控制台，请参阅 [配置 AS2 连接器](configure-as2-connector.md)。

您可以使用 `StartFileTransfer` API 操作通过连接器将存储在 Amazon S3 中的文件发送到贸易伙伴的 AS2 终端节点。您可以通过运行以下命令找到之前创建的配置文件。

```
aws transfer list-profiles
```

创建连接器时，必须提供合作伙伴的 AS2 服务器 URL。将以下文本复制到名为 `testAS2Config.json` 的文件中。

```
{
"Compression": "ZLIB",
"EncryptionAlgorithm": "AES256_CBC",
"LocalProfileId": "your-profile-id",
"MdnResponse": "SYNC",
"MdnSigningAlgorithm": "DEFAULT",
"MessageSubject": "Your Message Subject",
"PartnerProfileId": "partner-profile-id",
"PreserveContentType": "FALSE",
"SigningAlgorithm": "SHA256"
}
```

**注意**  
对于`EncryptionAlgorithm`，除非必须支持需要该`DES_EDE3_CBC`算法的旧版客户端，否则不要指定算法，因为该算法是一种弱加密算法。

然后运行以下命令以创建连接器。

```
aws transfer create-connector --url "http://partner-as2-server-url" \
--access-role your-IAM-role-for-bucket-access \
--logging-role arn:aws:iam::your-account-id:role/service-role/AWSTransferLoggingAccess \
--as2-config file:///path/to/testAS2Config.json
```

## 第 7 步：使用 Transfer Famil AS2 y 测试文件交换情况
<a name="as2-test-config"></a>

### 从您的交易伙伴那里接收文件
<a name="as2-receive-file"></a>

如果您将公有弹性 IP 地址与 VPC 端点相关联，Transfer Family 会自动创建包含您的公有 IP 地址的 DNS 名称。子域名是您的 AWS Transfer Family 服务器 ID（格式为`s-1234567890abcdef0`）。采用以下格式向交易伙伴提供您的服务器 URL。

```
http://s-1234567890abcdef0.server.transfer.us-east-1.amazonaws.com:5080
```

如果您没有将公有弹性 IP 地址与 VPC 终端节点相关联，请查找 VPC 终端节点的主机名，该终端节点可以在端口 5080 上通过 HTTP POST 接受来自贸易伙伴的 AS2 消息。要检索 VPC 端点详细信息，请使用以下命令。

```
aws transfer describe-server --server-id s-1234567890abcdef0
```

例如，假设前面的命令返回 VPC 端点 ID `vpce-1234abcd5678efghi`。然后，您可以使用以下命令检索 DNS 名称。

```
aws ec2 describe-vpc-endpoints --vpc-endpoint-ids vpce-1234abcd5678efghi
```

此命令返回运行以下命令所需的 VPC 端点的所有详细信息。

DNS 名称列在 `DnsEntries` 数组中。您的交易伙伴必须在您的 VPC 内才能访问您的 VPC 端点（例如通过 AWS PrivateLink 或 VPN）。采用以下格式向您的合作伙伴提供您的 VPC 端点 URL。

```
http://vpce-your-vpce-id.vpce-svc-your-vpce-svc-id.your-region.vpce.amazonaws.com:5080
```

例如，以下 URL 显示了前面命令中占位符的示例值。

```
http://vpce-0123456789abcdefg-fghij123.vpce-svc-11111aaaa2222bbbb.us-east-1.vpce.amazonaws.com:5080
```

在此示例中，成功的传输存储在您在 [第 5 步：创建您与合作伙伴之间的协议](#as2-create-agreement-example) 中指定的 `base-directory` 参数中指定的位置。如果我们成功接收名为 `myfile1.txt` 和 `myfile2.txt` 的文件，则这些文件将存储为 `/path-defined-in-the-agreement/processed/original_filename.messageId.original_extension`。在这里，文件存储为 `/amzn-s3-demo-destination-bucket/AS2-inbox/processed/myfile1.messageId.txt` 和 `/amzn-s3-demo-destination-bucket/AS2-inbox/processed/myfile2.messageId.txt`。

如果您在创建 Transfer Family 服务器时配置了日志角色，则还可以查看 CloudWatch 日志中的 AS2 消息状态。

### 向您的交易伙伴发送文件
<a name="as2-send-file"></a>

您可以使用 Transfer Family 通过引用连接器 ID 和文件路径来发送 AS2 消息，如以下 `start-file-transfer` AWS Command Line Interface (AWS CLI) 命令所示：

```
aws transfer start-file-transfer --connector-id c-1234567890abcdef0 \
--send-file-paths "/amzn-s3-demo-source-bucket/myfile1.txt" "/amzn-s3-demo-source-bucket/myfile2.txt"
```

要获取连接器详细信息，请运行以下命令：

```
aws transfer list-connectors
```

该`list-connectors`命令返回连接器 IDs URLs、以及连接器的 Amazon 资源名称 (ARNs)。

要返回特定连接器的属性，请使用要使用的 ID 运行以下命令：

```
aws transfer describe-connector --connector-id your-connector-id
```

该`describe-connector`命令返回连接器的所有属性，包括其 URL、角色、配置文件、邮件处置通知 (MDNs)、标签和监控指标。

您可以通过查看 JSON 和 MDN 文件来确认合作伙伴已成功接收文件。这些文件是根据 [文件名和位置](send-as2-messages.md#file-names-as2) 中描述的约定命名的。如果您在创建连接器时配置了日志记录角色，则还可以检查 CloudWatch 日志中的 AS2 消息状态。