如何在 AWS 中启用一个区域到另一个区域
How to enable one region to another in AWS
我正在使用 Amazon Connect 并将通话录音存储在一个区域。
我在另一个地区有 Amazon Transcribe,我按照 How to create an audio transcript with Amazon Transcribe | AWS 将音频文件转换为转录格式。步骤看起来很简单。
但是,当我在 Amazon Transcribe 中单击创建(将连接生成的录音文件转换为 Transcript)时,它抛出错误:录音在其他区域(在我的情况下是预期的,因为录制的(音频文件)不在同一地区)
The S3 URI that you provided points to the incorrect region. Make sure that the bucket is in the XXX-XXX region and try your request again.
其中 xxx-xxx
是 Amazon Transcribe 的区域。预计录音(音频文件)在同一地区。
但是:
- 有没有办法公开带有音频文件的 S3 存储桶,以便它也可以从其他区域访问?
- 如果不行,还有什么方法可以解决这个问题?
"Is there a way to expose the S3 bucket...?"
事实证明,暴露桶不是问题。存储桶在物理上始终恰好位于一个区域,但如果请求者拥有适当且授权的凭证并且没有明确拒绝访问的策略,则可以从所有区域以及 AWS 外部访问。
但是 S3 中关于存储桶的任何内容都无法更改以修复您遇到的错误,因为问题出在其他地方——而不是 S3。
来自 Amazon Transcribe 开发人员指南 中的 API 数据类型:
MediaFileUri
The S3 location of the input media file. The URI must be in the same region as the [Amazon Transcribe] API endpoint that you are calling.
https://docs.aws.amazon.com/transcribe/latest/dg/API_Media.html
Transcribe 的设计不会跨越区域边界来访问存储桶中的媒体,并且如果您尝试会阻止您,并显示您收到的消息。
为什么会这样?可能 performance/efficiency。可能是安全。可能是为了帮助不知情的用户避免跨区域数据传输的意外账单费用。可能是其他原因,可能与上述原因结合。
可能的解决方案:
- 使用 Connect、S3 存储桶和 Transcribe,都在同一区域;或
- 使用两个桶和 S3 Cross-Region Replication 将文件从 Connect 区域复制到 Transcribe 区域。请注意,由于 S3 正在跨区域边界移动数据,因此此 ca 的成本很高。请进一步注意复制速度很快但不是瞬时的,因此调用 Transcribe 可能无法找到已到达第一个桶但尚未到达第二个桶的媒体;或
- 使用两个存储桶,并在您的代码中调用 S3 的 PUT+Copy API,在调用 Transcribe 之前将文件复制到 Transcribe 区域中的第二个存储桶。
我正在使用 Amazon Connect 并将通话录音存储在一个区域。
我在另一个地区有 Amazon Transcribe,我按照 How to create an audio transcript with Amazon Transcribe | AWS 将音频文件转换为转录格式。步骤看起来很简单。
但是,当我在 Amazon Transcribe 中单击创建(将连接生成的录音文件转换为 Transcript)时,它抛出错误:录音在其他区域(在我的情况下是预期的,因为录制的(音频文件)不在同一地区)
The S3 URI that you provided points to the incorrect region. Make sure that the bucket is in the XXX-XXX region and try your request again.
其中 xxx-xxx
是 Amazon Transcribe 的区域。预计录音(音频文件)在同一地区。
但是:
- 有没有办法公开带有音频文件的 S3 存储桶,以便它也可以从其他区域访问?
- 如果不行,还有什么方法可以解决这个问题?
"Is there a way to expose the S3 bucket...?"
事实证明,暴露桶不是问题。存储桶在物理上始终恰好位于一个区域,但如果请求者拥有适当且授权的凭证并且没有明确拒绝访问的策略,则可以从所有区域以及 AWS 外部访问。
但是 S3 中关于存储桶的任何内容都无法更改以修复您遇到的错误,因为问题出在其他地方——而不是 S3。
来自 Amazon Transcribe 开发人员指南 中的 API 数据类型:
MediaFileUri
The S3 location of the input media file. The URI must be in the same region as the [Amazon Transcribe] API endpoint that you are calling.
https://docs.aws.amazon.com/transcribe/latest/dg/API_Media.html
Transcribe 的设计不会跨越区域边界来访问存储桶中的媒体,并且如果您尝试会阻止您,并显示您收到的消息。
为什么会这样?可能 performance/efficiency。可能是安全。可能是为了帮助不知情的用户避免跨区域数据传输的意外账单费用。可能是其他原因,可能与上述原因结合。
可能的解决方案:
- 使用 Connect、S3 存储桶和 Transcribe,都在同一区域;或
- 使用两个桶和 S3 Cross-Region Replication 将文件从 Connect 区域复制到 Transcribe 区域。请注意,由于 S3 正在跨区域边界移动数据,因此此 ca 的成本很高。请进一步注意复制速度很快但不是瞬时的,因此调用 Transcribe 可能无法找到已到达第一个桶但尚未到达第二个桶的媒体;或
- 使用两个存储桶,并在您的代码中调用 S3 的 PUT+Copy API,在调用 Transcribe 之前将文件复制到 Transcribe 区域中的第二个存储桶。