Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Step Functions を AWS Amplify から呼び出した #ゆるWeb札幌

AWS Step Functions を AWS Amplify から呼び出した #ゆるWeb札幌

ゆるWeb勉強会@札幌 OnLine #21 での発表資料
https://mild-web-sap.connpass.com/event/262287/
https://www.youtube.com/watch?v=ILL00xelET8&t=6447s

AWS Amplify から AWS Step Functions の呼び出し方の話。

Avatar for Kihara, Takuya

Kihara, Takuya

October 31, 2022
Tweet

More Decks by Kihara, Takuya

Other Decks in Technology

Transcript

  1. AWS Step Functions を AWS Amplify から 呼び出した ゆるWeb勉強会@札幌 OnLine

    #21 2022/10/31 木原卓也 / @tacck 1 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌
  2. About me ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌 2 • Name

    • Kihara, Takuya / 木原 卓也 • Organization • Co-op Sapporo / コープさっぽろ • Communities • Yuru-Web Spporo / ゆるWeb勉強会@札幌 • Amplify Japan User Group • AWS Community Builders Program (Q2 2021, 2022) Category: Front-end Web and Mobile • Figure-Skating Skill I Love / 好きなフィギュアスケートの技 • Spread Eagle
  3. お品書き • AWS Step Functions • AWS Step Functions をAWS

    Amplify から呼び出す • Why • How / Easy vs Simple • やってみる • まとめ 3 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌
  4. AWS Step Functions AWS Step Functions は、デベロッパーが AWS のサービスを利用して分散型アプリケーションを構 築し、プロセスを自動化し、マイクロサービスのオーケストレーション、データと機械学習のパイプラインを

    構築できるようにするビジュアルワークフローサービスです。 • イベント駆動型アーキテクチャ • ワークフローをGUIで構築可能 • 一部サービスを実行可能 (AWS SDK も呼び出し可能) • 他のサービスから呼び出し可能 • 実行結果(実際に処理されたフロー)の可視化 5 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌 https://aws.amazon.com/jp/step-functions/
  5. 一部サービスを実行可能 Service Lambda Amazon EMR on EKS AWS Batch CodeBuild

    DynamoDB Athena Amazon ECS/AWS Fargate Amazon EKS Amazon SNS API Gateway Amazon SQS AWS Glue DataBrew AWS Glue Amazon EventBridge SageMaker AWS Step Functions Amazon EMR AWS SDK integrations (Over two hundred) 6 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌 https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html
  6. ワークフローをGUIで構築可能 • Workflow Studio 7 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌

    https://docs.aws.amazon.com/step-functions/latest/dg/workflow-studio-components.html
  7. 他のサービスから呼び出し可能 8 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌 https://docs.aws.amazon.com/step-functions/latest/dg/concepts-invoke-sfn.html Service AWS

    Lambda, using the StartExecution call. (*) Amazon API Gateway Amazon EventBridge AWS CodePipeline AWS IoT Rules Engine AWS Step Functions (*) Lambda から AWS SDK を経由して Step Functions 呼び出すように実装することが可能
  8. Why • 楽しそう • AWS Amplify のロジック実装は Frontend 中心 •

    バックエンドに持っていくなら Lambda Functions ほぼ一択 • AWS AppSync の Resolver に実装できるが、 VTL のハードル高。 • Amplify Studio + Figma でフロントのコーディング量低下 • 諸条件あるが、楽をできる場面が生まれた。 • バックエンドもコーディング量を減らす工夫ができないか? そんなこんなで AWS Step Functions を呼びたい!! 10 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌
  9. How / Easy vs Simple • 実装が簡単な (Easy) やり方か、 構成がスッキリした

    (Simple) やり方か。 • フロントエンドから、 Step Functions を呼び出し、 その中で SNS を使ってメールを送信する、 という流れで考える。 • これができれば、今後 Step Functions を呼び放題になる。 11 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌
  10. Easy / Lambda Functions 経由 • Good • 利用例も多くわかりやすい •

    Amplify CLI の標準機能で Lambda 呼び出しまですぐできる • Bad • Step Functions 以降を別途用意 • Amplify + CDK or 別プロジェクト • コード量低減の目標に対し Lambda の実装が必須 12 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌
  11. Simple / AppSync 経由 • Good • Lambda不要(コード量削減) • AppSync

    HTTP リゾルバで AWS SDK の汎用的な処理 • Amplify + CDK でリソースを 統合管理 • Bad • リゾルバ追加のために VTLを書く必要あり 13 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌
  12. まとめ • Amplify から Step Functions を呼ぶ方法は、現在二種類。 • Step Functions

    にロジックを持っていく、と考えた場合、 実際のロジックは Lambda Functions が必要なはずなので、 「ノーコード」では無い。(AWSも言っていない) • ただ、ロジック間の繋ぎ、サービス間の繋ぎを Step Functions に任せることで、 Lambda 内のコードを減らすことはできそう。 • バックエンドに詳しく無い人が、ロジックを必要とする場合の 選択肢としては十分に使える。 16 ゆるWeb勉強会@札幌 OnLine #21 / #ゆるWeb札幌