我們宣布
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立和呼叫服務物件
JavaScript API 支援大多數可用的 AWS 服務。中的每個服務類別 JavaScript API都會提供其服務中每個API呼叫的存取權。如需 中服務類別、操作和參數的詳細資訊 JavaScript API,請參閱API參考 。
在 Node.js SDK中使用 時,您可以使用 將SDK套件新增至您的應用程式require
,這可提供所有目前服務的支援。
var AWS = require('aws-sdk');
SDK 搭配瀏覽器使用 時 JavaScript,您可以使用 AWS託管SDK套件將SDK套件載入瀏覽器指令碼。若要載入SDK套件,請新增下列<script>
元素:
<script src="https://sdk.amazonaws.com/js/aws-sdk-
SDK_VERSION_NUMBER
.min.js"></script>
若要尋找目前的 SDK_VERSION_NUMBER,請參閱API參考指南 JavaScript 中的 SDK 的參考。 AWS SDK for JavaScript API
預設託管SDK套件可支援可用服務的子集 AWS 。如需瀏覽器託管SDK套件中預設服務的清單,請參閱 API 參考中的支援服務。如果停用CORS安全性檢查,您可以將 SDK與其他 服務搭配使用。在此情況下,您可以建置自訂版本的 SDK,以包含您所需的其他服務。如需建置自訂版本的詳細資訊SDK,請參閱 建立適用於瀏覽器的軟體開發套件。
要求個別服務
JavaScript 如先前所示需要 SDK 的 將整個 包含在程式碼SDK中。或者,您也能選擇僅需加入程式碼所使用的個別服務。請考慮下列用來建立 Amazon S3 服務物件的程式碼。
// Import the AWS SDK
var AWS = require('aws-sdk');
// Set credentials and Region
// This can also be done directly on the service client
AWS.config.update({region: 'us-west-1', credentials: {YOUR_CREDENTIALS
}});
var s3 = new AWS.S3({apiVersion: '2006-03-01'});
在上一個範例中,require
函數會指定整個 SDK。如果只包含 SDK Amazon S3 服務所需的 部分,則透過網路傳輸的程式碼量以及程式碼的記憶體負荷會大幅減少。若需要加入個別服務,請呼叫 require
函數,其中應包括全部小寫的服務建構函數,如下所示。
require('aws-sdk/clients/SERVICE
');
以下是建立先前 Amazon S3 服務物件的程式碼,其僅包含 的 Amazon S3 部分時看起來的樣子SDK。
// Import the Amazon S3 service client
var S3 = require('aws-sdk/clients/s3');
// Set credentials and Region
var s3 = new S3({
apiVersion: '2006-03-01',
region: 'us-west-1',
credentials: {YOUR_CREDENTIALS
}
});
您仍然可以存取全域 AWS 命名空間,而無需連接每個服務。
require('aws-sdk/global');
這個技術很適合用來將相同組態套用至多個個別服務。舉例而言,您可以提供相同的登入資料給所有服務。要求個別服務應該能減少 Node.js 環境中的載入時間,以及記憶體耗用情形。使用綁定工具如 Browserify 或 Webpack 完成時,需要個別服務會導致 SDK變成完整大小的一小部分。這有助於解決記憶體或磁碟空間受限的環境,例如 IoT 裝置或 Lambda 函數。
建立服務物件
若要透過 存取服務功能 JavaScript API,請先建立服務物件,透過該物件存取基礎用戶端類別提供的一組功能。普遍來說,系統會提供一個用戶端類別給每個服務,但某些服務會將功能存取權限分成多個用戶端類別。
您必須針對提供功能存取權的類別建立執行個體,才能使用該功能。下列範例顯示從AWS.DynamoDB
用戶端類別為 DynamoDB 建立服務物件。
var dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
依預設,服務物件會設定為同時用於設定 的全域設定SDK。然而,您可以利用服務物件特定的執行時間組態資料來設定該服務物件。系統會先套用全域組態設定,隨後再套用服務特定的組態資料。
在下列範例中,Amazon EC2服務物件是使用特定區域的組態建立,但否則會使用全域組態。
var ec2 = new AWS.EC2({region: 'us-west-2', apiVersion: '2014-10-01'});
本工具除了支援套用服務特定組態至個別服務物件以外,也能讓您將服務特定組態套用至所有指定類別新建的服務物件。例如,若要設定從 Amazon EC2類別建立的所有服務物件以使用美國西部 (奧勒岡) (us-west-2
) 區域,請將下列項目新增至AWS.config
全域組態物件。
AWS.config.ec2 = {region: 'us-west-2', apiVersion: '2016-04-01'};
鎖定服務物件的API版本
您可以在建立物件時指定 apiVersion
選項,將服務物件鎖定至特定API版本的服務。在下列範例中,會建立鎖定至特定API版本的 DynamoDB 服務物件。
var dynamodb = new AWS.DynamoDB({apiVersion: '2011-12-05'});
如需鎖定服務物件API版本的詳細資訊,請參閱 鎖定 API 版本。
指定服務物件參數
呼叫服務物件的方法時, JSON會視需要在 中傳遞參數API。例如,在 Amazon S3 中,若要取得指定儲存貯體和金鑰的物件,請將下列參數傳遞至 getObject
方法。如需傳遞JSON參數的詳細資訊,請參閱 使用 JSON。
s3.getObject({Bucket: 'bucketName', Key: 'keyName'});
如需 Amazon S3 參數的詳細資訊,請參閱 API Class: AWS.S3
參考中的 。
此外,當您使用 params
參數建立服務物件時,也能將數值繫結至個別參數。服務物件的 params
參數值是一個映射屬性,可指定該服務物件定義的一個或多個參數值。下列範例顯示 Amazon S3 服務物件繫結至名為 的儲存貯體的Bucket
參數amzn-s3-demo-bucket
。
var s3bucket = new AWS.S3({params: {Bucket: 'amzn-s3-demo-bucket'}, apiVersion: '2006-03-01' });
一旦將服務物件繫結至儲存貯體,s3bucket
服務物件即會視 amzn-s3-demo-bucket
參數值為預設值,後續操作中無需再加以指定。如果將物件用於參數值不適用的操作,系統就會忽略任何繫結的參數值。您能夠指定新數值,以便在呼叫服務物件時覆寫此繫結參數。
var s3bucket = new AWS.S3({ params: {Bucket: 'amzn-s3-demo-bucket'}, apiVersion: '2006-03-01' });
s3bucket.getObject({Key: 'keyName'});
// ...
s3bucket.getObject({Bucket: 'amzn-s3-demo-bucket3', Key: 'keyOtherName'});
有關每種方法可用參數的詳細資訊,請參閱 API參考。