翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Lambda 関数を実行する
以下の例では、us-west-2
リージョンで Lambda 関数 MyGetitemsFunction
を実行します。この関数は、データベースからの項目のリストを返します。入力 JSON は以下のようになります。
{ "SortBy": "name|time", "SortOrder": "ascending|descending", "Number": 50 }
各パラメータの意味は次のとおりです。
-
SortBy
は、結果のソート基準です。この例ではtime
を使用します。この場合、返される項目はデータベースに追加された順にソートされます。 -
SortOrder
はソート順位です。この例ではdescending
を使用します。この場合、最新の項目がリストの最後に表示されます。 -
Number
は、取得する項目の最大数です (デフォルトは 50)。この例では10
を使用します。この場合、最新の 10 個の項目を取得します。
出力 JSON は以下のようになります。
-
STATUS-CODE
は HTTP ステータスコードで、200
は呼び出しが成功したことを意味します。 -
RESULT
は呼び出しの結果 (success
またはfailure
) です。 -
ERROR
は、result
がfailure
の場合のエラーメッセージです。それ以外の場合は、空の文字列が返されます。 -
DATA
は、result
がsuccess
の場合、返される結果の配列です。それ以外の場合、nil です。
{ "statusCode": "STATUS-CODE", "body": { "result": "RESULT", "error": "ERROR", "data": "DATA" } }
最初のステップでは、使用するモジュールをロードします。
-
aws-sdk
は、Lambda 関数を呼び出すために使用する AWS SDK for Ruby モジュールをロードします。 -
json
は、リクエストとレスポンスのペイロードをマーシャリングおよびアンマーシャリングするために使用する JSON モジュールをロードします。 -
os
は、Microsoft Windows で Ruby アプリケーションを実行するために使用する OS モジュールをロードします。別のオペレーティングシステムを使用中の場合は、これらの行を削除できます。 -
次に、Lambda 関数を呼び出すために使用する Lambda クライアントを作成します。
-
次に、リクエスト引数のハッシュを作成し、
MyGetItemsFunction
を呼び出します。 -
最後に、応答を解析し、成功した場合は項目を出力します。
# Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # This file is licensed under the Apache License, Version 2.0 (the "License"). # You may not use this file except in compliance with the License. A copy of the # License is located at # # http://aws.amazon.com/apache2.0/ # # This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS # OF ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. require 'aws-sdk-lambda' # v2: require 'aws-sdk' require 'json' # To run on Windows: require 'os' if OS.windows? Aws.use_bundled_cert! end client = Aws::Lambda::Client.new(region: 'us-west-2') # Get the 10 most recent items req_payload = {:SortBy => 'time', :SortOrder => 'descending', :NumberToGet => 10} payload = JSON.generate(req_payload) resp = client.invoke({ function_name: 'MyGetItemsFunction', invocation_type: 'RequestResponse', log_type: 'None', payload: payload }) resp_payload = JSON.parse(resp.payload.string) # , symbolize_names: true) # If the status code is 200, the call succeeded if resp_payload["statusCode"] == 200 # If the result is success, we got our items if resp_payload["body"]["result"] == "success" # Print out items resp_payload["body"]["data"].each do |item| puts item end end end
GitHub