AWS SDK for JavaScript v2 はサポート終了となりました。AWS SDK for JavaScript v3 に移行することをお勧めします。その他の詳細、移行方法については、こちらの発表内容
無名コールバック関数の使用
AWS.Request オブジェクトを作成する各サービスオブジェクトメソッドは、最後のパラメータとして無名コールバック関数を使用できます。このコールバック関数の署名は次のとおりです。
function(error, data) { // callback handling code }
このコールバック関数が実行されるのは、成功したレスポンスまたはエラーデータが返されたときです。メソッドの呼び出しに成功すると、レスポンスの内容は data パラメータでコールバック関数に利用可能になります。呼び出しが成功しない場合、エラーの詳細は error パラメータに記載されます。
通常、コールバック関数内のコードはエラーをテストし、エラーが返された場合はそれを処理します。エラーが返されない場合、コードは data パラメータからレスポンス内のデータを取得します。コールバック関数の基本的な形式は次の例のようになります。
function(error, data) { if (error) { // error handling code console.log(error); } else { // data handling code console.log(data); } }
前の例では、エラーまたは返されたデータの詳細がコンソールのログに記録されます。サービスオブジェクトのメソッド呼び出しの一部として渡されるコールバック関数の例を、次に示します。
new AWS.EC2({apiVersion: '2014-10-01'}).describeInstances(function(error, data) { if (error) { console.log(error); // an error occurred } else { console.log(data); // request succeeded } });
リクエストオブジェクトとレスポンスオブジェクトへのアクセス
コールバック関数内で、JavaScript キーワード this は、ほとんどのサービスの基盤となる AWS.Response オブジェクトを参照します。次の例では、未加工のレスポンスデータとヘッダーをログに記録してデバッグを支援するため、AWS.Response オブジェクトの httpResponse プロパティをコールバック関数内で使用します。
new AWS.EC2({apiVersion: '2014-10-01'}).describeInstances(function(error, data) { if (error) { console.log(error); // an error occurred // Using this keyword to access AWS.Response object and properties console.log("Response data and headers: " + JSON.stringify(this.httpResponse)); } else { console.log(data); // request succeeded } });
また、AWS.Response オブジェクトには元のメソッド呼び出しによって送信された AWS.Request を含む Request プロパティがあるため、行われたリクエストの詳細にアクセスすることもできます。