訂工作流程教學:執行工作流程 - Amazon Simple Workflow Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

訂工作流程教學:執行工作流程

現在您已完成實作工作流程、活動,以及工作流程與活動輪詢器,所以您可隨時執行工作流程。

如果您尚未提供,請先執行這項動作,請先執行這項動作。AWS訪問密鑰aws-config.txt文件,如設定AWS工作階段本教學第 1 部分中提供。

現在請前往您的命令列,變更到教學來源檔案所在的目錄。您應有下列檔案:

. |-- aws-config.txt |-- basic_activity.rb |-- get_contact_activity.rb |-- send_result_activity.rb |-- subscribe_topic_activity.rb |-- swf_sns_activities.rb |-- swf_sns_workflow.rb |-- utils.rb `-- wait_for_confirmation_activity.rb

現在,請使用以下命令啟動工作流程。

ruby swf_sns_workflow.rb

這會開始工作流程,並應該會使用您可複製貼入不同命令列視窗的程式碼來列印訊息 (或甚至是其他電腦,如果您已將教學來源檔案複製到該電腦)。

Amazon SWF Example ------------------ Start the activity worker, preferably in a separate command-line window, with the following command: > ruby swf_sns_activities.rb 87097e76-7c0c-41c7-817b-92527bb0ea85-activities You can copy & paste it if you like, just don't copy the '>' character. Press return when you're ready...

工作流程程式碼會耐心等候您在不同的視窗中啟動活動輪詢器。

開啟新的命令列視窗,再次變更到來源檔案所在的目錄,然後使用 swf_sns_workflow.rb 檔案提供的命令來啟動活動輪詢器。例如,如果您收到前述輸出,您可以輸入 (或貼上) 以下命令。

ruby swf_sns_activities.rb 87097e76-7c0c-41c7-817b-92527bb0ea85-activities

一旦您開始執行活動輪詢器,它就會開始輸出活動註冊的相關資訊。

** initialized and registered activity: get_contact_activity ** initialized and registered activity: subscribe_topic_activity ** initialized and registered activity: wait_for_confirmation_activity ** initialized and registered activity: send_result_activity

您現在可以返回原來的命令列視窗,按 return (傳回) 開始您的工作流程執行。它會註冊工作流程及排程第一項活動。

Starting workflow execution. ** registered workflow: swf-sns-workflow ** scheduling activity task: get_contact_activity

回到您的活動輪詢器執行所在的另一個視窗。第一個執行的活動結果隨即顯示,提示您輸入您的電子郵件或簡訊電話號碼。輸入這兩段資料的任一段或全部輸入,然後確認您輸入的文字。

activity task received: <AWS::SimpleWorkflow::ActivityTask> ** Starting activity task: get_contact_activity Please enter either an email address or SMS message (mobile phone) number to receive Amazon SNS notifications. You can also enter both to use both address types. If you enter a phone number, it must be able to receive SMS messages, and must be 11 digits (such as 12065550101 to represent the number 1-206-555-0101). Email: me@example.com Phone: 12065550101 You entered: email: me@example.com phone: 12065550101 Is this correct? (y/n): y
注意

提供的電話號碼為虛構,僅供示範之用。請在這裡使用您自己的電話號碼和電子郵件地址。

輸入此資訊之後,您應該會立即收到的電子郵件或簡 Amazon SNS,要求您確認您的主題訂。如曾輸入簡訊號碼,您會在電話中看到類似以下的內容。

如果您使用 YES 回覆此訊息,您會收到我們在 send_result_activity 中提供的回應。

當所有一切發生時,您是否看到您的命令列視窗中發生了什麼? 工作流程和活動輪詢器都在努力工作。

以下為工作流程輪詢器的輸出。

** scheduling activity task: subscribe_topic_activity ** scheduling activity task: wait_for_confirmation_activity ** scheduling activity task: send_result_activity !! All activities complete! Sending complete_workflow_execution...

以下是活動輪詢器的輸出,它會同時發生在另一個命令列視窗中。

++ Activity task completed: get_contact_activity ** Starting activity task: subscribe_topic_activity ++ Activity task completed: subscribe_topic_activity ** Starting activity task: wait_for_confirmation_activity Topic subscription still pending for (email: me@example.com) Topic subscription confirmed for (sms: 12065550101) ++ Activity task completed: wait_for_confirmation_activity ** Starting activity task: send_result_activity Thanks, you've successfully confirmed registration, and your workflow is complete! ++ Activity task completed: send_result_activity All done!

恭喜您完成您的工作流程和此教學!

建議您再次重新執行工作流程,查看逾時如何運作,或輸入不同的資料。只要記住,一旦您訂閱主題,「若未取消訂閱就會一直是訂閱狀態」。先重新執行工作流程再取消訂閱主題可能會造成自動成功,因為 wait_for_confirmation_activity 會看到您已確認訂閱。

取消訂 Amazon SNS 主題

  • 以負值 (傳送 STOP) 回應簡訊。

  • 選擇您電子郵件中收到的取消訂閱連結。

您現已就緒可再次重新訂閱主題。

接下來做些什麼?

本教學包含許多基礎,但有關AWS SDK for Ruby、Amazon SWF 或 Amazon SNS。如需詳細資訊及更多範例,請參閱各官方文件: