在我的 Rails 应用程序中,我需要使用 AWS Transcribe 服务。但是,当我尝试从 ActiveJob 内部创建 AWS 客户端时,Sidekiq 日志总是给我NameError: uninitialized constant Aws::TranscribeService
. 但是,当我尝试直接从 Rails 控制台创建客户端时,它并没有抱怨。这是我的代码。
/app/job/transcribe_audio_job.rb
class TranscribeAudioJob < ApplicationJob
queue_as :default
def perform(job_id)
job = TranscriptionJob.find(job_id)
# This line always show: NameError: uninitialized constant Aws::TranscribeService
client = Aws::TranscribeService::Client.new(
region: 'eu-west-1'
)
p client
end
end
宝石文件
# AWS SDK
gem 'aws-sdk-rails', '~> 3'
gem 'aws-sdk-transcribeservice', '~> 1.50'
如果我直接在 Rails 控制台中尝试,上面的代码就可以工作。
client = Aws::TranscribeService::Client.new(
region: 'eu-west-1'
)
# <Aws::TranscribeService::Client> <- The result in the Rails console
从 ActiveJob 使用 AWS 开发工具包的正确方法是什么?谢谢你的帮助。