解决工作流程问题 - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

解决工作流程问题

本节介绍托管工作流程问题的可能解决方案。

对托管工作流程问题进行故障排除

本节介绍以下工作流程问题的可能解决方案。

使用 Amazon 解决与工作流程相关的错误 CloudWatch

描述

如果您的工作流程出现问题,可以使用 Amazon CloudWatch 来调查原因。

原因

可能有多种原因。使用 Amazon CloudWatch 日志进行调查。

解决方案

Transfer Family 会将工作流程执行状态发送到 CloudWatch 日志中。 CloudWatch 日志中可能会出现以下类型的工作流程错误:

  • "type": "StepErrored"

  • "type": "ExecutionErrored"

  • "type": "ExecutionThrottled"

  • "Service failure on starting workflow"

您可以使用不同的筛选器和模式语法来筛选工作流程的执行日志。例如,您可以在日志中创建日志过滤器,以捕获包含该ExecutionErrored消息的工作流程执行日志。 CloudWatch 有关详细信息,请参阅 Amazon Log CloudWatch s 用户指南中的使用订阅实时处理日志数据以及筛选和模式语法

StepErrored

2021-10-29T12:57:26.272-05:00 {"type":"StepErrored","details":{"errorType":"BAD_REQUEST","errorMessage":"Cannot tag Efs file","stepType":"TAG","stepName":"successful_tag_step"}, "workflowId":"w-abcdef01234567890","executionId":"1234abcd-56ef-78gh-90ij-1234klmno567", "transferDetails":{"serverId":"s-1234567890abcdef0","username":"lhr","sessionId":"1234567890abcdef0"}

此处,StepErrored 表示工作流程中的某个步骤产生了错误。在单个工作流程中,您可以配置多个步骤。此错误会告诉您错误发生在哪个步骤中,并提供错误消息。在此特定示例中,该步骤配置为标记文件;但是,不支持在 Amazon EFS 文件系统中标记文件,因此该步骤生成了一处错误。

ExecutionErrored

2021-10-29T12:57:26.618-05:00 {"type":"ExecutionErrored","details":{},"workflowId":"w-w-abcdef01234567890", "executionId":"1234abcd-56ef-78gh-90ij-1234klmno567","transferDetails":{"serverId":"s-1234567890abcdef0", "username":"lhr","sessionId":"1234567890abcdef0"}}

当工作流程无法执行任何步骤时,它会生成 ExecutionErrored 消息。例如,如果您在给定工作流程中配置了单个步骤,并且该步骤无法执行,则整个工作流程将失败。

Executionthrottled

如果工作流程的触发速度超过系统所能支持的速度,则执行受到限制。此日志消息表明您必须降低工作流程的执行速度。如果您无法降低工作流程执行率,请通过 Contact 联系 Amazon Web Services 支持 。 Amazon

启动工作流程时服务失败

无论何时从服务器上移除工作流程并用新的工作流程替换它,或者更新服务器配置(这会影响工作流程的执行角色),都必须等待大约 10 分钟才能执行新的工作流程。Transfer Family 服务器会缓存工作流程细节,服务器需要 10 分钟才能刷新其缓存。

此外,您必须注销所有活动的 SFTP 会话,然后等待 10 分钟重新登录才能看到更改。

对工作流程复制错误进行故障排除

描述

如果您正在执行的工作流程中包含复制已上传文件的步骤,则可能会遇到以下错误:

{ "type": "StepErrored", "details": { "errorType": "BAD_REQUEST", "errorMessage": "Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: request-ID; S3 Extended Request ID: request-ID Proxy: null)", "stepType": "COPY", "stepName": "copy-step-name" }, "workflowId": "workflow-ID", "executionId": "execution-ID", "transferDetails": { "serverId": "server-ID", "username": "user-name", "sessionId": "session-ID" } }

原因

源文件位于与目标存储桶不同 Amazon Web Services 区域 的 Amazon S3 存储桶中。

解决方案

如果您正在执行包含复制步骤的工作流程,请确保源存储桶和目标存储桶位于同一 Amazon Web Services 区域存储桶中。

对工作流程解密问题进行故障排除

本节介绍以下加密工作流程问题的可能解决方案。

解决匿名收件人加密问题

描述

处理某些加密文件时,您的解密工作流程会失败,但可以处理其他加密文件。

原因

文件可能是在没有指定收件人的情况下加密的(匿名加密),这使得工作流程很难确定使用哪个密钥进行解密。

解决方案

始终使用-r参数对非匿名收件人进行文件加密。例如:

gpg -e -r user@example.com --openpgp file.txt

要检查文件是使用特定收件人加密还是匿名加密,请使用以下--list-packets命令:

gpg --list-packets file.txt.gpg

此命令显示 GPG 加密文件的数据包结构,而不对其内容进行解密。查找包含收件人信息的输出,例如:

:pubkey enc packet: version 3, algo 1, keyid 1A2B3C4D5E6F7G8H

如果您看到 keyid 信息,则表示该文件已针对特定收件人进行了加密。如果缺少此信息,则该文件可能已被匿名加密,这可能会导致 Transfer Family 工作流程中的解密失败。

您也可以使用此命令来验证:

  • 使用了哪些加密算法

  • 压缩方法(如果有)

  • 创建时间戳

要查看 GPG 安装支持的密码算法列表,请使用:

gpg --version

这些信息可以帮助您确保使用的加密算法与 Transfer Family 工作流程兼容,尤其是在需要符合 FIPS 的情况下。

解决签名加密文件出现的错误

描述

您的解密工作流程失败,并且您收到以下错误:

"Encrypted file with signed message unsupported"

原因

Transfer Family 目前不支持对加密文件进行签名。

解决方案

在您的 PGP 客户端中,如果可以选择对加密文件进行签名,请务必清除该选项,因为 Transfer Family 目前不支持对加密文件进行签名。

对 FIPS 算法的错误进行故障排除

描述

解密工作流程失败,日志消息如下所示:

{ "type": "StepErrored", "details": { "errorType": "BAD_REQUEST", "errorMessage": "File encryption algorithm not supported with FIPS mode enabled.", "stepType": "DECRYPT", "stepName": "step-name" }, "workflowId": "workflow-ID", "executionId": "execution-ID", "transferDetails": { "serverId": "server-ID", "username": "user-name", "sessionId": "session-ID" } }

原因

Transfer Family 服务器已启用 FIPS 模式和相关的解密工作流程步骤。在上传到 Transfer Family 服务器之前对文件进行加密时,加密客户端可能会生成使用非 FIPS 批准的对称加密算法的加密文件。在这种情况下,工作流程无法解密文件。在以下示例中,GnuPG 版本 2.4.0 使用 OCB(一种非 FIPS 分组密码模式)来加密文件:这会导致工作流程失败。

解决方案

您必须编辑用于加密文件的 GPG 密钥,然后对其重新加密。以下过程描述了您必须采取的步骤。

编辑 PGP 密钥
  1. 通过运行 gpg ‐‐list-keys 来确定必须编辑的密钥

    这将返回密钥列表。每个密钥的详细信息类似于以下内容:

    pub ed25519 2022-07-07 [SC] wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY uid [ultimate] Mary Major <marymajor@example.com> sub cv25519 2022-07-07 [E]
  2. 标识要编辑的密钥。在上一步所示的示例中,ID 为 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

  3. 运行 gpg ‐‐edit-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

    系统以有关 GnuPG 程序和指定密钥的详细信息进行响应。

  4. gpg> 提示符下,输入 showpref。将返回以下详细信息:

    [ultimate] (1). Mary Major <marymajor@example.com> Cipher: AES256, AES192, AES, 3DES AEAD: OCB Digest: SHA512, SHA384, SHA256, SHA224, SHA1 Compression: ZLIB, BZIP2, ZIP, Uncompressed Features: MDC, AEAD, Keyserver no-modify

    请注意,已列出存储在密钥上的首选算法。

  5. 我们希望编辑密钥以保留除 OCB 之外的所有算法。运行 setpref 命令,指定要保留的所有算法:

    gpg> setpref AES256, AES192,AES,3DES,SHA512, SHA384, SHA256, SHA224, SHA1,ZLIB, BZIP2, ZIP, Uncompressed

    这将返回以下详细信息:

    Set preference list to: Cipher: AES256, AES192, AES, 3DES AEAD: Digest: SHA512, SHA384, SHA256, SHA224, SHA1 Compression: ZLIB, BZIP2, ZIP, Uncompressed Features: MDC, Keyserver no-modify Really update the preferences? (y/N)
  6. 输入 y 进行更新,然后在系统提示确认更改时输入密码。

  7. 保存更改。

    gpg> save

在重新运行解密工作流程之前,必须使用编辑后的密钥重新加密文件。