Rails ActiveJob 无法加载 aws-sdk-trancriservice



在我的Rails应用程序中,我需要使用AWS转录服务。但是,当我尝试从ActiveJob内部创建AWS客户端时,Sidekiq日志总是给我NameError: uninitialized constant Aws::TranscribeService。但是,当我尝试直接从Rails控制台创建客户端时,它并没有抱怨。这是我的密码。

/app/job/transcript_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

Gemfile

# 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 SDK的正确方法是什么?谢谢你的帮助。

注释中Arieljuod的解决方案有效。这是完整的代码:

/app/job/transcript_audio_job.rb

require 'aws-sdk-transcribeservice'
class TranscribeAudioJob < ApplicationJob
queue_as :default
def perform(job_id)
job = TranscriptionJob.find(job_id)
client = Aws::TranscribeService::Client.new(
region: 'eu-west-1'
)
p client
end
end

相关内容

  • 没有找到相关文章

最新更新