

 適用於 JavaScript 的 AWS SDK v2 已end-of-support。我們建議您遷移至 [適用於 JavaScript 的 AWS SDK v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/)。如需如何遷移的其他詳細資訊和資訊，請參閱此[公告](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 入門 適用於 JavaScript 的 AWS SDK
<a name="getting-started"></a>

 適用於 JavaScript 的 AWS SDK 提供存取瀏覽器指令碼或 Node.js 中的 Web 服務。本節有兩個入門練習，說明如何在每個 JavaScript 環境中使用適用於 JavaScript 的 SDK。

**Topics**
+ [

# 瀏覽器指令碼入門
](getting-started-browser.md)
+ [

# Node.js 入門
](getting-started-nodejs.md)

# 瀏覽器指令碼入門
<a name="getting-started-browser"></a>

![\[JavaScript code example that applies to browser execution\]](http://docs.aws.amazon.com/zh_tw/sdk-for-javascript/v2/developer-guide/images/browsericon.png)

**這個瀏覽器指令碼範例會說明：**
+ 如何使用 Amazon Cognito Identity 從瀏覽器指令碼存取 AWS 服務。
+ 如何使用 Amazon Polly 將文字轉換為合成語音。
+ 如何使用 presigner 物件建立預先簽章的 URL。

## 使用案例
<a name="getting-started-browser-scenario"></a>

Amazon Polly 是一種雲端服務，可將文字轉換為逼真的語音。您可以使用 Amazon Polly 來開發可提高參與度和可存取性的應用程式。Amazon Polly 支援多種語言，並包含各種栩栩如生的語音。如需 Amazon Polly 的詳細資訊，請參閱 [https://docs.aws.amazon.com/polly/latest/dg/](https://docs.aws.amazon.com/polly/latest/dg/)。

此範例示範如何設定和執行簡單的瀏覽器指令碼，該指令碼會接受您輸入的文字、將該文字傳送至 Amazon Polly，然後傳回文字的合成音訊 URL 供您播放。瀏覽器指令碼使用 Amazon Cognito Identity 來提供存取 AWS 服務所需的登入資料。您會在瀏覽器指令碼中看到載入和使用適用於 JavaScript 的 SDK 的基本模式。

**注意**  
本範例的合成語音播放，必須使用支援 HTML 5 音訊的瀏覽器執行。

![\[瀏覽器指令碼如何與 Amazon Cognito Identity 和 Amazon Polly 服務互動的圖例\]](http://docs.aws.amazon.com/zh_tw/sdk-for-javascript/v2/developer-guide/images/browserscenario.png)


瀏覽器指令碼使用以下 APIs，使用適用於 JavaScript 的 SDK 來合成文字：
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityCredentials.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityCredentials.html) 建構函數
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Polly/Presigner.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Polly/Presigner.html) 建構函數
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Polly/Presigner.html#getSynthesizeSpeechUrl-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Polly/Presigner.html#getSynthesizeSpeechUrl-property)

## 步驟 1：建立 Amazon Cognito 身分集區
<a name="getting-started-browser-create-identity-pool"></a>

在本練習中，您會建立並使用 Amazon Cognito 身分集區，為 Amazon Polly 服務提供未經驗證的瀏覽器指令碼存取權。建立身分集區也會建立兩個 IAM 角色，一個用於支援身分提供者驗證的使用者，另一個用於支援未經驗證的訪客使用者。

在本範例中，我們只會使用未經驗證的使用者角色，以專注進行任務重點。您之後可以整合對身分提供者和已驗證使用者的支援。如需新增 Amazon Cognito 身分集區的詳細資訊，請參閱《*Amazon Cognito 開發人員指南*》中的[教學課程：建立身分集](https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-create-identity-pool.html)區。

**建立 Amazon Cognito 身分集區**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/cognito/](https://console.aws.amazon.com/cognito/)：// 開啟 Amazon Cognito 主控台。

1. 在左側導覽窗格中，選擇**身分集區**。

1. 選擇 **建立身分池**。

1. 在**設定身分集區信任**中，選擇**訪客存取**以進行使用者身分驗證。

1. 在**設定許可**中，選擇**建立新的 IAM 角色**，然後在 **IAM 角色**名稱中輸入名稱 （例如 *getStartedRole*)。

1. 在**設定屬性**中，在**身分集**區名稱中輸入名稱 （例如 *getStartedPool*)。

1. 在 **檢閱和建立** 中，確認您為新身分池所做的選擇。選取 **編輯** 以返回精靈並變更任何設定。當您完成時，請選取 **建立身分池**。

1. 請注意**身分集區 ID** 和新建立的 Amazon Cognito 身分集區的**區域**。您需要這些值來取代 中的 *IDENTITY\$1POOL\$1ID* 和 *REGION*[步驟 4：編寫瀏覽器指令碼](#getting-started-browser-write-sample)。

建立 Amazon Cognito 身分集區後，您就可以新增瀏覽器指令碼所需的 Amazon Polly 許可。

## 步驟 2：將政策新增至已建立的 IAM 角色
<a name="getting-started-browser-iam-role"></a>

若要啟用瀏覽器指令碼存取 Amazon Polly 以進行語音合成，請使用為 Amazon Cognito 身分集區建立的未驗證 IAM 角色。這需要您將 IAM 政策新增至角色。如需修改 IAM 角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[修改角色許可政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy)。

**將 Amazon Polly 政策新增至與未驗證使用者相關聯的 IAM 角色**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 選擇您要修改的角色名稱 （例如 *getStartedRole*)，然後選擇**許可**索引標籤。

1. 選擇**新增許可**，然後選擇**連接政策**。

1. 在新增此角色的**許可**頁面中，尋找並選取 **AmazonPollyReadOnly** 的核取方塊。
**注意**  
您可以使用此程序來啟用對任何 AWS 服務的存取。

1. 選擇**新增許可**。

建立 Amazon Cognito 身分集區並將 Amazon Polly 的許可新增至未經驗證使用者的 IAM 角色之後，您就可以建置網頁和瀏覽器指令碼。

## 步驟 3：建立 HTML 頁面
<a name="getting-started-browser-create-html"></a>

範例應用程式是由單一 HTML 頁面所組成，其中包含使用者界面和瀏覽器指令碼。若要開始，請建立 HTML 文件並將下列內容複製到該文件。該頁面包括輸入欄位和按鈕、用來播放合成語音的 `<audio>` 元素，以及用來顯示訊息的 `<p>` 元素。(請注意，本頁面底部會顯示完整範例。)

如需 `<audio>` 元素的詳細資訊，請參閱[音訊](https://www.w3schools.com/tags/tag_audio.asp)。

```
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>AWS SDK for JavaScript - Browser Getting Started Application</title>
  </head>

  <body>
    <div id="textToSynth">
      <input autofocus size="23" type="text" id="textEntry" value="It's very good to meet you."/>
      <button class="btn default" onClick="speakText()">Synthesize</button>
      <p id="result">Enter text above then click Synthesize</p>
    </div>
    <audio id="audioPlayback" controls>
      <source id="audioSource" type="audio/mp3" src="">
    </audio>
    <!-- (script elements go here) -->
 </body>
</html>
```

儲存 HTML 檔案，然後將其命名為 `polly.html`。當您為應用程式建立使用者界面後，就能夠開始新增可執行該應用程式的瀏覽器指令碼程式碼。

## 步驟 4：編寫瀏覽器指令碼
<a name="getting-started-browser-write-sample"></a>

建立瀏覽器指令碼時要做的第一件事，就是在頁面的 `<script>` 元素後面新增 `<audio>`元素，以包含適用於 JavaScript 的 SDK。若要尋找目前的 SDK\$1VERSION\$1NUMBER，請參閱《 API 參考指南》中適用於 JavaScript 的 SDK 的 API 參考。 [適用於 JavaScript 的 AWS SDK](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/)

```
<script src="https://sdk.amazonaws.com/js/aws-sdk-SDK_VERSION_NUMBER.min.js"></script>
```

接著，在軟體開發套件項目後面新增新的 `<script type="text/javascript">` 元素。您需要將這個元素新增至瀏覽器指令碼。設定 SDK AWS 的區域和登入資料。接下來，建立一個名為 `speakText()` 的函數，此函數會成為按鈕叫用的事件處理常式。

若要與 Amazon Polly 合成語音，您必須提供各種參數，包括輸出的聲音格式、取樣率、要使用的語音 ID，以及要播放的文字。在您最初建立參數時，請將 `Text:` 參數設定為空白字串；系統隨後會將 `Text:` 參數設定為您從網頁 `<input>` 元素擷取的數值。將下列程式碼中的 *IDENTITY\$1POOL\$1ID* 和 *REGION* 取代為 中記下的值[步驟 1：建立 Amazon Cognito 身分集區](#getting-started-browser-create-identity-pool)。

```
    <script type="text/javascript">

        // Initialize the Amazon Cognito credentials provider
        AWS.config.region = 'REGION';
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({IdentityPoolId: 'IDENTITY_POOL_ID'});

        // Function invoked by button click
        function speakText() {
            // Create the JSON parameters for getSynthesizeSpeechUrl
            var speechParams = {
                OutputFormat: "mp3",
                SampleRate: "16000",
                Text: "",
                TextType: "text",
                VoiceId: "Matthew"
            };
            speechParams.Text = document.getElementById("textEntry").value;
```

Amazon Polly 會將合成語音傳回為音訊串流。在瀏覽器中播放該音訊的最簡單方法是讓 Amazon Polly 在預先簽章的 URL 上提供音訊，然後您可以在網頁中將 `src` 設定為 `<audio>`元素的屬性。

請建立新的 `AWS.Polly` 服務物件。然後，建立要用來建構預先簽章 URL 的 `AWS.Polly.Presigner` 物件，以便從中擷取合成語音音訊。您必須將定義的語音參數及建立的 `AWS.Polly` 服務物件傳遞至 `AWS.Polly.Presigner` 建構函數。

Presigner 物件建立完畢後，請呼叫該物件的 `getSynthesizeSpeechUrl` 方法來傳遞語音參數。如果成功，這個方法會傳回合成語音的 URL，您稍後能將其指派給 `<audio>` 元素以供播放使用。

```
            // Create the Polly service object and presigner object
            var polly = new AWS.Polly({apiVersion: '2016-06-10'});
            var signer = new AWS.Polly.Presigner(speechParams, polly)

            // Create presigned URL of synthesized speech file
            signer.getSynthesizeSpeechUrl(speechParams, function(error, url) {
            if (error) {
                document.getElementById('result').innerHTML = error;
            } else {
                document.getElementById('audioSource').src = url;
                document.getElementById('audioPlayback').load();
                document.getElementById('result').innerHTML = "Speech ready to play.";
            }
          });
        }
    </script>
```

## 步驟 5：執行範例
<a name="getting-started-browser-run-sample"></a>

請將 `polly.html` 載入 Web 瀏覽器，即可執行範例應用程式。瀏覽器中出現的內容應如下所示。

![\[Web 應用程式瀏覽器界面\]](http://docs.aws.amazon.com/zh_tw/sdk-for-javascript/v2/developer-guide/images/browsergetstarted.png)


在輸入方塊中輸入您想轉成語音的詞句，接著選擇 **Synthesize (合成)**。當音訊準備好播放時，將出現一則訊息。您可以使用音訊播放器控制項來聆聽合成語音。

## 完整範例
<a name="getting-started-browser-full-sample"></a>

以下是含有瀏覽器指令碼的完整 HTML 頁面，您也能夠在 [GitHub 上](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code//browserstart/polly.html)取得。

```
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>AWS SDK for JavaScript - Browser Getting Started Application</title>
  </head>

  <body>
    <div id="textToSynth">
      <input autofocus size="23" type="text" id="textEntry" value="It's very good to meet you."/>
      <button class="btn default" onClick="speakText()">Synthesize</button>
      <p id="result">Enter text above then click Synthesize</p>
    </div>
    <audio id="audioPlayback" controls>
      <source id="audioSource" type="audio/mp3" src="">
    </audio>
    <script src="https://sdk.amazonaws.com/js/aws-sdk-2.410.0.min.js"></script>
    <script type="text/javascript">

        // Initialize the Amazon Cognito credentials provider
        AWS.config.region = 'REGION';
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({IdentityPoolId: 'IDENTITY_POOL_ID'});

        // Function invoked by button click
        function speakText() {
            // Create the JSON parameters for getSynthesizeSpeechUrl
            var speechParams = {
                OutputFormat: "mp3",
                SampleRate: "16000",
                Text: "",
                TextType: "text",
                VoiceId: "Matthew"
            };
            speechParams.Text = document.getElementById("textEntry").value;

            // Create the Polly service object and presigner object
            var polly = new AWS.Polly({apiVersion: '2016-06-10'});
            var signer = new AWS.Polly.Presigner(speechParams, polly)

            // Create presigned URL of synthesized speech file
            signer.getSynthesizeSpeechUrl(speechParams, function(error, url) {
            if (error) {
                document.getElementById('result').innerHTML = error;
            } else {
                document.getElementById('audioSource').src = url;
                document.getElementById('audioPlayback').load();
                document.getElementById('result').innerHTML = "Speech ready to play.";
            }
          });
        }
    </script>
  </body>
</html>
```

## 可能的增強功能
<a name="getting-started-browser-variations"></a>

以下是此應用程式的變化，您可以用來進一步探索在瀏覽器指令碼中使用適用於 JavaScript 的 SDK。
+ 實驗其他音訊輸出格式。
+ 新增 選項，以選取 Amazon Polly 提供的任何各種語音。
+ 整合 Facebook 或 Amazon 等身分提供者，以搭配已驗證的 IAM 角色使用。

# Node.js 入門
<a name="getting-started-nodejs"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/zh_tw/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**這個 Node.js 程式碼範例會說明：**
+ 如何為專案建立 `package.json` 資訊清單。
+ 如何安裝並加入專案所使用的模組。
+ 如何從`AWS.S3`用戶端類別建立 Amazon Simple Storage Service (Amazon S3) 服務物件。
+ 如何建立 Amazon S3 儲存貯體，並將物件上傳至該儲存貯體。

## 使用案例
<a name="getting-started-nodejs-scenario"></a>

此範例示範如何設定和執行簡單的 Node.js 模組來建立 Amazon S3 儲存貯體，然後將文字物件新增至其中。

由於 Amazon S3 中的儲存貯體名稱必須是全域唯一的，此範例包含第三方 Node.js 模組，可產生您可以併入儲存貯體名稱的唯一 ID 值。這個額外的模組名為 `uuid`。

## 先決條件任務
<a name="getting-started-nodejs-prerequisites"></a>

若要設定和執行此範例，您必須先完成這些任務：
+ 建立可用來開發 Node.js 模組的工作目錄，並將該目錄命名為 `awsnodesample`。請注意，目錄必須建立在可由應用程式更新的位置。例如，請勿在 Windows 環境的「C:\$1Program Files」下建立目錄。
+ 安裝 Node.js。如需詳細資訊，請參閱 [Node.js](https://nodejs.org) 網站。您可以前往 [https://nodejs.org/en/download/current/](https://nodejs.org/en/download/current/)，尋找並下載適用於各種作業系統的 Node.js 目前版本和 LTS 版本。

**Contents**
+ [

## 使用案例
](#getting-started-nodejs-scenario)
+ [

## 先決條件任務
](#getting-started-nodejs-prerequisites)
+ [

## 步驟 1：安裝 SDK 和相依性
](#getting-started-nodejs-install-sdk)
+ [

## 步驟 2：設定您的登入資料
](#getting-started-nodejs-credentials)
+ [

## 步驟 3：建立專案的套件 JSON
](#getting-started-nodejs-download)
+ [

## 步驟 4：編寫 Node.js 程式碼
](#getting-started-nodejs-js-code)
+ [

## 步驟 5：執行範例
](#getting-started-nodejs-run-sample)

## 步驟 1：安裝 SDK 和相依性
<a name="getting-started-nodejs-install-sdk"></a>

您可以使用 npm (Node.js 套件管理員） 安裝適用於 JavaScript 的 SDK 套件。 [https://www.npmjs.com](https://www.npmjs.com)

移至套件中的 `awsnodesample` 目錄，並將下列指令輸入命令列。

```
npm install aws-sdk
```

此命令會在您的專案中安裝適用於 JavaScript 的 SDK，並更新`package.json`以將 SDK 列為專案相依性。您可以在 [npm 網站](https://www.npmjs.com)搜尋「aws-sdk」，找到​有關此套件的資訊。

接下來，請將 `uuid` 模組安裝至專案，方法是在命令列中輸入下列指令；該指令會隨即安裝模組並更新 `package.json`。如需 `uuid` 的詳細資訊，請參閱 [https://www.npmjs.com/package/uuid](https://www.npmjs.com/package/uuid) 上的模組頁面。

```
npm install uuid
```

系統會在專案的 `node_modules` 子目錄中安裝這些套件及其相關聯的程式碼。

如需安裝 Node.js 套件的詳細資訊，請參閱在[本機下載和安裝套件](https://docs.npmjs.com/getting-started/installing-npm-packages-locally)，以及 [npm (Node.](https://www.npmjs.com)[js 套件管理員） 網站上的建立 Node.js 模組](https://docs.npmjs.com/getting-started/creating-node-modules)。如需下載和安裝 的詳細資訊 適用於 JavaScript 的 AWS SDK，請參閱 [安裝適用於 JavaScript 的 SDK](installing-jssdk.md)。

## 步驟 2：設定您的登入資料
<a name="getting-started-nodejs-credentials"></a>

您需要提供登入資料給 ， AWS 以便只有您的帳戶及其資源可供 SDK 存取。如需取得帳戶登入資料的詳細資訊，請參閱[使用 進行 SDK 身分驗證 AWS](getting-your-credentials.md)。

建議您建立一個共用登入資料檔案，以便保留此資訊。若要了解作法，請參閱[從共用登入資料檔案中在 Node.js 中載入登入資料](loading-node-credentials-shared.md)。登入資料檔案應該如下方範例所示。

```
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
```

您可以使用 Node.js 執行下列程式碼，判斷是否已正確設定登入資料：

```
var AWS = require("aws-sdk");

AWS.config.getCredentials(function(err) {
  if (err) console.log(err.stack);
  // credentials not loaded
  else {
    console.log("Access key:", AWS.config.credentials.accessKeyId);
  }
});
```

同樣地，如果您在 `config` 檔案中正確設定區域，您可以將`AWS_SDK_LOAD_CONFIG`環境變數設定為任何值並使用下列程式碼來顯示該值：

```
var AWS = require("aws-sdk");

console.log("Region: ", AWS.config.region);
```

## 步驟 3：建立專案的套件 JSON
<a name="getting-started-nodejs-download"></a>

`awsnodesample` 專案目錄建立完畢後，您便能建立和新增 `package.json` 檔案，藉此保留 Node.js 專案的中繼資料。如需在 Node.js 專案`package.json`中使用 的詳細資訊，請參閱[建立 package.json 檔案](https://docs.npmjs.com/creating-a-package-json-file)。

在專案目錄中，建立稱為 `package.json` 的新檔案。接著，將下列 JSON 新增至檔案。

```
{
  "dependencies": {},
  "name": "aws-nodejs-sample",
  "description": "A simple Node.js application illustrating usage of the SDK for JavaScript.",
  "version": "1.0.1",
  "main": "sample.js",
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "NAME",
  "license": "ISC"
}
```

儲存檔案。在您安裝所需模組時，系統會完成檔案的 `dependencies` 部分。您可以在 [GitHub 的此處](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/nodegetstarted/example_package.json)找到​說明這些相依性的 JSON 範例檔案。

## 步驟 4：編寫 Node.js 程式碼
<a name="getting-started-nodejs-js-code"></a>

建立名為 `sample.js` 的新檔案，其中包含範例程式碼。首先新增`require`函數呼叫，以包含適用於 JavaScript 的 SDK 和`uuid`模組，讓您可以使用它們。

建置唯一儲存貯體名稱，用於透過將唯一 ID 值附加至可辨識的字首來建立 Amazon S3 儲存貯體，在此情況下為 `'node-sdk-sample-'`。請呼叫 `uuid` 模組來產生唯一 ID。然後，為 `Key` 參數建立一個名稱，該參數可用來上傳物件至儲存貯體。

建立 `promise` 物件，以便呼叫 `AWS.S3` 服務物件的 `createBucket` 方法。收到成功回應後，建立將文字上傳至新建儲存貯體所需的參數。使用另一個 promise 來呼叫 `putObject` 方法，並上傳文字物件至儲存貯體。

```
// Load the SDK and UUID
var AWS = require("aws-sdk");
var uuid = require("uuid");

// Create unique bucket name
var bucketName = "node-sdk-sample-" + uuid.v4();
// Create name for uploaded object key
var keyName = "hello_world.txt";

// Create a promise on S3 service object
var bucketPromise = new AWS.S3({ apiVersion: "2006-03-01" })
  .createBucket({ Bucket: bucketName })
  .promise();

// Handle promise fulfilled/rejected states
bucketPromise
  .then(function (data) {
    // Create params for putObject call
    var objectParams = {
      Bucket: bucketName,
      Key: keyName,
      Body: "Hello World!",
    };
    // Create object upload promise
    var uploadPromise = new AWS.S3({ apiVersion: "2006-03-01" })
      .putObject(objectParams)
      .promise();
    uploadPromise.then(function (data) {
      console.log(
        "Successfully uploaded data to " + bucketName + "/" + keyName
      );
    });
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

您可以在 [GitHub 上](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/nodegetstarted/sample.js)找到這個範本程式碼。

## 步驟 5：執行範例
<a name="getting-started-nodejs-run-sample"></a>

輸入下列命令執行範例。

```
node sample.js
```

如果上傳成功，您就會在命令列看到確認訊息。您也能夠在 [Amazon S3 主控台](https://console.aws.amazon.com/s3/)中尋找儲存貯體，以及上傳的文字物件。