ヤマムギ

growing hard days.

*

CUSTOMINEを使ってkintoneからAWS Lambdaを実行する(Cognito認証付き)

   


先日の記事「kintoneのカスタマイズ開発を超速にするCUSTOMINE」で書きましたように、CUSTOMINEでkintoneで開発すると早く楽ちんです。

そんなCUSTOMINEでは、AWS Lambdaの実行をAmazon Cognitoの認証付きで実装できます。
しかもGUIでノーコードで(これ重要)。

早速テストしてみます。

Amazon Cognitoの準備

IDプールを作成します。
IDプール名を任意で入力して、
「認証されていないIDに対してアクセスを有効にする」にチェックをしました。

IDプールのIDをメモっておきます。

AWS Lambdaの準備

どの言語でもいいんですが、とりあえず実行できるということを確認したかっただけですので、ランタイムはPython3.6で作成しました。
IAMロールはCloudWatchにログが書ければいいです。
ほかはデフォルトです。
コードは超シンプルにこちらです。

Cognitoの認証されていないロールの設定

Amazon CognitoでIPプールを作成したときに自動生成された、認証されていないロールにLambdaを実行できるポリシーを追加します。
インラインポリシーで下記を追加しました。

CUSTOMINEの設定

「やること」で「AWS Cognitoで認証を取得する」を選択しました。
IDプールを作成したリージョンを入力して、メモっておいたIDプールのIDを入力します。
条件として「レコードを保存する直前」に実行されるようにしました。

そして次にLambdaの設定をしました。

「やること」で「AWS Lambdaファンクションを実行する」を選択しました。
認証では、他の「やること」を選択できますので、ここで先程のCognito認証したやることを選択します。
リージョン、Lambdaファンクション名を入力します。

Lambdaの渡すパラメーターはJSON形式で記述します。

${文字列__1行}とすることでフィールドコード’文字列__1行‘の値をパラーメーターとして渡すことが出来ました。

条件は「他のアクションが実行した時」でCognitoのやることを選択しました。

実行してみる

対象のkintoneアプリでレコードを保存してみます。

CloudWatchでLambdaのログを確認すると、ちゃんとkintoneのレコードの値が渡っていました。

めでたし♫めでたし♫

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - AWS, kintone , , , , ,

ad

ad

  関連記事

Amazon EC2(Amazon Linux 2)にRedmine3.4をインストール

久しぶりに新しい環境でRedmineを構築したくなり、せっかくなのでAmazon …

2017年、このブログ(WordPress(Amazon EC2 + RDS))で対応してきたこと

Amazon Web Services Advent Calendar 2017 …

kintoneのアプリ管理の情報をkintoneで作ったアプリ管理アプリに格納/更新する

kintone Advent Calendar 2017の参加記事です。 課題 …

Redmineの添付ファイルをS3に同期する

RedmineをAWS上で構築するデザインを考えていて、せっかくなので冗長化しよ …

EC2とRDSのMySQLを他のAWSアカウントへ移設する

他のAWSアカウントへシステムごと移設した場合の手順です。 構成はEC2とRDS …

API GatewayのアクセスログをCloudWatchに記録する

Amazon API GatewayのアクセスログをCloudWatchに記録で …

kintoneに登録されたアカウントの電話番号にGoogleカレンダーの予定をAmazon Pollyが読み上げてTwilioから電話でお知らせする(AWS Lambda Python)

Google Calendar Twilio Reminder Googleカレ …

Route53でドメインを新規取得してDNSレコードを設定する

Elastic IPをAWSで発行しているのですから、DNSの設定も同じようにマ …

AWS Lambda(Python3)でSelenium + Chrome Headless + でwebスクレイピングする

インターネット上に公開されている情報をDynamoDBにつっこみたいだけなので、 …

Amzon Linux のApacheでRedmineとWordPressをバーチャルホストで共存する

EC2とRDSを節約しようと思いまして、Redmineを動かしてるとこに検証用W …