伸哉タグ:AWSLambdaSkyOnDemandこんにちは。昨年AWSから発表されたLambdaが気になっていたにも関わらず長い間触れませんでした。遅ればせながら年明けにやっと触ることができたので今回はLambdaに関する事をお話ししたいと思います。LambdaとはLambdaにつきましては既に色んな方が記事でまとめられているので、今更AWSペーペーの私が書く必要はないのですが、自分なりに少しまとめてみました。プログラムをデプロイして、ちょこっと設定するだけでOK(簡単)S3、DynamoDb、Kinessisのイベントを元に配置したプログラムが動作(簡単)API経由でもプログラムの実行が可能インフラを気にする必要がない(色々楽)EC2とは異なり動作した分の課金(安い)勝手にスケールされるらしく並列処理もなんのその(アクセス集中してもある程度は余裕かな)プレビュー版としてのみの提供(2015/01/20現在)対応言語はjavascriptのみ(2005/01/20現在)早速触ってみた折角なので、Lambdaを使用して何か試してみようと思います。LambdaからHTTPリクエストを送信できるということですので、今回はS3にファイルが置かれたタイミングで弊社のクラウド連携サービス「SkyOnDemand」をLambdaから呼び出してみます。動作イメージとしましては、データファイルが連携元からS3に配置されたのを契機に、Lambda経由でSkyOnDemandを呼び出して、SkyOnDemandはS3に配置されたデータファイルを読み込んで連携処理を行う、という感じでしょうか。ちなみに、連携元がS3にファイルが配置できるということはHTTPリクエストを送信することができるということなので、この場合別にLambdaを経由しなくても連携元から直接SkyOnDemandを呼び出すことは可能だとは思いますが、色々な都合?で今回想定している連携元はセキュリティ上SkyOnDemandを直接叩けないという前提にしておきます。できればDynamoDBやKinesisでやりたかった・・・SkyOnDemandの準備まずは、SkyOnDemand側でスクリプトの作成とHTTPトリガの設定をしておきます。SkyOnDemandをご存じない方もいらっしゃいますので簡単に説明しますと、プログラム自体の作成と、URLとプログラムの紐づけを行っております。次に、S3に今回使用するバケットを作成します。最後にLambdaです。今回はこんなjavascriptを書いてみました。これで準備は完了です。作成したS3のバケットにファイルをUPLOADします。SkyOnDemandのログを確認してみます。SkyOnDemandのプログラムの呼び出しに成功し、バケット名等のパラメータも渡せていることが確認できました。これで、SkyOnDemandのスクリプトでS3にUPLOADされたデータファイルを読込、Salesforceに連携するなり、煮るなり焼くなり好きにすることができそうです。ちなみに、Lambdaのタイムアウトは最長60秒のようなので、SkyOnDemandで処理する時間が長くなることが想定されるのであれば、SkyOnDemand側の処理を非同期にした方がよさそうです。最後に今回はS3と弊社のクラウド連携サービス「SkyOnDemand」をLambdaを介して繋げてみました。この後、正式リリースが控えておりLambdaと対応するAWSのサービスが増えるのではないかと言われております。何かしらのイベントを受けてLambda単体で処理するのが基本的な用途だとは思いますが、AWSの色々なサービスと弊社のクラウド連携サービスのようなものだったり、またはその他の各種サービス等、サービス間の繋がりをよりシンプルに実現する用途でLambdaを活用する場面も今後出てくるのではないでしょうか。IPアドレスが限定されるのであれば、例えばRDSに保持しているデータをLamdbdaからセキュアに引っ張ることが可能になるからです(別に何がしたいってわけではないのですが、何かできそうな気がしてます)※ちなみにLambdaからセキュアにRDSにアクセスする方法を考え出した方もいらっしゃるようですLambda、面白いサービスですよね。検索クラウドやるならテラスカイ。求む!Salesforce開発エンジニア。