こんばんは@うしです。
今日は、Function Compute でコンソールから関数を作成し、
どんな事が出来るのか具体的な所を情報共有させて頂きたいと思います。
作業手順的には、下記1~5になりますが、
事前準備と、まず、Function Compute って何よ?って所から
○ 作業手順
- (Function Compute自体の)サービス有効化
- サービスの作成
- (作成したサービス内へ)関数の作成
- (作成した関数の)トリガーの設定
- デバッグ
○ 事前準備
Resource Access Management(RAM)から”Function Compute”の権限を付与して下さい。
○ Function Compute って何よ?
ブログとか覗くと、「AWSで言う所の Lambda」です。とか記述を見かけるけど、
そもそも「AWS Lambda」が分らん人はドウシタライイ?となるので、ザックリ概要をご紹介。
ドキュメント(Function Compute の概要)を読むと以下の 記載があります。
"Function Compute は、イベント駆動型モデルで、さまざまなサービスを連携します。
イベントソースサービスがイベントをトリガーすると、関連する関数が自動的に呼び出され
イベントを処理します。"
ふむふむ、取りあえず、 何かのイベントが発生し、トリガー発動で関数が実行される。との事が分かった。
更にドキュメントを読むと、関数には下記の3種類の関数の作成方法がある。とのこと
今回は、「コンソールを使用して関数を作成する」をやってみます。
では、具体的な内容を
1. (Function Compute自体の)サービス有効化
○まず、コンソールから "Function Compute" 自体のサービスを有効化します。
- 利用規約に同意するにチェック
- 今すぐ有効化ボタンを押下
○サービスの有効化完了画面
2. サービスの作成
○次に"Function Compute"内に「サービス」を作成します。
○サービスは、超絶簡単に説明すると、関数の入れ物の様なイメージになります。
- サービス作成ボタンを押下
○どこのリージョンに作成しているのか?を、しっかり意識してサービスを作成します。
- サービス名 を入力・・・ここでは「http_trigger」を設定
- 説明(任意)を入力
3. (作成したサービス内へ)関数の作成
○次に作成したサービス内に「関数」を作成します。
○関数は、関数テンプレートから選択が可能で、関数ランタイムによって、選択できる関数テンプレートが異なっています。
○ここでは、「空の関数」を選択しました。
○また、使用可能なランタイムは以下になります。 (今後増えるかも?)
- Java8
- NodeJs6
- NodeJs8
- Python2.7
- Python3
- PHP7.2
4. (作成した関数の)トリガーの設定
○次に関数のトリガータイプ を選択します。
- トリガータイプ を選択・・・ここでは「HTTPトリガー」を選択
○関数のトリガー名 を設定します。
- トリガー名・・・ここでは「http」を設定(下記キャプチャのwebhookは間違い)
- 承認・・・「anaonymous」を選択
- メソッド・・・「GET」を選択
○関数の設定をします。
- サービス名・・・「http_trigger」
- 関数名・・・「webhook」を設定
- 関数の説明・・・デフォルト(ブランク)
- ランタイム・・・「python3」を選択
- コード設定・・・「インライン編集」を選択
- その他・・・デフォルト(調べときます)
エディタで
- 「Hellow world!」を「Function Compute!」に変更
- 「text/plain」を「text/html」に変更
○関数の許可の設定
こちらもデフォルトでOKボタンを押下します。
○設定の確認
設定内容を確認し、「作成」ボタンを押下します。
これにより、関数が作成されます。
5. デバッグ
○デバッグ
- 以下の画面に記載があるURLへ、ブラウザからアクセスします。
- また、「実行」ボタン押下により、 Bodyや、Headers の値を確認しデバッグを行います。
まとめ
- リージョン > サービス > 関数 の概念が理解できた。
- 色々なトリガーの種類がある事がが分かった。
- 色々な言語で、関数を作成出来ることが事が分かった。
- 関数には、色々なテンプレートがある事が分かった。
- 処理をフックし、別の処理を駆動させることが出来る。
例えば、チャットワークやSlack で、投稿をフックに何かしらの処理を行うことが可能。