Ruby 용 Amazon Simple Workflow/AWS Flow 아키텍처에 관한 간단한 질문이 있습니다. 배경 지식으로는 Opsworks의 Ruby 레이어 용 AWS Flow에서 실행되는 하나의 액티비티로 간단한 워크 플로우가 있습니다. 나는 워크 플로우를 시작하고자하는 Rails App Server 레이어에서 실행중인 별도의 REST API를 Opsworks에서 가지고 있습니다.워크 플로 시작 클래스의 워크 플로 클래스 필요
워크 플로우를 맞이할 REST API의 코드 :
1: domain = AWS::SimpleWorkflow.new.domains['my_domain']
2: workflow_client = AWS::Flow::workflow_client(domain.client, domain) {{from_class: MyWorkflowClass}}
3: workflow_client.start_execution(input_1: @input1, input_2: @input2)
내 가정 내 워크 플로우 및 REST API의 코드베이스가 분리 될 수 있다는 유일한 공통 요소는 aws-flow
루비 보석이 될 것입니다 require 'aws/decider'
. 그러나 내 REST API에도 require 'PATH_TO_MY_WORKFLOW_CLASS'
이 있어야한다는 사실을 알고 있습니다. 내 REST API의 코드 파일에서 코드 줄을 제거하면 해당 워크 플로를 개막, 나는 다음과 같은 오류가 발생합니다 :
undefined method `_options' for nil:NilClass; ["/Users/MyName/.rvm/gems/ruby-2.0.0-p247/gems/aws-flow-2.2.1/lib/aws/decider/utilities.rb:183:in `interpret_block_for_options'", "/Users/MyName/.rvm/gems/ruby-2.0.0-p247/gems/aws-flow-2.2.1/lib/aws/decider/implementation.rb:73:in `workflow_client'"
(error at line 2 above)
나는 잘못이 있습니까? 내 워크 플로 시작 앱 (예 : 내 REST API)에 MyWorkflowClass를 실제로 요구해야합니까, 아니면 잘못하고 있습니까? 나는 문서를 샅샅이 뒤졌고 이에 대한 명확한 답을 찾을 수 없었다. 내가 찾을 수있는 모든 샘플은 실제로 워크 플로 시작 코드에 포함 된 워크 플로 클래스를 갖지만 단순한 샘플로 번들되거나 그것이 있어야하는 방식이기 때문에 이것이 맞는지 확실하지 않습니다. 샘플을 액면 그대로 사용하지 않는 이유는 워크 플로 시작 코드에서 워크 플로 클래스를 요구하는 것이 나에게 어울리지 않기 때문입니다. 그것은 나의 취향을 위해 너무 단단히 두 가지 응용 프로그램을 바인딩합니다.