Funk から送信されるデータフォーマット
Funk では、クラウドサービスに応じて、以下のようなフォーマットのデータが送信されます。
AWS Lambda
Python ランタイムの場合
Python ランタイムのハンドラーは、以下のとおりです。
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
event
: ユーザーが指定したデータ形式でリクエスト Body の値が設定されます。context
(クライアントコンテキスト): 以下のフォーマットのデータが設定されます。Python ランタイムの場合は、Python の AWS Lambda context オブジェクト 内のclient_context.custom
に以下のような JSON を元にしたdict
が設定されます。例:
{ "custom": { "operatorId": "OPXXXXXXXXXX", "coverage": "global", "resourceType": "Subscriber", "resourceId": "2950XXXXXXXXXXX", "sourceProtocol": "http", "srn": "srn:soracom:OPXXXXXXXXXX:global:Subscriber:2950XXXXXXXXXXX", "imsi": "2950XXXXXXXXXXX", "simId": "8942XXXXXXXXXXXXXXX", "imei": "8676XXXXXXXXXXX" } }
Node.js ランタイムの場合
Node.js ランタイムのハンドラーは、以下のとおりです。
exports.handler = async (event, context) => {
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
event
: ユーザーが指定したデータ形式でリクエスト Body の値が設定されます。context
(クライアントコンテキスト): 以下のフォーマットのデータが設定されます。Node.js ランタイムの場合は、Node.js の AWS Lambda context オブジェクト 内のclientContext
に以下のような JSON が設定されます。{ "operatorId": "OPXXXXXXXXXX", "coverage": "global", "resourceType": "Subscriber", "resourceId": "2950XXXXXXXXXXX", "sourceProtocol": "http", "srn": "srn:soracom:OPXXXXXXXXXX:global:Subscriber:2950XXXXXXXXXXX", "imsi": "2950XXXXXXXXXXX", "simId": "8942XXXXXXXXXXXXXXX", "imei": "8676XXXXXXXXXXX", "custom": { "operatorId": "OPXXXXXXXXXX", "coverage": "global", "resourceType": "Subscriber", "resourceId": "2950XXXXXXXXXXX", "sourceProtocol": "http", "srn": "srn:soracom:OPXXXXXXXXXX:global:Subscriber:2950XXXXXXXXXXX", "imsi": "2950XXXXXXXXXXX", "simId": "8942XXXXXXXXXXXXXXX", "imei": "8676XXXXXXXXXXX" } }
Azure Functions / Google Cloud Functions
以下のデータフォーマットが渡されます。
method
: 'POST' が指定されます。body
: 指定したデータ形式でリクエスト Body の値が設定されます。headers
:user-agent
には 'SORACOM Funk' が指定されます。content-type
には 'application/json' が指定されます。x-soracom-token
には JWT 形式のトークンが指定されます。