Dropbox APIをLambdaで実行したときの個人メモ
準備
Dropbox API
-
Dropboxのアカウントがあることが前提
-
Dropboxのホーム画面から「App Center」を選択
- 「アプリの開発」を選択
- 「アプリを作成」を押下
- 以下設定にて「Create app」を押下
- アプリを作成したことを確認
Lambda
- AWSマネジメントコンソールからLambdaを選択、「関数の作成」を押下
- カスタムランライムとしてAmazon Linux 1を選択、「関数の作成」を押下
- 生成された「hello.sh」を一部変更して「Deploy」を押下
hello.sh
function handler () {
EVENT_DATA=$1
DATE=`date`
RESPONSE="{\"statusCode\": 200, \"body\": \"$DATE\"}"
echo $RESPONSE
}
- テスト実行前に、テストイベントを作成
インプットを利用していないため、空でも動作に影響なし
- 「Test」を押下し、実行
- echoした内容がレスポンスに出力されていることを確認
- 「hello.sh」を一部変更して「Deploy」を押下、「Test」を押下し、実行
- curlコマンドを利用してHTTPリクエストを送信、レスポンスをechoするように変更
- 今回はhttpbin.orgを利用
hello.sh
function handler () {
EVENT_DATA=$1
HTTP=`curl -X GET "http://httpbin.org/get"`
RESPONSE="{\"statusCode\": 200, \"body\": \"$HTTP\"}"
echo $RESPONSE
}
- HTTP通信できていることを確認
Dropbox API実行
APIの権限を確認(今回は/get_current_accountを実行)
- 利用するAPIに必要な権限が「account_info.read」であることを確認
- アプリ情報から許可されている権限を確認
- 「account_info.read」にチェックが入っていることを確認
- EXAMPLEからcurlコマンドをコピーしLambdaにペースト、「Test」を押下し、実行
- レスポンスにアカウント情報が含まれていることを確認
感想
- curlをたたきたいだけなら、LambdaでPythonと思っていたが
カスタムランライムを使うと楽そう - Dropbox APIの権限まわり含めて理解していきたい