はじめに
AppSheetは、ユーザーがコーディング知識なしでカスタムモバイルアプリを作成できるプラットフォームです。
AppSheet APIを使ってAWS Lambda関数からデータを操作する方法について解説します。
この記事では、AppSheetのAPIを使って、AWS Lambda経由でデータを操作する方法に焦点を当てています。
API Keyの取得方法からLambda関数の作成、APIの利用方法までを順を追って説明します。
もくじ
AppSheet API Key を取得する
AppSheet APIを使うには、API Keyを取得する必要があります。
以下の手順でAPI Keyを取得してください。
-
アプリケーションのダッシュボードにアクセス
- API Keyはアプリケーションごとに異なります。
- 「Settings > Integrations」をクリック
- 「Create Application Access Key」をクリック
- 「App Id」と「Application Access Keys」をメモ
Lambda
AWS Lambdaを使ってAppSheet APIと通信を行います。
まずはLambda Layerを設定し、次にLambda関数を作成します。
Lambda Layer を作成する
Lambdaでrequests
ライブラリを使うためには、最初にローカル環境でのセットアップが必要です。
$ mkdir python && cd python
$ pip3 install -t python requests
$ zip -r python.zip python/
上記のコマンドを実行後、作成したpython.zip
をLambda Layerにアップロードします。
Lambda 関数を作成する
-
新しいLambda関数を作成し、作成したLambda Layerをアタッチします。
-
環境変数を設定する
APPSHEET_APP_ID = {先ほど取得した「App Id」を入力して下さい。} APPSHEET_APPLICATION_ACCESS_KEY = {先ほど取得した「Application Access Keys」を入力して下さい。}
-
以下のソースコードを
lambda_function.py
に貼り付けます。
このコードはtests
テーブルにtest.png
ファイルのパスを更新するものです。Row IDはkeyとして必須です。
import os
import json
import requests
def lambda_handler(event, context):
# 環境変数から AppSheet API の設定を取得
app_id = os.environ.get('APPSHEET_APP_ID')
application_access_key = os.environ.get('APPSHEET_APPLICATION_ACCESS_KEY')
table_name = 'tests'
api_url = f'https://api.appsheet.com/api/v2/apps/{app_id}/tables/{table_name}/Action'
headers = {
'ApplicationAccessKey': application_access_key,
'Content-Type': "application/json"
}
# 送信するデータ
data = {
"Action": "Edit",
"Properties": {
"Locale": "en-US",
"Timezone": "Pacific Standard Time"
},
"Rows": [
{
"Row ID": "Di8JAaCu2ItMKd5aqWi7",
"image": "/appsheet/data/NewApp-456626611/tests/test.png"
}
]
}
# POSTリクエストの送信
response = requests.post(api_url, headers=headers, data=json.dumps(data))
# レスポンスの確認
if response.status_code == 200:
print("データの送信に成功しました。")
print(response.json())
else:
print("データの送信に失敗しました。")
print("status_code", response.status_code)
print("text", response.text)
return {
'statusCode': 200,
'body': json.dumps('Success!')
}
まとめ
この記事では、AppSheet API Keyの取得方法から始まり、AWS Lambdaを介してAppSheet APIを使うための設定までを説明しました。
これらの手順に従って、AppSheetとAWS Lambdaを連携させることで、より強力なアプリケーションを構築できるでしょう。