freedom-man.com

ブログは俺のセーブポイント

Category: AWS (page 1 of 4)

wordpressの前段にCloudFrontを置いたときの備忘録

このたび、wordpressのサーバの前段にCloudFrontを置いたので、ハマったところを備忘として残しておきます。基本的には参考URLのやり方で設定すればOKです。

Continue reading

AWS CLIのHTTPキャプチャ

AWSのREST APIはリファレンスもあるしSignatureの生成方法も載っているので、SDKが無いような言語でAPI叩きたい場合でも大抵問題ないんですが、それでも仕様が謎でどういうリクエスト投げれば良いんだ!?っていうケースもあると思います。

そんなときは各種SDKのコードを読むか、SDKを使ってAPIコールしてHTTPの中身を見るかして仕様を把握する感じになりますが、今回は後者のSDKを使ってAPIコールの中身を見る、というのをやっていきます。

Continue reading

ApexからAWS IoTのAPI叩いてみた

IoT Cloudがいつまで経っても利用できそうにないのでAWS IoTが面白そうなので
Apexから触ってみました。今回はThingは利用せずに、Message BrokerにHTTPで送ってRulesで処理をさせるという構成でやってみました。

Continue reading

Salesforceを認証プロバイダとしてCognitoを使ってみる

Salesforceを認証プロバイダとしてAmazon CognitoでAWSのAPIを叩く方法を書いていきます!
参考URLは以下。今回のソースやら設定方法は、ほぼこちらのパクリです。
Building an App Using Amazon Cognito and an OpenID Connect Identity Provider

Continue reading

ApexからAmazon Lambda叩いてみる。

Amazon Lambdaというすんばらしいサービスがプレビュー提供されたということでApexから触ってみた。

 

1. Lambda側のfunctionを書く

今回はChatter投稿するようなスクリプトを書いてみた。

上記スクリプトをindex.jsとして保存する。

必要なパッケージもローカルインストールしておく。今回はjsforceのみ。

2. 作成したLambda functionをアップロードする

node_modulesと対象のスクリプトファイルをまとめてzipファイルにする。

で、アップロードする。

AWS Lambda

Function Name, Description→適当に

Function Code→生成したZipファイルをアップロード。File nameとHandler nameはそのまま。

Role name→Functionの実行コンテキストになるロールを指定する。Create/Select Roleで作成・指定すればOK。

Advanced Settings→一回あたりのFunction実行の利用可能なメモリやタイムアウト時間を適当にセット。

3. 動作確認

作成したLambda Functionが正しく動作するかを確認する。

まずは確認対象のLambda Functionを選択してEdit/Testをクリック。

lambda_select

Customを選択して適当なJSONをセットしてInvokeをクリック

AWS Lambda_Test

下の方のExecution resultsにログが出るので確認。

lambda_test

日本語が???とかに文字化けてますが、CloudWatch側のログにはちゃんと残ってます。

CloudWatchで見る場合はLogsから対象のFunctionを選択して掘り下げていくとログが見れます。

lambda_log_list

lambda_log

4. Lambdaを呼び出すApexクラスを作成

現時点ではLambdaのドキュメントにはREST APIの仕様があまり書かれていないっぽくて

Signature Versionがどれに対応しているかとかよくわからなかったんですが、

JavascriptのSDK見たらSignatureのVersion指定のパラメータで

v2,v3,v4が指定できる的なことが書いてあったのでv4で実装してみたら、普通に呼び出せました!

Signature Version4での生成方法はこちら

 

で、いつも通り汚い感じですが、Apexで書くとこんな感じ↓

ApexでのSignature Version4の生成方法は過去の記事を参照ください!

リモートサイトの設定も忘れずに。

lambda_remotesite

あとは普通に呼び出すだけ!

で、Chatterを開くと…

lambda_chatter

Good!!

 

今回のサンプルだとApex→Lambda→Chatterというフローになっていて

Lambda経由のChatter投稿という意味なさげな感じになっていますが

実際にSalesforceで連携するときのユースケースとしては

S3にアップロードされたらChatterFeed作ってあげたり、他のSFDCのAPIを叩いたり

ApexトリガでDML走る度にLambda function動かすとか、そういった使い方になると思います。

 

一日しか触ってないですが、サーバ立てたりオートスケールの設定無しで

スケールするファンクションを簡単に作れるのは、非常に強力だなーと思いました。

Older posts

© 2017 freedom-man.com

Theme by Anders NorenUp ↑