Functionsを覚えたので、ちょっとブログにしてみました。Functionsとは?AWSのサーバレスサービスのLambdaを使った事はあるでしょうか?サーバレスなLambdaですが、Lambda関数から別なLambda関数を呼ぶ場合にはプログラムコードで次に呼び出すLambda関数名を設定したり、何らかのアクションを間に挟む必要がありました。このため、ちょっとしたカスタマイズでもプログラムの改造が必要になりました。Functionsを利用すれば、その必要がなくなります。雑な言い方をすれば、個々のLambda関数を簡単につなぐためのAWSサービスになります。Lambda関数については、下記の記事を参考に作成してみてください。~LambdaでDynamoDBの値を取得する~このブログでやってみること今回は、3つの事を試してみます。FunctionsからLambdaを呼び出すまずはLambdaを作成し、StepFunctionsから呼び出してみましょう。Functionsから呼び出すLambda関数を作成します。Functionsを実行するには「実行の開始」を押してください。Functionsは実行する毎に実行名を付けて走らせます。Functniosがエラーなく実行されています。実行結果として、下記のように出力されていれば成功です。Functionsから呼び出せたら、Lambda同士を連携させてみましょう。連携させる1つ目の関数を作成します。}連携させる2つ目の関数を作成します。}連携させる3つ目の関数を作成します。Functionsを下記のパラメータを設定して、実行します。実行する毎に実行名を付けて走らせます。here"}下記のように出力されていれば成功です。Functionsでは、Lambdaなどとデータをやり取りする場合、Pathと呼ばれる命令を駆使します。InputPath:Lambda関数へパラメータとして渡すデータを定義します。これによって、Lambda内のeventにて値を取得する事ができます。ResultPath:Lambda関数からのreturn値を定義します。今回は結果を分かりやすくするため、全て別な名前を付けました。同じ名前を付けた場合には、その値へ上書きする事もできます。Functionsで次のステートへ渡したいデータを定義します。今回は、$としました。これはInputPathで受け取ったパラメータを全て次のステートへ引き渡す事を意味しています。必要なパラメータだけ渡す場合には、中身のJSON項目名を指定する事も可能です。ありますので、こちらも参考にしてください。分岐を使ったループ処理ここまでは一気通貫のステートマシンを作成していましたが、分岐を使ったループについてお話します。ループ処理でカウントアップとループ継続チェックするLambda関数を作成します。Functionsを下記のパラメータを設定して、実行します。実行する毎に実行名を付けて走らせます。here"}下記のように出力されていれば成功です。Functionsでは、Lambda等を呼び出すTaskを含め6つのStatesがあり、今回は、以下の4つを使ってループを実現しています。・Pass:入力された値を単純に出力へ渡したり、固定データを出力します・Wait:指定した時間(日時)まで処理を待たせます・Choice:入力された値で条件選択します・Succeed:成功として処理を停止させるそれを踏まえて、今回のループ処理を確認しますと。"Pass"を用いて、ループを処理するためのカウンタidx、増分step、最大ループ回数maxcount、ループ継続フラグcontinueを定義しています。},wait_secondsステートでは、人が処理の流れを追い易くするために待ち時間を設定しています。5,ChoiceLoopStopStateステートでは、ループ継続フラグcontinueをチェックし、ループを継続するか判断分岐してます。注意点として無限ループにならないよう条件設定には気を付けてください。},CheckStatusステートは、Lambda関数を呼んでいます。Lambda内部では実装コードの通り、カウンタidxのカウントアップや継続判断などの処理が行われます。Statesがありますので、こちらも参考にしてください。Functionsを使ってハマった部分や実装する上での注意点です。Functionsの仕組みやメリットを少しでも感じていただければと思います。これからサーバレスは進んでいくと思いますので、AWSで気軽にサーバレスに触れていただければと思います。こんな感じで、AWSをゴリゴリと使いながらクラスメソッドが提供するプロダクトを開発しています。AWSを使った開発をしたい!とか、エンジニアとして開発に没頭したい!なんて方がいましたら、一緒に働いてみませんか?私のグループの採用サイトは、こちらです→プロダクト開発エンジニアいきなり応募はハードルが高いと思いますので、会社説明会も適宜に開催していますので参加してみてください。82,001insightwatchチームで開発運用をしている柴犬。趣味は家庭菜園とドライブ。ふるさと勤務で福島県三春町でマツダロードスターを乗りまくる。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。〜ITエンジニアのお仕事とホンネ〜1月30日に新卒向けの会社説明会〜ITエンジニアのお仕事とホンネ〜を開催します。濱田孝治80EKS初心者の方向けに、EKS周辺のAWSリソースがどのように関連して動作しているのかをステップバイステップでEKSCTLが担っている役割を中心に説明しました。菊池修治45こんにちは、菊池です。VPNの冗長化について、最近何度か続けて社内で質問を受けましたのでまとめようと思います。大前諒祐26MediaLiveでの配信終了時に自動でアーカイブファイルをMediaConvertで変換する仕組みを作ってみました。武田隆志1179このエントリは、2018年、2019年に公開したAWS全サービスまとめの2020年版です。これまではいくつかに分割して公開していましたが、1エントリにまとめてほしいという要望をもらっていたため、今年は1エントリに集約してみました。クラスメソッドの関連会社であるアノテーション株式会社の研修として依頼を受け、チームと心理的安全性、それに礼節というテーマで話をしてきました。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe328件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui328インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。濱田孝治272「ふわわぁ、眠いな。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。