AWS Step Functions
開発者ガイド

コードスニペットを使用して Amazon SNS メッセージを送信する状態を作成する​

Step Functions は、Amazon Simple Notification Service (SNS) などの特定の AWS サービスと統合されています。このチュートリアルでは、Amazon SNS を使用してテキストメッセージを送信するコードスニペットを生成します。ステートマシン定義から Amazon SNS に直接パラメータを渡します。

Step Functions が Amazon ステートメント言語 から直接 AWS サービスに統合される方法の詳細については、以下を参照してください。

ステップ 1: コードスニペットの生成

コードスニペットを生成するには、ステートマシン定義の編集から開始する必要があります。

  1. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/states/home?#/statemachines/create で Step Functions コンソールを開きます。

  2. [Author with code snippets (コードスニペットで作成)] を選択し、ステートマシンの名前を入力します。

    デフォルトの HelloWorld ステートマシンが [State machine definition (ステートマシン定義)] に表示されます。

    
            HelloWorld 定義
  3. [Generate Code Snippet (コードスニペットの生成)] で、[Amazon SNS:Publish a message (Amazon SNS: メッセージの公開)] を選択します。

    [Generate SNS Publish task state (SNS Publish タスク状態を生成する)] ウィンドウが表示されます。

  4. [Generate SNS Publish task state (SNS Publish タスク状態の生成)] ページの [Destination (宛先)] で、[Enter phone number (電話番号を入力)] を選択して携帯電話番号を入力します。

    [+][country code][subscriber number including area code] の形式を使用します。例: +12065550123

  5. [Message (メッセージ)] で、[Enter message (メッセージを入力)] を選択し、SMS メッセージとして送信するテキストを入力します。

    注記

    [Specify message at runtime with state input (実行時に状態の入力を使用してメッセージを指定する)] を選択することもできます。このオプションを使用すると、参照パスを使用して、ステートマシン実行の入力からメッセージを選択できます。詳細については、以下を参照してください。

[Generate SNS Publish task state (SNS Publish タスク状態を生成する)] でオプションを設定すると、[Preview (プレビュー)] セクションがタスク状態の Amazon ステートメント言語 コードが必要なオプションで更新されます。

たとえば、これらのオプションを選択します。


        SNS の状態オプション

これらのオプションが選択された場合、[Preview (プレビュー)] 領域に表示される生成されたコードスニペットは次のようになります。

"Amazon SNS: Publish a message": { "Type": "Task", "Resource": "arn:aws:states:::sns:publish", "Parameters": { "Message": "Hello from Step Functions!", "PhoneNumber": "+12065550123" }, "Next": "NEXT_STATE" }

注記

[Task state options (タスク状態のオプション)] セクションで、RetryCatch、および TimeoutSeconds の各オプションも設定できます。「エラー処理」を参照してください。

ステップ 2: ステートマシン定義を更新する

Amazon SNS オプションを設定したので、生成されたコードスニペットをステートマシン定義に貼り付け、​既存の Amazon ステートメント言語 コードを更新します。​

  1. [プレビュー] セクションのコードを確認したら、[クリップボードにコピー] を選択します。

  2. ステートマシン定義の HelloWorld 状態の閉じ括弧の後ろにカーソルを置きます。​

    
            HelloWorld 状態の末尾にカーソルを置きます。

    カンマを入力し、[Enter] キーを押して新しい行を開始します。コードスニペットをステートマシン定義に貼り付けます。

  3. Amazon SNS: Publish a message 状態の最期の行を、​"Next": "NEXT_STATE" から "End": true に変更します。​

  4. HelloWorld 状態の最期の行を、​"End": true から "Next": "Amazon SNS: Publish a message" に変更します。​

  5. [Visual Workflow (ビジュアルワークフロー)] ペインで 
       refresh
    を選択します。ビジュアルワークフローをチェックして、新しい状態が含まれていることを確認します。

    
            ビジュアルワークフローの確認
  6. (オプション) 読みやすくするために JSON をインデントします。ステートマシン定義は次のようになります。

    { "StartAt":"HelloWorld", "States":{ "HelloWorld":{ "Type":"Pass", "Result":"Hello World!", "Next":"Amazon SNS: Publish a message" }, "Amazon SNS: Publish a message":{ "Type":"Task", "Resource":"arn:aws:states:::sns:publish", "Parameters":{ "Message":"Hello from Step Functions!", "PhoneNumber":"+12065550123" }, "End":true } } }
  7. [次へ] を選択します。

  8. IAM ロールを作成または入力します。

    • Step Functions の IAM ロールを作成するには、[自分用の IAM ロールを作成する] を選択し、[名前] にロール名を入力します。

    • ステートマシンの正しいアクセス許可を使用して IAM ロールをすでに作成済みである場合は、[Choose an existing IAM role (既存の IAM ロールを選択する)] を選択します。リストから ロールを選択するか、ロールの ARN を指定します。

    注記

    Step Functions によって作成された IAM ロールを削除すると、Step Functions で後で再作成することはできません。同様に、ロールを変更すると (たとえば、IAM ポリシーのプリンシパルから Step Functions を削除するなど)、後で Step Functions でそれを元の設定に復元することはできません。

  9. [Create state machine (ステートマシンの作成)] をクリックします。

ステップ 3: 実行を開始する

作成が完了すると、新しいステートマシンからのページが表示されます。

  1. Amazon リソースネーム (ARN)、関連する IAM ARN、ステートマシン定義など、ステートマシンの詳細を確認します。

  2. [Executions (実行)] タブで、[Start execution (実行の開始)] を選択します。

  3. (オプション) 実行の名前を入力します。

    注記

    Amazon SNS コードスニペットを作成したときに [Specify message at runtime with state input (実行時に状態入力を使用してメッセージを指定する)] を選択した場合は、[Input - optional (入力 - オプション)] にメッセージを含めます。ここではデフォルトの状態入力を使用します。

    [実行の開始] を選択します。

コードスニペットで有効な携帯電話番号を設定した場合、ステートマシンの実行によって直接トリガーされた Amazon SNS からのテキストメッセージを受信します。​