【问题标题】:How to enable one region to another in AWS如何在 AWS 中启用一个区域到另一个区域
【发布时间】:2020-02-19 04:40:15
【问题描述】:

我正在使用 Amazon Connect 并将通话录音存储在一个区域中。

我在另一个区域有 Amazon Transcribe,我按照 How to create an audio transcript with Amazon Transcribe | AWS 将音频文件转换为转录格式。步骤看起来很简单。

但是,当我在 Amazon Transcribe 中单击 Create(将连接生成的录音文件转换为 Transcript)时,它会抛出错误:录音在其他区域中(在我的情况下这是预期的,因为录制的(音频文件)不在同一区域)

您提供的 S3 URI 指向了错误的区域。确保存储桶位于 XXX-XXX 区域,然后重试您的请求。

其中xxx-xxx 是 Amazon Transcribe 的区域。预计录音(音频文件)将位于同一区域。

但是:

  1. 有没有办法用音频文件公开 S3 存储桶,以便其他区域也可以访问它?
  2. 如果不是,还有什么其他方法可以解决这个问题?

【问题讨论】:

标签: amazon-web-services amazon-s3 aws-lambda aws-sdk amazon-connect


【解决方案1】:

“有没有办法暴露 S3 存储桶...?”

事实证明,暴露水桶不是问题。存储桶在物理上始终恰好位于一个区域中,但如果请求者拥有适当的授权凭证并且没有策略明确拒绝访问,则可以从所有区域以及 AWS 外部访问。

但是 S3 中关于存储桶的任何内容都无法更改以修复您遇到的错误,因为问题出在其他地方 - 而不是 S3。

来自Amazon Transcribe 开发人员指南中的 API 数据类型

MediaFileUri

输入媒体文件的 S3 位置。 URI 必须与您调用的 [Amazon Transcribe] API 终端节点位于同一区域。

https://docs.aws.amazon.com/transcribe/latest/dg/API_Media.html

Transcribe 的设计目的是不跨越区域边界来访问存储桶中的媒体,如果您尝试使用您收到的消息,则会阻止您。

为什么会这样?可能是性能/效率。可能是安全。可能是为了帮助不知情的用户避免跨区域数据传输的意外计费费用。可能还有其他原因,可能与上述原因相结合。

可能的解决方案:

  • 在同一区域中使用 Connect、S3 存储桶和 Transcribe;或
  • 使用两个存储桶和S3 Cross-Region Replication 将文件从 Connect 区域复制到 Transcribe 区域。请注意,这在规模上会产生巨大的成本,因为 S3 正在跨越区域边界移动数据。请进一步注意,复制速度很快但不是即时的,因此对 Transcribe 的调用可能无法找到已到达第一个存储桶但尚未到达第二个存储桶的媒体;或
  • 使用两个存储桶,并在您的代码中调用 S3 的 PUT+Copy API 以将文件复制到 Transcribe 区域中的第二个存储桶,然后再调用 Transcribe。

【讨论】:

    猜你喜欢
    • 2019-05-25
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    相关资源
    最近更新 更多