

 [Panduan Referensi API AWS SDK untuk JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) menjelaskan secara rinci semua operasi API untuk AWS SDK untuk JavaScript versi 3 (V3). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# SDK untuk contoh JavaScript kode
<a name="sdk-code-samples"></a>

Topik di bagian ini berisi contoh bagaimana menggunakan AWS SDK untuk JavaScript dengan APIs berbagai layanan untuk melaksanakan tugas-tugas umum.

Temukan kode sumber untuk contoh-contoh ini dan lainnya di [Repositori Contoh AWS Kode](https://github.com/awsdocs/aws-doc-sdk-examples) di. GitHub Untuk mengusulkan contoh kode baru agar tim AWS dokumentasi mempertimbangkan untuk memproduksi, buat permintaan. Tim ingin menghasilkan contoh kode yang mencakup skenario dan kasus penggunaan yang lebih luas, dibandingkan cuplikan kode sederhana yang hanya mencakup panggilan API individual. Untuk petunjuknya, lihat *bagian Penulisan kode* [di GitHub pedoman kontribusi](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/CONTRIBUTING.md).

**penting**  
Contoh-contoh ini menggunakan ECMAScript6 sintaks impor/ekspor.   
Ini memerlukan Node.js versi 14.17 atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md) pedoman konversi.

**Topics**
+ [

# JavaScript ES6/CommonJS sintaks
](sdk-example-javascript-syntax.md)
+ [

# AWS Elemental MediaConvert contoh
](emc-examples.md)
+ [

# AWS Lambda contoh
](lambda-examples.md)
+ [

# Contoh Amazon Lex
](lex-examples.md)
+ [

# Contoh Amazon Polly
](polly-examples.md)
+ [

# Contoh Amazon Redshift
](redshift-examples.md)
+ [

# Contoh Layanan Email Sederhana Amazon
](ses-examples.md)
+ [

# Contoh Layanan Pemberitahuan Sederhana Amazon
](sns-examples.md)
+ [

# Contoh Amazon Transcribe
](Transcribe-examples.md)
+ [

# Menyiapkan Node.js pada instans Amazon EC2
](setting-up-node-on-ec2-instance.md)
+ [

# Memanggil Lambda dengan API Gateway
](api-gateway-invoking-lambda-example.md)
+ [

# Membuat acara terjadwal untuk menjalankan AWS Lambda fungsi
](scheduled-events-invoking-lambda-example.md)
+ [

# Membangun chatbot Amazon Lex
](lex-bot-example.md)

# JavaScript ES6/CommonJS sintaks
<a name="sdk-example-javascript-syntax"></a>

Contoh AWS SDK untuk JavaScript kode ditulis dalam ECMAScript 6 (ES6). ES6 membawa sintaks baru dan fitur baru untuk membuat kode Anda lebih modern dan mudah dibaca, dan melakukan lebih banyak lagi. 

ES6 mengharuskan Anda menggunakan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) Namun, jika Anda mau, Anda dapat mengonversi salah satu contoh kami ke sintaks CommonJS menggunakan pedoman berikut:
+ Hapus `"type" : "module"` dari `package.json` lingkungan proyek Anda.
+ Mengkonversi semua ES6 `import` pernyataan ke pernyataan CommonJS`require`. Misalnya, konversi:

  ```
  import { CreateBucketCommand } from "@aws-sdk/client-s3";
  import { s3 } from "./libs/s3Client.js";
  ```

  Untuk CommonJS-nya yang setara:

  ```
  const { CreateBucketCommand } = require("@aws-sdk/client-s3");
  const { s3 } = require("./libs/s3Client.js");
  ```
+ Mengkonversi semua ES6 `export` pernyataan ke pernyataan CommonJS`module.exports`. Misalnya, konversi:

  ```
  export {s3}
  ```

  Untuk CommonJS-nya yang setara:

  ```
  module.exports = {s3}
  ```

Contoh berikut menunjukkan contoh kode untuk membuat bucket Amazon S3 di ES6 keduanya dan CommonJS.

------
#### [ ES6 ]

libs/s3Client.js

```
// Create service client module using ES6 syntax.
import { S3Client } from "@aws-sdk/client-s3";
// Set the AWS region
const REGION = "eu-west-1"; //e.g. "us-east-1"
// Create Amazon S3 service object.
const s3 = new S3Client({ region: REGION });
// Export 's3' constant.
export {s3};
```

s3\$1createbucket.js

```
// Get service clients module and commands using ES6 syntax.
 import { CreateBucketCommand } from "@aws-sdk/client-s3";
 import { s3 } from "./libs/s3Client.js";

// Get service clients module and commands using CommonJS syntax.
// const { CreateBucketCommand } = require("@aws-sdk/client-s3");
// const { s3 } = require("./libs/s3Client.js");

// Set the bucket parameters
const bucketParams = { Bucket: "BUCKET_NAME" };

// Create the Amazon S3 bucket.
const run = async () => {
  try {
    const data = await s3.send(new CreateBucketCommand(bucketParams));
    console.log("Success", data.Location);
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------
#### [ CommonJS ]

libs/s3Client.js

```
// Create service client module using CommonJS syntax.
 const { S3Client } = require("@aws-sdk/client-s3");
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
 // Create Amazon S3 service object.
const s3 = new S3Client({ region: REGION });
// Export 's3' constant.
 module.exports ={s3};
```

s3\$1createbucket.js

```
// Get service clients module and commands using CommonJS syntax.
const { CreateBucketCommand } = require("@aws-sdk/client-s3");
const { s3 } = require("./libs/s3Client.js");

// Set the bucket parameters
const bucketParams = { Bucket: "BUCKET_NAME" };

// Create the Amazon S3 bucket.
const run = async () => {
  try {
    const data = await s3.send(new CreateBucketCommand(bucketParams));
    console.log("Success", data.Location);
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

# AWS Elemental MediaConvert contoh
<a name="emc-examples"></a>

AWS Elemental MediaConvert adalah layanan transcoding video berbasis file dengan fitur tingkat siaran. Anda dapat menggunakannya untuk membuat aset untuk siaran dan untuk pengiriman video-on-demand (VOD) di internet. Untuk informasi selengkapnya, silakan lihat [Panduan Pengguna *AWS Elemental MediaConvert *](https://docs.aws.amazon.com/mediaconvert/latest/ug/).

 JavaScript API untuk MediaConvert diekspos melalui kelas `MediaConvert` klien. Untuk informasi selengkapnya, lihat [Kelas: MediaConvert](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/) di Referensi API.

**Topics**
+ [

# Membuat dan mengelola pekerjaan transcoding di MediaConvert
](emc-examples-jobs.md)
+ [

# Menggunakan template pekerjaan di MediaConvert
](emc-examples-templates.md)

# Membuat dan mengelola pekerjaan transcoding di MediaConvert
<a name="emc-examples-jobs"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Cara membuat pekerjaan transcoding di MediaConvert.
+ Cara membatalkan pekerjaan transcoding.
+ Cara mengambil JSON untuk pekerjaan transcoding yang selesai.
+ Cara mengambil array JSON hingga 20 pekerjaan yang paling baru dibuat.

## Skenario
<a name="emc-examples-jobs-scenario"></a>

Dalam contoh ini, Anda menggunakan modul Node.js untuk memanggil MediaConvert untuk membuat dan mengelola pekerjaan transcoding. Kode menggunakan SDK JavaScript untuk melakukan ini dengan menggunakan metode kelas MediaConvert klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CreateJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CreateJobCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CancelJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CancelJobCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/GetJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/GetJobCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/ListJobsCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/ListJobsCommand/)

## Tugas prasyarat
<a name="emc-examples-jobs-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, pertama-tama selesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascriptv3/example_code/mediaconvert/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *
+ Buat dan konfigurasikan bucket Amazon S3 yang menyediakan penyimpanan untuk file input pekerjaan dan file output. Untuk detailnya, lihat [Membuat penyimpanan untuk file](https://docs.aws.amazon.com/mediaconvert/latest/ug/set-up-file-locations.html) di *Panduan AWS Elemental MediaConvert Pengguna*.
+ Unggah video input ke bucket Amazon S3 yang Anda sediakan untuk penyimpanan input. *Untuk daftar codec dan container video masukan yang didukung, lihat [Codec dan container input yang didukung di Panduan Pengguna](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html).AWS Elemental MediaConvert *
+ Buat peran IAM yang memberikan MediaConvert akses ke file input Anda dan bucket Amazon S3 tempat file output Anda disimpan. Untuk detailnya, lihat [Mengatur izin IAM](https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html) di *AWS Elemental MediaConvert Panduan Pengguna*.

**penting**  
Contoh ini menggunakan ECMAScript6 (ES6). Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .  
Namun, jika Anda lebih suka menggunakan sintaks CommonJS, silakan merujuk ke. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Mendefinisikan pekerjaan transcoding sederhana
<a name="emc-examples-jobs-spec"></a>

Buat modul Node.js dengan nama file`emc_createjob.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat JSON yang mendefinisikan parameter pekerjaan transcode.

Parameter ini cukup rinci. Anda dapat menggunakan [AWS Elemental MediaConvert konsol](https://console.aws.amazon.com/mediaconvert/) untuk menghasilkan parameter pekerjaan JSON dengan memilih pengaturan pekerjaan di konsol, lalu memilih **Tampilkan pekerjaan JSON** di bagian bawah bagian **Job**. Contoh ini menunjukkan JSON untuk pekerjaan sederhana.

**catatan**  
Ganti *JOB\$1QUEUE\$1ARN* dengan antrian MediaConvert pekerjaan, *IAM\$1ROLE\$1ARN* dengan Amazon Resource Name (ARN) dari peran IAM*OUTPUT\$1BUCKET\$1NAME*, dengan nama bucket tujuan - misalnya, "s3://OUTPUT\$1BUCKET\$1NAME/ “, *INPUT\$1BUCKET\$1AND\$1FILENAME* dan dengan bucket input dan nama file - misalnya," s3://INPUT\$1BUCKET/FILE\$1NAME”.

```
const params = {
  Queue: "JOB_QUEUE_ARN", //JOB_QUEUE_ARN
  UserMetadata: {
    Customer: "Amazon",
  },
  Role: "IAM_ROLE_ARN", //IAM_ROLE_ARN
  Settings: {
    OutputGroups: [
      {
        Name: "File Group",
        OutputGroupSettings: {
          Type: "FILE_GROUP_SETTINGS",
          FileGroupSettings: {
            Destination: "OUTPUT_BUCKET_NAME", //OUTPUT_BUCKET_NAME, e.g., "s3://BUCKET_NAME/"
          },
        },
        Outputs: [
          {
            VideoDescription: {
              ScalingBehavior: "DEFAULT",
              TimecodeInsertion: "DISABLED",
              AntiAlias: "ENABLED",
              Sharpness: 50,
              CodecSettings: {
                Codec: "H_264",
                H264Settings: {
                  InterlaceMode: "PROGRESSIVE",
                  NumberReferenceFrames: 3,
                  Syntax: "DEFAULT",
                  Softness: 0,
                  GopClosedCadence: 1,
                  GopSize: 90,
                  Slices: 1,
                  GopBReference: "DISABLED",
                  SlowPal: "DISABLED",
                  SpatialAdaptiveQuantization: "ENABLED",
                  TemporalAdaptiveQuantization: "ENABLED",
                  FlickerAdaptiveQuantization: "DISABLED",
                  EntropyEncoding: "CABAC",
                  Bitrate: 5000000,
                  FramerateControl: "SPECIFIED",
                  RateControlMode: "CBR",
                  CodecProfile: "MAIN",
                  Telecine: "NONE",
                  MinIInterval: 0,
                  AdaptiveQuantization: "HIGH",
                  CodecLevel: "AUTO",
                  FieldEncoding: "PAFF",
                  SceneChangeDetect: "ENABLED",
                  QualityTuningLevel: "SINGLE_PASS",
                  FramerateConversionAlgorithm: "DUPLICATE_DROP",
                  UnregisteredSeiTimecode: "DISABLED",
                  GopSizeUnits: "FRAMES",
                  ParControl: "SPECIFIED",
                  NumberBFramesBetweenReferenceFrames: 2,
                  RepeatPps: "DISABLED",
                  FramerateNumerator: 30,
                  FramerateDenominator: 1,
                  ParNumerator: 1,
                  ParDenominator: 1,
                },
              },
              AfdSignaling: "NONE",
              DropFrameTimecode: "ENABLED",
              RespondToAfd: "NONE",
              ColorMetadata: "INSERT",
            },
            AudioDescriptions: [
              {
                AudioTypeControl: "FOLLOW_INPUT",
                CodecSettings: {
                  Codec: "AAC",
                  AacSettings: {
                    AudioDescriptionBroadcasterMix: "NORMAL",
                    RateControlMode: "CBR",
                    CodecProfile: "LC",
                    CodingMode: "CODING_MODE_2_0",
                    RawFormat: "NONE",
                    SampleRate: 48000,
                    Specification: "MPEG4",
                    Bitrate: 64000,
                  },
                },
                LanguageCodeControl: "FOLLOW_INPUT",
                AudioSourceName: "Audio Selector 1",
              },
            ],
            ContainerSettings: {
              Container: "MP4",
              Mp4Settings: {
                CslgAtom: "INCLUDE",
                FreeSpaceBox: "EXCLUDE",
                MoovPlacement: "PROGRESSIVE_DOWNLOAD",
              },
            },
            NameModifier: "_1",
          },
        ],
      },
    ],
    AdAvailOffset: 0,
    Inputs: [
      {
        AudioSelectors: {
          "Audio Selector 1": {
            Offset: 0,
            DefaultSelection: "NOT_DEFAULT",
            ProgramSelection: 1,
            SelectorType: "TRACK",
            Tracks: [1],
          },
        },
        VideoSelector: {
          ColorSpace: "FOLLOW",
        },
        FilterEnable: "AUTO",
        PsiControl: "USE_PSI",
        FilterStrength: 0,
        DeblockFilter: "DISABLED",
        DenoiseFilter: "DISABLED",
        TimecodeSource: "EMBEDDED",
        FileInput: "INPUT_BUCKET_AND_FILENAME", //INPUT_BUCKET_AND_FILENAME, e.g., "s3://BUCKET_NAME/FILE_NAME"
      },
    ],
    TimecodeConfig: {
      Source: "EMBEDDED",
    },
  },
};
```

## Membuat pekerjaan transcoding
<a name="emc-examples-jobs-create"></a>

Setelah membuat parameter pekerjaan JSON, panggil `run` metode asinkron untuk memanggil objek layanan `MediaConvert` klien, melewati parameter. ID pekerjaan yang dibuat dikembalikan dalam respons`data`.

```
const run = async () => {
  try {
    const data = await emcClient.send(new CreateJobCommand(params));
    console.log("Job created!", data);
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node emc_createjob.js 
```

Kode contoh lengkap ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_createjob.js).

## Membatalkan pekerjaan transcoding
<a name="emc-examples-jobs-cancel"></a>

Buat modul Node.js dengan nama file`emc_canceljob.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk mengunduh klien dan paket yang diperlukan. Buat JSON yang menyertakan ID pekerjaan yang akan dibatalkan. Kemudian panggil `CancelJobCommand` metode dengan membuat janji untuk memanggil objek layanan `MediaConvert` klien, melewati parameter. Tangani respons dalam callback janji.

**catatan**  
Ganti *JOB\$1ID* dengan ID pekerjaan yang akan dibatalkan.

```
// Import required AWS-SDK clients and commands for Node.js
import { CancelJobCommand } from "@aws-sdk/client-mediaconvert";
import { emcClient } from "./libs/emcClient.js";

// Set the parameters
const params = { Id: "JOB_ID" }; //JOB_ID

const run = async () => {
  try {
    const data = await emcClient.send(new CancelJobCommand(params));
    console.log(`Job  ${params.Id} is canceled`);
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node ec2_canceljob.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_canceljob.js).

## Daftar pekerjaan transcoding terbaru
<a name="emc-examples-jobs-listing"></a>

Buat modul Node.js dengan nama file`emc_listjobs.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat parameter JSON, termasuk nilai untuk menentukan apakah akan mengurutkan daftar dalam`ASCENDING`, atau `DESCENDING` urutan, Nama Sumber Daya Amazon (ARN) dari antrian pekerjaan yang akan diperiksa, dan status pekerjaan yang akan disertakan. Kemudian panggil `ListJobsCommand` metode dengan membuat janji untuk memanggil objek layanan `MediaConvert` klien, melewati parameter. 

**catatan**  
Ganti *QUEUE\$1ARN* dengan Nama Sumber Daya Amazon (ARN) dari antrian pekerjaan yang akan diperiksa, dan *STATUS* dengan status antrian.

```
// Import required AWS-SDK clients and commands for Node.js
import { ListJobsCommand } from "@aws-sdk/client-mediaconvert";
import { emcClient } from "./libs/emcClient.js";

// Set the parameters
const params = {
  MaxResults: 10,
  Order: "ASCENDING",
  Queue: "QUEUE_ARN",
  Status: "SUBMITTED", // e.g., "SUBMITTED"
};

const run = async () => {
  try {
    const data = await emcClient.send(new ListJobsCommand(params));
    console.log("Success. Jobs: ", data.Jobs);
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node emc_listjobs.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_listjobs.js).

# Menggunakan template pekerjaan di MediaConvert
<a name="emc-examples-templates"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Cara membuat template AWS Elemental MediaConvert pekerjaan.
+ Cara menggunakan template pekerjaan untuk membuat pekerjaan transcoding.
+ Cara membuat daftar semua templat pekerjaan Anda.
+ Cara menghapus template pekerjaan.

## Skenario
<a name="emc-examples-templates-scenario"></a>

JSON yang diperlukan untuk membuat pekerjaan transcoding MediaConvert secara rinci, berisi sejumlah besar pengaturan. Anda dapat sangat menyederhanakan penciptaan lapangan kerja dengan menyimpan pengaturan yang diketahui baik dalam templat pekerjaan yang dapat Anda gunakan untuk membuat pekerjaan berikutnya. Dalam contoh ini, Anda menggunakan modul Node.js untuk memanggil MediaConvert untuk membuat, menggunakan, dan mengelola template pekerjaan. Kode menggunakan SDK JavaScript untuk melakukan ini dengan menggunakan metode kelas MediaConvert klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CreateJobTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CreateJobTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CreateJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/CreateJobCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/DeleteJobTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/DeleteJobTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/ListJobTemplatesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-mediaconvert/Class/ListJobTemplatesCommand/)

## Tugas prasyarat
<a name="emc-example-templates-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, pertama-tama selesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascriptv3/example_code/mediaconvert/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *
+ Buat peran IAM yang memberikan MediaConvert akses ke file input Anda dan bucket Amazon S3 tempat file output Anda disimpan. Untuk detailnya, lihat [Mengatur izin IAM](https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html) di *AWS Elemental MediaConvert Panduan Pengguna*.

**penting**  
Contoh-contoh ini menggunakan ECMAScript6 (ES6). Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .  
Namun, jika Anda lebih suka menggunakan sintaks CommonJS, silakan merujuk ke. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Membuat template pekerjaan
<a name="emc-examples-templates-create"></a>

Buat modul Node.js dengan nama file`emc_create_jobtemplate.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Tentukan parameter JSON untuk pembuatan template. Anda dapat menggunakan sebagian besar parameter JSON dari pekerjaan sebelumnya yang berhasil untuk menentukan `Settings` nilai dalam template. Contoh ini menggunakan pengaturan pekerjaan dari[Membuat dan mengelola pekerjaan transcoding di MediaConvert](emc-examples-jobs.md).

Panggil `CreateJobTemplateCommand` metode dengan membuat janji untuk memanggil objek layanan `MediaConvert` klien, melewati parameter.

**catatan**  
Ganti *JOB\$1QUEUE\$1ARN* dengan Nama Sumber Daya Amazon (ARN) dari antrian pekerjaan untuk diperiksa, dan *BUCKET\$1NAME* dengan nama bucket Amazon S3 tujuan - misalnya, "s3://BUCKET\$1NAME/”. 

```
// Import required AWS-SDK clients and commands for Node.js
import { CreateJobTemplateCommand } from "@aws-sdk/client-mediaconvert";
import { emcClient } from "./libs/emcClient.js";

const params = {
  Category: "YouTube Jobs",
  Description: "Final production transcode",
  Name: "DemoTemplate",
  Queue: "JOB_QUEUE_ARN", //JOB_QUEUE_ARN
  Settings: {
    OutputGroups: [
      {
        Name: "File Group",
        OutputGroupSettings: {
          Type: "FILE_GROUP_SETTINGS",
          FileGroupSettings: {
            Destination: "BUCKET_NAME", // BUCKET_NAME e.g., "s3://BUCKET_NAME/"
          },
        },
        Outputs: [
          {
            VideoDescription: {
              ScalingBehavior: "DEFAULT",
              TimecodeInsertion: "DISABLED",
              AntiAlias: "ENABLED",
              Sharpness: 50,
              CodecSettings: {
                Codec: "H_264",
                H264Settings: {
                  InterlaceMode: "PROGRESSIVE",
                  NumberReferenceFrames: 3,
                  Syntax: "DEFAULT",
                  Softness: 0,
                  GopClosedCadence: 1,
                  GopSize: 90,
                  Slices: 1,
                  GopBReference: "DISABLED",
                  SlowPal: "DISABLED",
                  SpatialAdaptiveQuantization: "ENABLED",
                  TemporalAdaptiveQuantization: "ENABLED",
                  FlickerAdaptiveQuantization: "DISABLED",
                  EntropyEncoding: "CABAC",
                  Bitrate: 5000000,
                  FramerateControl: "SPECIFIED",
                  RateControlMode: "CBR",
                  CodecProfile: "MAIN",
                  Telecine: "NONE",
                  MinIInterval: 0,
                  AdaptiveQuantization: "HIGH",
                  CodecLevel: "AUTO",
                  FieldEncoding: "PAFF",
                  SceneChangeDetect: "ENABLED",
                  QualityTuningLevel: "SINGLE_PASS",
                  FramerateConversionAlgorithm: "DUPLICATE_DROP",
                  UnregisteredSeiTimecode: "DISABLED",
                  GopSizeUnits: "FRAMES",
                  ParControl: "SPECIFIED",
                  NumberBFramesBetweenReferenceFrames: 2,
                  RepeatPps: "DISABLED",
                  FramerateNumerator: 30,
                  FramerateDenominator: 1,
                  ParNumerator: 1,
                  ParDenominator: 1,
                },
              },
              AfdSignaling: "NONE",
              DropFrameTimecode: "ENABLED",
              RespondToAfd: "NONE",
              ColorMetadata: "INSERT",
            },
            AudioDescriptions: [
              {
                AudioTypeControl: "FOLLOW_INPUT",
                CodecSettings: {
                  Codec: "AAC",
                  AacSettings: {
                    AudioDescriptionBroadcasterMix: "NORMAL",
                    RateControlMode: "CBR",
                    CodecProfile: "LC",
                    CodingMode: "CODING_MODE_2_0",
                    RawFormat: "NONE",
                    SampleRate: 48000,
                    Specification: "MPEG4",
                    Bitrate: 64000,
                  },
                },
                LanguageCodeControl: "FOLLOW_INPUT",
                AudioSourceName: "Audio Selector 1",
              },
            ],
            ContainerSettings: {
              Container: "MP4",
              Mp4Settings: {
                CslgAtom: "INCLUDE",
                FreeSpaceBox: "EXCLUDE",
                MoovPlacement: "PROGRESSIVE_DOWNLOAD",
              },
            },
            NameModifier: "_1",
          },
        ],
      },
    ],
    AdAvailOffset: 0,
    Inputs: [
      {
        AudioSelectors: {
          "Audio Selector 1": {
            Offset: 0,
            DefaultSelection: "NOT_DEFAULT",
            ProgramSelection: 1,
            SelectorType: "TRACK",
            Tracks: [1],
          },
        },
        VideoSelector: {
          ColorSpace: "FOLLOW",
        },
        FilterEnable: "AUTO",
        PsiControl: "USE_PSI",
        FilterStrength: 0,
        DeblockFilter: "DISABLED",
        DenoiseFilter: "DISABLED",
        TimecodeSource: "EMBEDDED",
      },
    ],
    TimecodeConfig: {
      Source: "EMBEDDED",
    },
  },
};

const run = async () => {
  try {
    // Create a promise on a MediaConvert object
    const data = await emcClient.send(new CreateJobTemplateCommand(params));
    console.log("Success!", data);
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node emc_create_jobtemplate.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_create_jobtemplate.js).

## Membuat pekerjaan transcoding dari template pekerjaan
<a name="emc-examples-templates-createjob"></a>

Buat modul Node.js dengan nama file`emc_template_createjob.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat parameter pembuatan pekerjaan JSON, termasuk nama template pekerjaan yang akan digunakan, dan penggunaan yang khusus untuk pekerjaan yang Anda buat. `Settings` Kemudian panggil `CreateJobsCommand` metode dengan membuat janji untuk memanggil objek layanan `MediaConvert` klien, melewati parameter. 

**catatan**  
Ganti *JOB\$1QUEUE\$1ARN* dengan Amazon Resource Name (ARN) dari antrean pekerjaan untuk memeriksa, *KEY\$1PAIR\$1NAME* dengan, *TEMPLATE\$1NAME* dengan, *ROLE\$1ARN* dengan Amazon Resource Name (ARN) peran, dan * INPUT\$1BUCKET\$1AND\$1FILENAME* dengan bucket input dan nama file - misalnya, "s3://BUCKET\$1NAME/FILE\$1NAME”.

```
// Import required AWS-SDK clients and commands for Node.js
import { CreateJobCommand } from "@aws-sdk/client-mediaconvert";
import { emcClient } from "./libs/emcClient.js";

const params = {
  Queue: "QUEUE_ARN", //QUEUE_ARN
  JobTemplate: "TEMPLATE_NAME", //TEMPLATE_NAME
  Role: "ROLE_ARN", //ROLE_ARN
  Settings: {
    Inputs: [
      {
        AudioSelectors: {
          "Audio Selector 1": {
            Offset: 0,
            DefaultSelection: "NOT_DEFAULT",
            ProgramSelection: 1,
            SelectorType: "TRACK",
            Tracks: [1],
          },
        },
        VideoSelector: {
          ColorSpace: "FOLLOW",
        },
        FilterEnable: "AUTO",
        PsiControl: "USE_PSI",
        FilterStrength: 0,
        DeblockFilter: "DISABLED",
        DenoiseFilter: "DISABLED",
        TimecodeSource: "EMBEDDED",
        FileInput: "INPUT_BUCKET_AND_FILENAME", //INPUT_BUCKET_AND_FILENAME, e.g., "s3://BUCKET_NAME/FILE_NAME"
      },
    ],
  },
};

const run = async () => {
  try {
    const data = await emcClient.send(new CreateJobCommand(params));
    console.log("Success! ", data);
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node emc_template_createjob.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_template_createjob.js).

## Daftar template pekerjaan Anda
<a name="emc-examples-templates-listing"></a>

Buat modul Node.js dengan nama file`emc_listtemplates.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati parameter permintaan untuk `listTemplates` metode kelas `MediaConvert` klien. Sertakan nilai untuk menentukan templat apa yang akan dicantumkan (`NAME`,`CREATION DATE`,`SYSTEM`), berapa banyak yang akan dicantumkan, dan urutan urutannya. Untuk memanggil `ListTemplatesCommand` metode, buat janji untuk memanggil objek layanan MediaConvert klien, melewati parameter. 

```
// Import required AWS-SDK clients and commands for Node.js
import { ListJobTemplatesCommand } from "@aws-sdk/client-mediaconvert";
import { emcClient } from "./libs/emcClient.js";

const params = {
  ListBy: "NAME",
  MaxResults: 10,
  Order: "ASCENDING",
};

const run = async () => {
  try {
    const data = await emcClient.send(new ListJobTemplatesCommand(params));
    console.log("Success ", data.JobTemplates);
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node emc_listtemplates.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_template_createjob.js).

## Menghapus template pekerjaan
<a name="emc-examples-templates-delete"></a>

Buat modul Node.js dengan nama file`emc_deletetemplate.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk meneruskan nama template pekerjaan yang ingin Anda hapus sebagai parameter untuk `DeleteJobTemplateCommand` metode kelas `MediaConvert` klien. Untuk memanggil `DeleteJobTemplateCommand` metode, buat janji untuk memanggil objek layanan MediaConvert klien, melewati parameter. 

```
// Import required AWS-SDK clients and commands for Node.js
import { DeleteJobTemplateCommand } from "@aws-sdk/client-mediaconvert";
import { emcClient } from "./libs/emcClient.js";

// Set the parameters
const params = { Name: "test" }; //TEMPLATE_NAME

const run = async () => {
  try {
    const data = await emcClient.send(new DeleteJobTemplateCommand(params));
    console.log(
      "Success, template deleted! Request ID:",
      data.$metadata.requestId,
    );
    return data;
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node emc_deletetemplate.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/mediaconvert/src/emc_deletetemplate.js).

# AWS Lambda contoh
<a name="lambda-examples"></a>

AWS Lambda adalah layanan komputasi tanpa server yang memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server, membuat logika penskalaan klaster sadar beban kerja, mempertahankan integrasi peristiwa, atau mengelola runtime. 

 JavaScript API untuk AWS Lambda diekspos melalui kelas [LambdaService](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-lambda/)klien.

Berikut adalah daftar contoh yang menunjukkan cara membuat dan menggunakan fungsi Lambda dengan v3: AWS SDK untuk JavaScript 
+ [Memanggil Lambda dengan API Gateway](api-gateway-invoking-lambda-example.md)
+ [Membuat acara terjadwal untuk menjalankan AWS Lambda fungsi](scheduled-events-invoking-lambda-example.md)

# Contoh Amazon Lex
<a name="lex-examples"></a>

Amazon Lex adalah AWS layanan untuk membangun antarmuka percakapan ke dalam aplikasi menggunakan suara dan teks. 

 JavaScript API untuk Amazon Lex diekspos melalui kelas klien [Lex Runtime Service](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-lex-runtime-service/).
+ [Membangun chatbot Amazon Lex](lex-bot-example.md)

# Contoh Amazon Polly
<a name="polly-examples"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Unggah audio yang direkam menggunakan Amazon Polly ke Amazon S3

## Skenario
<a name="polly-example-synthesize-to-s3-scenario"></a>

Dalam contoh ini, serangkaian modul Node.js digunakan untuk mengunggah audio yang direkam secara otomatis menggunakan Amazon Polly ke Amazon S3 menggunakan metode kelas klien Amazon S3 ini:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-polly/Class/StartSpeechSynthesisTaskCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-polly/Class/StartSpeechSynthesisTaskCommand/)

## Tugas prasyarat
<a name="polly-example-synthesize-to-s3-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan JavaScript contoh Node dengan mengikuti petunjuk pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascriptv3/example_code/s3/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *
+ Buat AWS Identity and Access Management (IAM) Peran pengguna Amazon Cognito yang tidak diautentikasi polly: izinSynthesizeSpeech , dan kumpulan identitas Amazon Cognito dengan peran IAM yang dilampirkan padanya. [Buat AWS sumber daya menggunakan CloudFormation](#polly-example-synthesize-to-s3-create-resources)Bagian di bawah ini menjelaskan cara membuat sumber daya ini.

**catatan**  
Contoh ini menggunakan Amazon Cognito, tetapi jika Anda tidak menggunakan Amazon Cognito maka pengguna AWS Anda harus mengikuti kebijakan izin IAM  

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "mobileanalytics:PutEvents",
        "cognito-sync:*"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": "polly:SynthesizeSpeech",
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}
```

## Buat AWS sumber daya menggunakan CloudFormation
<a name="polly-example-synthesize-to-s3-create-resources"></a>

CloudFormation memungkinkan Anda untuk membuat dan menyediakan penyebaran AWS infrastruktur yang dapat diprediksi dan berulang kali. Untuk informasi selengkapnya CloudFormation, lihat [Panduan AWS CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).

Untuk membuat CloudFormation tumpukan:

1. Instal dan konfigurasikan petunjuk AWS CLI berikut di [Panduan AWS CLI Pengguna](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

1. Buat file bernama `setup.yaml` di direktori root folder proyek Anda, dan salin konten [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/polly/general-examples/src/setup.yaml) ke dalamnya. 
**catatan**  
 CloudFormation Template dibuat menggunakan yang AWS CDK tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/resources/cdk/javascript_example_code_polly_aws_service/). Untuk informasi selengkapnya tentang ini AWS CDK, lihat [Panduan AWS Cloud Development Kit (AWS CDK) Pengembang](https://docs.aws.amazon.com/cdk/latest/guide/).

1. Jalankan perintah berikut dari baris perintah, ganti *STACK\$1NAME* dengan nama unik untuk tumpukan.
**penting**  
Nama tumpukan harus unik dalam AWS Wilayah dan AWS akun. Anda dapat menentukan hingga 128 karakter, dan angka serta tanda hubung diizinkan.

   ```
   aws cloudformation create-stack --stack-name STACK_NAME --template-body file://setup.yaml --capabilities CAPABILITY_IAM
   ```

   Untuk informasi selengkapnya tentang parameter `create-stack` perintah, lihat [panduan Referensi AWS CLI Perintah](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html), dan [Panduan CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html).

1. Arahkan ke konsol CloudFormation manajemen, pilih **Tumpukan**, pilih nama tumpukan, dan pilih tab **Sumber Daya** untuk melihat daftar sumber daya yang dibuat.  
![\[CloudFormation sumber daya\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/cfn_polly.png)

## Unggah audio yang direkam menggunakan Amazon Polly ke Amazon S3
<a name="polly-example-synthesize-to-s3-example"></a>

Buat modul Node.js dengan nama file`polly_synthesize_to_s3.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Dalam kode, masukkan*REGION*, dan*BUCKET\$1NAME*. Untuk mengakses Amazon Polly, buat objek layanan `Polly` klien. Ganti *"IDENTITY\$1POOL\$1ID"* dengan `IdentityPoolId` dari **halaman Contoh** kumpulan identitas Amazon Cognito yang Anda buat untuk contoh ini. Ini juga diteruskan ke setiap objek klien.

Panggil `StartSpeechSynthesisCommand` metode objek layanan klien Amazon Polly mensintesis pesan suara dan mengunggahnya ke bucket Amazon S3. 

```
import { StartSpeechSynthesisTaskCommand } from "@aws-sdk/client-polly";
import { pollyClient } from "./libs/pollyClient.js";

// Create the parameters
const params = {
  OutputFormat: "mp3",
  OutputS3BucketName: "videoanalyzerbucket",
  Text: "Hello David, How are you?",
  TextType: "text",
  VoiceId: "Joanna",
  SampleRate: "22050",
};

const run = async () => {
  try {
    await pollyClient.send(new StartSpeechSynthesisTaskCommand(params));
    console.log(`Success, audio file added to ${params.OutputS3BucketName}`);
  } catch (err) {
    console.log("Error putting object", err);
  }
};
run();
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/polly/general-examples/src/polly_synthesize_to_s3.js).

# Contoh Amazon Redshift
<a name="redshift-examples"></a>

Amazon Redshift adalah layanan gudang data dengan skala petabyte yang terkelola penuh di cloud. *Gudang data Amazon Redshift adalah kumpulan sumber daya komputasi yang disebut *node*, yang diatur ke dalam grup yang disebut cluster.* Setiap klaster menjalankan mesin Amazon Redshift dan berisi satu atau lebih database.

![\[Hubungan antara JavaScript lingkungan, SDK, dan Amazon Redshift\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/code-samples-redshift.png)


 JavaScript API untuk Amazon Redshift diekspos melalui kelas klien [Amazon Redshift](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-redshift/Class/Redshift/).

**Topics**
+ [

# Contoh Amazon Redshift
](redshift-examples-section.md)

# Contoh Amazon Redshift
<a name="redshift-examples-section"></a>

Dalam contoh ini, serangkaian modul Node.js digunakan untuk membuat, memodifikasi, menjelaskan parameter, dan kemudian menghapus klaster Amazon Redshift menggunakan metode berikut dari kelas klien: `Redshift`
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-redshift/Class/CreateClusterCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-redshift/Class/CreateClusterCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-redshift/Class/ModifyClusterCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-redshift/Class/ModifyClusterCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-redshift/Class/DescribeClustersCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-redshift/Class/DescribeClustersCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-redshift/Class/DeleteClusterCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-redshift/Class/DeleteClusterCommand/)

Untuk informasi selengkapnya tentang pengguna Amazon Redshift, lihat panduan memulai [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html).

## Tugas prasyarat
<a name="s3-example-configuring-buckets-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/redshift/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana mengimpor/mengekspor objek layanan klien dan perintah menggunakan ECMAScript6 ()ES6.  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Membuat cluster Amazon Redshift
<a name="redshift-create-cluster"></a>

Contoh ini menunjukkan cara membuat cluster Amazon Redshift menggunakan file. AWS SDK untuk JavaScript Untuk informasi selengkapnya, lihat [CreateCluster](https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster).

**penting**  
*Cluster yang akan Anda buat adalah live (dan tidak berjalan di kotak pasir). Anda dikenakan biaya penggunaan Amazon Redshift standar untuk klaster hingga Anda menghapusnya. Jika Anda menghapus cluster di tempat yang sama seperti saat Anda membuatnya, total biaya minimal.* 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`redshiftClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon Redshift. Ganti *REGION* dengan AWS wilayah Anda.

```
import  { RedshiftClient }  from  "@aws-sdk/client-redshift";
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create Redshift service object.
const redshiftClient = new RedshiftClient({ region: REGION });
export { redshiftClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/redshift/src/libs/redshiftClient.js).

Buat modul Node.js dengan nama file`redshift-create-cluster.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat objek parameter, tentukan tipe node yang akan disediakan, dan kredenal masuk master untuk instance database yang dibuat secara otomatis di cluster, dan terakhir tipe cluster.

**catatan**  
Ganti *CLUSTER\$1NAME* dengan nama cluster. Untuk *NODE\$1TYPE* menentukan jenis node yang akan disediakan, seperti 'dc2.large', misalnya. *MASTER\$1USERNAME*dan *MASTER\$1USER\$1PASSWORD* merupakan kredensional masuk dari pengguna utama instans DB Anda di cluster. Untuk*CLUSTER\$1TYPE*, masukkan jenis cluster. Jika Anda menentukan`single-node`, Anda tidak memerlukan `NumberOfNodes` parameter. Parameter yang tersisa adalah opsional. 

```
// Import required AWS SDK clients and commands for Node.js
import { CreateClusterCommand } from "@aws-sdk/client-redshift";
import { redshiftClient } from "./libs/redshiftClient.js";

const params = {
  ClusterIdentifier: "CLUSTER_NAME", // Required
  NodeType: "NODE_TYPE", //Required
  MasterUsername: "MASTER_USER_NAME", // Required - must be lowercase
  MasterUserPassword: "MASTER_USER_PASSWORD", // Required - must contain at least one uppercase letter, and one number
  ClusterType: "CLUSTER_TYPE", // Required
  IAMRoleARN: "IAM_ROLE_ARN", // Optional - the ARN of an IAM role with permissions your cluster needs to access other AWS services on your behalf, such as Amazon S3.
  ClusterSubnetGroupName: "CLUSTER_SUBNET_GROUPNAME", //Optional - the name of a cluster subnet group to be associated with this cluster. Defaults to 'default' if not specified.
  DBName: "DATABASE_NAME", // Optional - defaults to 'dev' if not specified
  Port: "PORT_NUMBER", // Optional - defaults to '5439' if not specified
};

const run = async () => {
  try {
    const data = await redshiftClient.send(new CreateClusterCommand(params));
    console.log(
      `Cluster ${data.Cluster.ClusterIdentifier} successfully created`,
    );
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node redshift-create-cluster.js  
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/redshift/src/redshift-create-cluster.js).

## Memodifikasi cluster Amazon Redshift
<a name="redshift-modify-cluster"></a>

Contoh ini menunjukkan cara memodifikasi kata sandi pengguna utama cluster Amazon Redshift menggunakan. AWS SDK untuk JavaScript Untuk informasi selengkapnya tentang pengaturan lain yang dapat Anda ubah, lihat [ModifyCluster](https://docs.aws.amazon.com/redshift/latest/APIReference/API_ModifyCluster.html).

Buat `libs` direktori, dan buat modul Node.js dengan nama file`redshiftClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon Redshift. Ganti *REGION* dengan AWS wilayah Anda.

```
import  { RedshiftClient }  from  "@aws-sdk/client-redshift";
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create Redshift service object.
const redshiftClient = new RedshiftClient({ region: REGION });
export { redshiftClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/redshift/src/libs/redshiftClient.js).

Buat modul Node.js dengan nama file`redshift-modify-cluster.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Tentukan AWS Wilayah, nama cluster yang ingin Anda modifikasi, dan kata sandi pengguna master baru.

**catatan**  
Ganti *CLUSTER\$1NAME* dengan nama cluster, dan *MASTER\$1USER\$1PASSWORD* dengan kata sandi pengguna master baru. 

```
// Import required AWS SDK clients and commands for Node.js
import { ModifyClusterCommand } from "@aws-sdk/client-redshift";
import { redshiftClient } from "./libs/redshiftClient.js";

// Set the parameters
const params = {
  ClusterIdentifier: "CLUSTER_NAME",
  MasterUserPassword: "NEW_MASTER_USER_PASSWORD",
};

const run = async () => {
  try {
    const data = await redshiftClient.send(new ModifyClusterCommand(params));
    console.log("Success was modified.", data);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node redshift-modify-cluster.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/redshift/src/redshift-modify-cluster.js).

## Melihat detail cluster Amazon Redshift
<a name="redshift-describe-cluster"></a>

Contoh ini menunjukkan cara melihat detail cluster Amazon Redshift menggunakan file. AWS SDK untuk JavaScript Untuk informasi lebih lanjut tentang opsional, lihat [DescribeClusters](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html).

Buat `libs` direktori, dan buat modul Node.js dengan nama file`redshiftClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon Redshift. Ganti *REGION* dengan AWS wilayah Anda.

```
import  { RedshiftClient }  from  "@aws-sdk/client-redshift";
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create Redshift service object.
const redshiftClient = new RedshiftClient({ region: REGION });
export { redshiftClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/redshift/src/libs/redshiftClient.js).

Buat modul Node.js dengan nama file`redshift-describe-clusters.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Tentukan AWS Wilayah, nama cluster yang ingin Anda modifikasi, dan kata sandi pengguna master baru.

**catatan**  
Ganti *CLUSTER\$1NAME* dengan nama cluster. 

```
// Import required AWS SDK clients and commands for Node.js
import { DescribeClustersCommand } from "@aws-sdk/client-redshift";
import { redshiftClient } from "./libs/redshiftClient.js";

const params = {
  ClusterIdentifier: "CLUSTER_NAME",
};

const run = async () => {
  try {
    const data = await redshiftClient.send(new DescribeClustersCommand(params));
    console.log("Success", data);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node redshift-describe-clusters.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/redshift/src/redshift-describe-clusters.js).

## Menghapus klaster Amazon Redshift
<a name="redshift-delete-cluster"></a>

Contoh ini menunjukkan cara melihat detail cluster Amazon Redshift menggunakan file. AWS SDK untuk JavaScript Untuk informasi selengkapnya tentang pengaturan lain yang dapat Anda ubah, lihat [DeleteCluster](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteCluster.html).

Buat `libs` direktori, dan buat modul Node.js dengan nama file`redshiftClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon Redshift. Ganti *REGION* dengan AWS wilayah Anda.

```
import  { RedshiftClient }  from  "@aws-sdk/client-redshift";
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create Redshift service object.
const redshiftClient = new RedshiftClient({ region: REGION });
export { redshiftClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/redshift/src/libs/redshiftClient.js).

Buat modul Node.js dengan file bernama`redshift-delete-clusters.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Tentukan AWS Wilayah, nama cluster yang ingin Anda modifikasi, dan kata sandi pengguna master baru. Tentukan apakah Anda ingin menyimpan snapshot akhir cluster sebelum menghapus, dan jika demikian ID snapshot.

**catatan**  
Ganti *CLUSTER\$1NAME* dengan nama cluster. Untuk*SkipFinalClusterSnapshot*, tentukan apakah akan membuat snapshot akhir cluster sebelum menghapusnya. Jika Anda menentukan 'false', tentukan id snapshot cluster terakhir di*CLUSTER\$1SNAPSHOT\$1ID*. **Anda bisa mendapatkan ID ini dengan mengklik tautan di kolom **Snapshots** untuk cluster di dasbor **Clusters**, dan menggulir ke bawah ke panel Snapshots.** Perhatikan bahwa batang `rs:` bukan bagian dari ID snapshot.

```
// Import required AWS SDK clients and commands for Node.js
import { DeleteClusterCommand } from "@aws-sdk/client-redshift";
import { redshiftClient } from "./libs/redshiftClient.js";

const params = {
  ClusterIdentifier: "CLUSTER_NAME",
  SkipFinalClusterSnapshot: false,
  FinalClusterSnapshotIdentifier: "CLUSTER_SNAPSHOT_ID",
};

const run = async () => {
  try {
    const data = await redshiftClient.send(new DeleteClusterCommand(params));
    console.log("Success, cluster deleted. ", data);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node redshift-delete-cluster.js  
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/redshift/src/redshift-delete-cluster.js).

# Contoh Layanan Email Sederhana Amazon
<a name="ses-examples"></a>

Amazon Simple Email Service (Amazon SES) adalah layanan pengiriman email berbasis cloud yang dirancang untuk membantu pemasar digital dan pengembang aplikasi mengirim email pemasaran, pemberitahuan, dan transaksional. Ini adalah layanan yang andal dan hemat biaya untuk bisnis dari semua ukuran yang menggunakan email untuk tetap berhubungan dengan pelanggan mereka.

![\[Hubungan antara JavaScript lingkungan, SDK, dan Amazon SES\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/code-samples-ses.png)


 JavaScript API untuk Amazon SES diekspos melalui kelas `SES` klien. Untuk informasi selengkapnya tentang menggunakan kelas klien Amazon SES, lihat [Kelas: SES](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SES/) di Referensi API.

**Topics**
+ [

# Mengelola identitas Amazon SES
](ses-examples-managing-identities.md)
+ [

# Bekerja dengan template email di Amazon SES
](ses-examples-creating-template.md)
+ [

# Mengirim email menggunakan Amazon SES
](ses-examples-sending-email.md)

# Mengelola identitas Amazon SES
<a name="ses-examples-managing-identities"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Cara memverifikasi alamat email dan domain yang digunakan dengan Amazon SES.
+ Cara menetapkan kebijakan AWS Identity and Access Management (IAM) ke identitas Amazon SES Anda.
+ Cara membuat daftar semua identitas Amazon SES untuk AWS akun Anda.
+ Cara menghapus identitas yang digunakan dengan Amazon SES.

*Identitas* Amazon SES adalah alamat email atau domain yang digunakan Amazon SES untuk mengirim email. Amazon SES mengharuskan Anda untuk memverifikasi identitas email Anda, mengonfirmasi bahwa Anda memilikinya dan mencegah orang lain menggunakannya.

Untuk detail tentang cara memverifikasi alamat email dan domain di Amazon SES, lihat [Memverifikasi alamat email dan domain di Amazon SES di Panduan](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) Pengembang Layanan Email Sederhana Amazon. Untuk informasi tentang mengirim otorisasi di Amazon SES, lihat [Ikhtisar otorisasi pengiriman Amazon SES](Amazon Simple Email Service Developer Guidesending-authorization-overview.html).

## Skenario
<a name="ses-examples-verifying-identities-scenario"></a>

Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk memverifikasi dan mengelola identitas Amazon SES. Modul Node.js menggunakan SDK JavaScript untuk memverifikasi alamat email dan domain, menggunakan metode kelas `SES` klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListIdentitiesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListIdentitiesCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteIdentityCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteIdentityCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyEmailIdentityCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyEmailIdentityCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyDomainIdentityCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyDomainIdentityCommand/)

## Tugas prasyarat
<a name="ses-examples-verifying-identities-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/ses/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Daftar identitas Anda
<a name="ses-examples-listing-identities"></a>

Dalam contoh ini, gunakan modul Node.js untuk mencantumkan alamat email dan domain yang akan digunakan dengan Amazon SES.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_listidentities.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati `IdentityType` dan parameter lainnya untuk `ListIdentitiesCommand` metode kelas `SES` klien. Untuk memanggil `ListIdentitiesCommand` metode, panggil objek layanan Amazon SES, melewati objek parameter. 

 Yang `data` dikembalikan berisi array identitas domain seperti yang ditentukan oleh `IdentityType` parameter.

**catatan**  
Ganti *IdentityType* dengan tipe identitas, yang bisa jadi "EmailAddress" atau “Domain”.

```
import { ListIdentitiesCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const createListIdentitiesCommand = () =>
  new ListIdentitiesCommand({ IdentityType: "EmailAddress", MaxItems: 10 });

const run = async () => {
  const listIdentitiesCommand = createListIdentitiesCommand();

  try {
    return await sesClient.send(listIdentitiesCommand);
  } catch (err) {
    console.log("Failed to list identities.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node ses_listidentities.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_listidentities.js).

## Memverifikasi identitas alamat email
<a name="ses-examples-verifying-email"></a>

Dalam contoh ini, gunakan modul Node.js untuk memverifikasi pengirim email yang akan digunakan dengan Amazon SES.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_verifyemailidentity.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk mengunduh klien dan paket yang diperlukan. 

Buat objek untuk melewati `EmailAddress` parameter untuk `VerifyEmailIdentityCommand` metode kelas `SES` klien. Untuk memanggil `VerifyEmailIdentityCommand` metode, panggil objek layanan klien Amazon SES, meneruskan parameter. 

**catatan**  
Ganti *EMAIL\$1ADDRESS* dengan alamat email, seperti name@example.com.

```
// Import required AWS SDK clients and commands for Node.js
import { VerifyEmailIdentityCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const EMAIL_ADDRESS = "name@example.com";

const createVerifyEmailIdentityCommand = (emailAddress) => {
  return new VerifyEmailIdentityCommand({ EmailAddress: emailAddress });
};

const run = async () => {
  const verifyEmailIdentityCommand =
    createVerifyEmailIdentityCommand(EMAIL_ADDRESS);
  try {
    return await sesClient.send(verifyEmailIdentityCommand);
  } catch (err) {
    console.log("Failed to verify email identity.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Domain ditambahkan ke Amazon SES untuk diverifikasi.

```
node ses_verifyemailidentity.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_verifyemailidentity.js).

## Memverifikasi identitas Domain
<a name="ses-examples-verifying-domains"></a>

Dalam contoh ini, gunakan modul Node.js untuk memverifikasi domain email yang akan digunakan dengan Amazon SES.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_verifydomainidentity.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati `Domain` parameter untuk `VerifyDomainIdentityCommand` metode kelas `SES` klien. Untuk memanggil `VerifyDomainIdentityCommand` metode, panggil objek layanan klien Amazon SES, meneruskan objek parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *DOMAIN\$1NAME* dengan nama domain.

```
import { VerifyDomainIdentityCommand } from "@aws-sdk/client-ses";
import {
  getUniqueName,
  postfix,
} from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

/**
 * You must have access to the domain's DNS settings to complete the
 * domain verification process.
 */
const DOMAIN_NAME = postfix(getUniqueName("Domain"), ".example.com");

const createVerifyDomainIdentityCommand = () => {
  return new VerifyDomainIdentityCommand({ Domain: DOMAIN_NAME });
};

const run = async () => {
  const VerifyDomainIdentityCommand = createVerifyDomainIdentityCommand();

  try {
    return await sesClient.send(VerifyDomainIdentityCommand);
  } catch (err) {
    console.log("Failed to verify domain.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Domain ditambahkan ke Amazon SES untuk diverifikasi.

```
node ses_verifydomainidentity.js  
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_verifydomainidentity.js).

## Menghapus identitas
<a name="ses-examples-deleting-identities"></a>

Dalam contoh ini, gunakan modul Node.js untuk menghapus alamat email atau domain yang digunakan dengan Amazon SES.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_deleteidentity.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati `Identity` parameter untuk `DeleteIdentityCommand` metode kelas `SES` klien. Untuk memanggil `DeleteIdentityCommand` metode, buat `request` untuk memanggil objek layanan klien Amazon SES, melewati parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *IDENTITY\$1EMAIL* dengan email identitas yang akan dihapus.

```
import { DeleteIdentityCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const IDENTITY_EMAIL = "fake@example.com";

const createDeleteIdentityCommand = (identityName) => {
  return new DeleteIdentityCommand({
    Identity: identityName,
  });
};

const run = async () => {
  const deleteIdentityCommand = createDeleteIdentityCommand(IDENTITY_EMAIL);

  try {
    return await sesClient.send(deleteIdentityCommand);
  } catch (err) {
    console.log("Failed to delete identity.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node ses_deleteidentity.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_deleteidentity.js).

# Bekerja dengan template email di Amazon SES
<a name="ses-examples-creating-template"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Cara mendapatkan daftar semua template email Anda.
+ Cara mengambil dan memperbarui template email.
+ Cara membuat dan menghapus template email.

Amazon SES memungkinkan Anda mengirim pesan email yang dipersonalisasi menggunakan templat email. Untuk detail tentang cara membuat dan menggunakan templat email di Amazon SES, lihat [Mengirim email yang dipersonalisasi menggunakan Amazon SES API](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html) di Panduan Pengembang Layanan Email Sederhana Amazon.

## Skenario
<a name="ses-examples-creating-template-scenario"></a>

Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk bekerja dengan template email. Modul Node.js menggunakan SDK JavaScript untuk membuat dan menggunakan templat email menggunakan metode kelas `SES` klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListTemplatesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListTemplatesCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/CreateTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/CreateTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/GetTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/GetTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/UpdateTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/UpdateTemplateCommand/)

## Tugas prasyarat
<a name="ses-examples-creating-template-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/ses/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Daftar template email Anda
<a name="ses-examples-listing-templates"></a>

Dalam contoh ini, gunakan modul Node.js untuk membuat template email untuk digunakan dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_listtemplates.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati parameter untuk `ListTemplatesCommand` metode kelas `SES` klien. Untuk memanggil `ListTemplatesCommand` metode, panggil objek layanan klien Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

```
import { ListTemplatesCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const createListTemplatesCommand = (maxItems) =>
  new ListTemplatesCommand({ MaxItems: maxItems });

const run = async () => {
  const listTemplatesCommand = createListTemplatesCommand(10);

  try {
    return await sesClient.send(listTemplatesCommand);
  } catch (err) {
    console.log("Failed to list templates.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Amazon SES mengembalikan daftar templat.

```
node ses_listtemplates.js  
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_listtemplates.js).

## Mendapatkan template email
<a name="ses-examples-get-template"></a>

Dalam contoh ini, gunakan modul Node.js untuk mendapatkan template email untuk digunakan dengan Amazon SES.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_gettemplate.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati `TemplateName` parameter untuk `GetTemplateCommand` metode kelas `SES` klien. Untuk memanggil `GetTemplateCommand` metode, panggil objek layanan klien Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *TEMPLATE\$1NAME* dengan nama template untuk kembali.

```
import { GetTemplateCommand } from "@aws-sdk/client-ses";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

const TEMPLATE_NAME = getUniqueName("TemplateName");

const createGetTemplateCommand = (templateName) =>
  new GetTemplateCommand({ TemplateName: templateName });

const run = async () => {
  const getTemplateCommand = createGetTemplateCommand(TEMPLATE_NAME);

  try {
    return await sesClient.send(getTemplateCommand);
  } catch (caught) {
    if (caught instanceof Error && caught.name === "MessageRejected") {
      /** @type { import('@aws-sdk/client-ses').MessageRejected} */
      const messageRejectedError = caught;
      return messageRejectedError;
    }
    throw caught;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Amazon SES mengembalikan detail template.

```
node ses_gettemplate.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_gettemplate.js).

## Membuat template email
<a name="ses-examples-create-template"></a>

Dalam contoh ini, gunakan modul Node.js untuk membuat template email untuk digunakan dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_createtemplate.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati parameter untuk `CreateTemplateCommand` metode kelas `SES` klien, termasuk,`TemplateName`, `HtmlPart``SubjectPart`, dan`TextPart`. Untuk memanggil `CreateTemplateCommand` metode, panggil objek layanan klien Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *TEMPLATE\$1NAME* dengan nama untuk template baru, *HtmlPart* dengan HTML tag konten email, dan *SubjectPart* dengan subjek email.

```
import { CreateTemplateCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";

const TEMPLATE_NAME = getUniqueName("TestTemplateName");

const createCreateTemplateCommand = () => {
  return new CreateTemplateCommand({
    /**
     * The template feature in Amazon SES is based on the Handlebars template system.
     */
    Template: {
      /**
       * The name of an existing template in Amazon SES.
       */
      TemplateName: TEMPLATE_NAME,
      HtmlPart: `
        <h1>Hello, {{contact.firstName}}!</h1>
        <p>
        Did you know Amazon has a mascot named Peccy?
        </p>
      `,
      SubjectPart: "Amazon Tip",
    },
  });
};

const run = async () => {
  const createTemplateCommand = createCreateTemplateCommand();

  try {
    return await sesClient.send(createTemplateCommand);
  } catch (err) {
    console.log("Failed to create template.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Template ditambahkan ke Amazon SES.

```
node ses_createtemplate.js  
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_createtemplate.js).

## Memperbarui templat email
<a name="ses-examples-update-template"></a>

Dalam contoh ini, gunakan modul Node.js untuk membuat template email untuk digunakan dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_updatetemplate.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk meneruskan nilai `Template` parameter yang ingin Anda perbarui di template, dengan `TemplateName` parameter yang diperlukan diteruskan ke `UpdateTemplateCommand` metode kelas `SES` klien. Untuk memanggil `UpdateTemplateCommand` metode, panggil objek layanan Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *TEMPLATE\$1NAME* dengan nama template dan *HTML\$1PART* dengan konten email yang diberi tag HTML.

```
import { UpdateTemplateCommand } from "@aws-sdk/client-ses";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

const TEMPLATE_NAME = getUniqueName("TemplateName");
const HTML_PART = "<h1>Hello, World!</h1>";

const createUpdateTemplateCommand = () => {
  return new UpdateTemplateCommand({
    Template: {
      TemplateName: TEMPLATE_NAME,
      HtmlPart: HTML_PART,
      SubjectPart: "Example",
      TextPart: "Updated template text.",
    },
  });
};

const run = async () => {
  const updateTemplateCommand = createUpdateTemplateCommand();

  try {
    return await sesClient.send(updateTemplateCommand);
  } catch (err) {
    console.log("Failed to update template.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Amazon SES mengembalikan detail template.

```
node ses_updatetemplate.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_updatetemplate.js).

## Menghapus templat email
<a name="ses-examples-delete-template"></a>

Dalam contoh ini, gunakan modul Node.js untuk membuat template email untuk digunakan dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_deletetemplate.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk meneruskan `TemplateName` parameter yang diperlukan ke `DeleteTemplateCommand` metode kelas `SES` klien. Untuk memanggil `DeleteTemplateCommand` metode, panggil objek layanan Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *TEMPLATE\$1NAME* dengan nama template yang akan dihapus.

```
import { DeleteTemplateCommand } from "@aws-sdk/client-ses";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

const TEMPLATE_NAME = getUniqueName("TemplateName");

const createDeleteTemplateCommand = (templateName) =>
  new DeleteTemplateCommand({ TemplateName: templateName });

const run = async () => {
  const deleteTemplateCommand = createDeleteTemplateCommand(TEMPLATE_NAME);

  try {
    return await sesClient.send(deleteTemplateCommand);
  } catch (err) {
    console.log("Failed to delete template.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Amazon SES mengembalikan detail template.

```
node ses_deletetemplate.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_deletetemplate.js).

# Mengirim email menggunakan Amazon SES
<a name="ses-examples-sending-email"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Kirim teks atau email HTML.
+ Kirim email berdasarkan template email.
+ Kirim email massal berdasarkan template email.

Amazon SES API menyediakan dua cara berbeda bagi Anda untuk mengirim email, tergantung pada seberapa banyak kontrol yang Anda inginkan atas komposisi pesan email: diformat dan mentah. Untuk detailnya, lihat [Mengirim email berformat menggunakan Amazon SES API](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-formatted.html) dan [Mengirim email mentah menggunakan Amazon SES API](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html).

## Skenario
<a name="ses-examples-sending-email-scenario"></a>

Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk mengirim email dengan berbagai cara. Modul Node.js menggunakan SDK JavaScript untuk membuat dan menggunakan templat email menggunakan metode kelas `SES` klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendEmailCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendEmailCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendTemplatedEmailCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendTemplatedEmailCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendBulkTemplatedEmailCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendBulkTemplatedEmailCommand/)

## Tugas prasyarat
<a name="ses-examples-sending-emails-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/ses/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Persyaratan pengiriman pesan email
<a name="ses-examples-sending-msail-reqs"></a>

Amazon SES membuat pesan email dan segera mengantri untuk dikirim. Untuk mengirim email menggunakan `SendEmailCommand` metode ini, pesan Anda harus memenuhi persyaratan berikut:
+ Anda harus mengirim pesan dari alamat email atau domain yang diverifikasi. Jika Anda mencoba mengirim email menggunakan alamat atau domain yang tidak diverifikasi, operasi akan menghasilkan `"Email address not verified"` kesalahan.
+ Jika akun Anda masih dalam kotak pasir Amazon SES, Anda hanya dapat mengirim ke alamat atau domain terverifikasi, atau ke alamat email yang terkait dengan Simulator Kotak Surat Amazon SES. Untuk informasi selengkapnya, lihat [Memverifikasi alamat email dan domain](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) di Panduan Pengembang Layanan Email Sederhana Amazon.
+ Ukuran total pesan, termasuk lampiran, harus lebih kecil dari 10 MB.
+ Pesan harus menyertakan setidaknya satu alamat email penerima. Alamat penerima dapat berupa alamat Kepada:, alamat CC:, atau alamat BCC:. Jika alamat email penerima tidak valid (yaitu, tidak dalam format`UserName@[SubDomain.]Domain.TopLevelDomain`), seluruh pesan ditolak, bahkan jika pesan berisi penerima lain yang valid.
+ Pesan tidak dapat menyertakan lebih dari 50 penerima di bidang Kepada:, CC: dan BCC:. Jika Anda perlu mengirim pesan email ke audiens yang lebih besar, Anda dapat membagi daftar penerima Anda menjadi grup 50 atau kurang, dan kemudian memanggil `sendEmail` metode beberapa kali untuk mengirim pesan ke setiap grup.

## Mengirim email
<a name="ses-examples-sendmail"></a>

Dalam contoh ini, gunakan modul Node.js untuk mengirim email dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_sendemail.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk meneruskan nilai parameter yang menentukan email yang akan dikirim, termasuk alamat pengirim dan penerima, subjek, dan badan email dalam format teks biasa dan HTML, ke `SendEmailCommand` metode kelas `SES` klien. Untuk memanggil `SendEmailCommand` metode, panggil objek layanan Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *toAddress* dengan alamat untuk mengirim email ke, dan *fromAddress* dengan alamat email untuk mengirim email dari.

```
import { SendEmailCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const createSendEmailCommand = (toAddress, fromAddress) => {
  return new SendEmailCommand({
    Destination: {
      /* required */
      CcAddresses: [
        /* more items */
      ],
      ToAddresses: [
        toAddress,
        /* more To-email addresses */
      ],
    },
    Message: {
      /* required */
      Body: {
        /* required */
        Html: {
          Charset: "UTF-8",
          Data: "HTML_FORMAT_BODY",
        },
        Text: {
          Charset: "UTF-8",
          Data: "TEXT_FORMAT_BODY",
        },
      },
      Subject: {
        Charset: "UTF-8",
        Data: "EMAIL_SUBJECT",
      },
    },
    Source: fromAddress,
    ReplyToAddresses: [
      /* more items */
    ],
  });
};

const run = async () => {
  const sendEmailCommand = createSendEmailCommand(
    "recipient@example.com",
    "sender@example.com",
  );

  try {
    return await sesClient.send(sendEmailCommand);
  } catch (caught) {
    if (caught instanceof Error && caught.name === "MessageRejected") {
      /** @type { import('@aws-sdk/client-ses').MessageRejected} */
      const messageRejectedError = caught;
      return messageRejectedError;
    }
    throw caught;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Email diantrian untuk dikirim oleh Amazon SES.

```
node ses_sendemail.js 
```

Kode contoh ini dapat [ditemukan di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_sendemail.js). 

## Mengirim email menggunakan template
<a name="ses-examples-sendtemplatedemail"></a>

Dalam contoh ini, gunakan modul Node.js untuk mengirim email dengan Amazon SES. Buat modul Node.js dengan nama file`ses_sendtemplatedemail.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk meneruskan nilai parameter yang menentukan email yang akan dikirim, termasuk alamat pengirim dan penerima, subjek, badan email dalam format teks biasa dan HTML, ke `SendTemplatedEmailCommand` metode kelas `SES` klien. Untuk memanggil `SendTemplatedEmailCommand` metode, panggil objek layanan klien Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *REGION* dengan AWS Wilayah Anda, *USER* dengan nama dan alamat email untuk mengirim email ke, *VERIFIED\$1EMAIL* dengan alamat email untuk mengirim email dari, dan *TEMPLATE\$1NAME* dengan nama template.

```
import { SendTemplatedEmailCommand } from "@aws-sdk/client-ses";
import {
  getUniqueName,
  postfix,
} from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

/**
 * Replace this with the name of an existing template.
 */
const TEMPLATE_NAME = getUniqueName("ReminderTemplate");

/**
 * Replace these with existing verified emails.
 */
const VERIFIED_EMAIL = postfix(getUniqueName("Bilbo"), "@example.com");

const USER = { firstName: "Bilbo", emailAddress: VERIFIED_EMAIL };

/**
 *
 * @param { { emailAddress: string, firstName: string } } user
 * @param { string } templateName - The name of an existing template in Amazon SES.
 * @returns { SendTemplatedEmailCommand }
 */
const createReminderEmailCommand = (user, templateName) => {
  return new SendTemplatedEmailCommand({
    /**
     * Here's an example of how a template would be replaced with user data:
     * Template: <h1>Hello {{contact.firstName}},</h1><p>Don't forget about the party gifts!</p>
     * Destination: <h1>Hello Bilbo,</h1><p>Don't forget about the party gifts!</p>
     */
    Destination: { ToAddresses: [user.emailAddress] },
    TemplateData: JSON.stringify({ contact: { firstName: user.firstName } }),
    Source: VERIFIED_EMAIL,
    Template: templateName,
  });
};

const run = async () => {
  const sendReminderEmailCommand = createReminderEmailCommand(
    USER,
    TEMPLATE_NAME,
  );
  try {
    return await sesClient.send(sendReminderEmailCommand);
  } catch (caught) {
    if (caught instanceof Error && caught.name === "MessageRejected") {
      /** @type { import('@aws-sdk/client-ses').MessageRejected} */
      const messageRejectedError = caught;
      return messageRejectedError;
    }
    throw caught;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Email diantrian untuk dikirim oleh Amazon SES.

```
node ses_sendtemplatedemail.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_sendtemplatedemail.js).

## Mengirim email massal menggunakan template
<a name="ses-examples-sendbulktemplatedemail"></a>

Dalam contoh ini, gunakan modul Node.js untuk mengirim email dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_sendbulktemplatedemail.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. 

Buat objek untuk meneruskan nilai parameter yang menentukan email yang akan dikirim, termasuk alamat pengirim dan penerima, subjek, dan badan email dalam format teks biasa dan HTML, ke `SendBulkTemplatedEmailCommand` metode kelas `SES` klien. Untuk memanggil `SendBulkTemplatedEmailCommand` metode, panggil objek layanan Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *USERS* dengan nama dan alamat email untuk mengirim email ke, *VERIFIED\$1EMAIL\$11* dengan alamat email untuk mengirim email dari, dan *TEMPLATE\$1NAME* dengan nama template.

```
import { SendBulkTemplatedEmailCommand } from "@aws-sdk/client-ses";
import {
  getUniqueName,
  postfix,
} from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

/**
 * Replace this with the name of an existing template.
 */
const TEMPLATE_NAME = getUniqueName("ReminderTemplate");

/**
 * Replace these with existing verified emails.
 */
const VERIFIED_EMAIL_1 = postfix(getUniqueName("Bilbo"), "@example.com");
const VERIFIED_EMAIL_2 = postfix(getUniqueName("Frodo"), "@example.com");

const USERS = [
  { firstName: "Bilbo", emailAddress: VERIFIED_EMAIL_1 },
  { firstName: "Frodo", emailAddress: VERIFIED_EMAIL_2 },
];

/**
 *
 * @param { { emailAddress: string, firstName: string }[] } users
 * @param { string } templateName the name of an existing template in SES
 * @returns { SendBulkTemplatedEmailCommand }
 */
const createBulkReminderEmailCommand = (users, templateName) => {
  return new SendBulkTemplatedEmailCommand({
    /**
     * Each 'Destination' uses a corresponding set of replacement data. We can map each user
     * to a 'Destination' and provide user specific replacement data to create personalized emails.
     *
     * Here's an example of how a template would be replaced with user data:
     * Template: <h1>Hello {{name}},</h1><p>Don't forget about the party gifts!</p>
     * Destination 1: <h1>Hello Bilbo,</h1><p>Don't forget about the party gifts!</p>
     * Destination 2: <h1>Hello Frodo,</h1><p>Don't forget about the party gifts!</p>
     */
    Destinations: users.map((user) => ({
      Destination: { ToAddresses: [user.emailAddress] },
      ReplacementTemplateData: JSON.stringify({ name: user.firstName }),
    })),
    DefaultTemplateData: JSON.stringify({ name: "Shireling" }),
    Source: VERIFIED_EMAIL_1,
    Template: templateName,
  });
};

const run = async () => {
  const sendBulkTemplateEmailCommand = createBulkReminderEmailCommand(
    USERS,
    TEMPLATE_NAME,
  );
  try {
    return await sesClient.send(sendBulkTemplateEmailCommand);
  } catch (caught) {
    if (caught instanceof Error && caught.name === "MessageRejected") {
      /** @type { import('@aws-sdk/client-ses').MessageRejected} */
      const messageRejectedError = caught;
      return messageRejectedError;
    }
    throw caught;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Email diantrian untuk dikirim oleh Amazon SES.

```
node ses_sendbulktemplatedemail.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_sendbulktemplatedemail.js). 

# Contoh Layanan Pemberitahuan Sederhana Amazon
<a name="sns-examples"></a>

Amazon Simple Notification Service (Amazon SNS) adalah layanan web yang mengoordinasikan dan mengelola pengiriman atau pengiriman pesan untuk berlangganan titik akhir atau klien. 

Di Amazon SNS, ada dua jenis klien — penerbit dan pelanggan — juga disebut sebagai produsen dan konsumen. 

![\[Hubungan antara JavaScript lingkungan, SDK, dan Amazon SNS\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/code-samples-sns.png)


Penerbit berkomunikasi secara asinkron dengan pelanggan dengan memproduksi dan mengirim pesan ke suatu topik, yang merupakan jalur akses logis dan saluran komunikasi. Pelanggan (server web, alamat email, antrian Amazon SQS, AWS Lambda fungsi) mengkonsumsi atau menerima pesan atau pemberitahuan melalui salah satu protokol yang didukung (Amazon SQS, HTTP/S, email, AWS Lambda SMS,) ketika mereka berlangganan topik. 

 JavaScript API untuk Amazon SNS diekspos melalui [Kelas:](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/SNS/) SNS. 

**Topics**
+ [

# Mengelola Topik di Amazon SNS
](sns-examples-managing-topics.md)
+ [

# Menerbitkan Pesan di Amazon SNS
](sns-examples-publishing-messages.md)
+ [

# Mengelola Langganan di Amazon SNS
](sns-examples-subscribing-unsubscribing-topics.md)
+ [

# Mengirim Pesan SMS dengan Amazon SNS
](sns-examples-sending-sms.md)

# Mengelola Topik di Amazon SNS
<a name="sns-examples-managing-topics"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Cara membuat topik di Amazon SNS tempat Anda dapat mempublikasikan notifikasi.
+ Cara menghapus topik yang dibuat di Amazon SNS.
+ Cara mendapatkan daftar topik yang tersedia.
+ Cara mendapatkan dan mengatur atribut topik.

## Skenario
<a name="sns-examples-managing-topics-scenario"></a>

Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk membuat, membuat daftar, dan menghapus topik Amazon SNS, dan untuk menangani atribut topik. Modul Node.js menggunakan SDK JavaScript untuk mengelola topik menggunakan metode kelas `SNS` klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/CreateTopicCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/CreateTopicCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/ListTopicsCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/ListTopicsCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/DeleteTopicCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/DeleteTopicCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/GetTopicAttributesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/GetTopicAttributesCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/SetTopicAttributesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/SetTopicAttributesCommand/)

## Tugas Prasyarat
<a name="sns-examples-managing-topics-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Membuat Topik
<a name="sns-examples-managing-topics-createtopic"></a>

Dalam contoh ini, gunakan modul Node.js untuk membuat topik Amazon SNS. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`create-topic.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk meneruskan topik baru ke `CreateTopicCommand` metode kelas `SNS` klien. `Name` Untuk memanggil `CreateTopicCommand` metode, buat fungsi asinkron yang menjalankan objek layanan Amazon SNS, melewati objek parameter. Yang `data` dikembalikan berisi ARN topik.

**catatan**  
Ganti *TOPIC\$1NAME* dengan nama topik.

```
import { CreateTopicCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicName - The name of the topic to create.
 */
export const createTopic = async (topicName = "TOPIC_NAME") => {
  const response = await snsClient.send(
    new CreateTopicCommand({ Name: topicName }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '087b8ad2-4593-50c4-a496-d7e90b82cf3e',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   TopicArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:TOPIC_NAME'
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node create-topic.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/create-topic.js).

## Daftar Topik Anda
<a name="sns-examples-managing-topics-listtopics"></a>

Dalam contoh ini, gunakan modul Node.js untuk mencantumkan semua topik Amazon SNS. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`list-topics.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek kosong untuk diteruskan ke `ListTopicsCommand` metode kelas `SNS` klien. Untuk memanggil `ListTopicsCommand` metode, buat fungsi asinkron yang menjalankan objek layanan Amazon SNS, melewati objek parameter. Yang `data` dikembalikan berisi larik topik Anda Amazon Resource Names (ARNs).

```
import { ListTopicsCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

export const listTopics = async () => {
  const response = await snsClient.send(new ListTopicsCommand({}));
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '936bc5ad-83ca-53c2-b0b7-9891167b909e',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   Topics: [ { TopicArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic' } ]
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node list-topics.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/list-topics.js).

## Menghapus Topik
<a name="sns-examples-managing-topics-deletetopic"></a>

Dalam contoh ini, gunakan modul Node.js untuk menghapus topik Amazon SNS. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`delete-topic.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek yang `TopicArn` berisi topik yang akan dihapus untuk diteruskan ke `DeleteTopicCommand` metode kelas `SNS` klien. Untuk memanggil `DeleteTopicCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter. 

**catatan**  
Ganti *TOPIC\$1ARN* dengan Nama Sumber Daya Amazon (ARN) dari topik yang Anda hapus.

```
import { DeleteTopicCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic to delete.
 */
export const deleteTopic = async (topicArn = "TOPIC_ARN") => {
  const response = await snsClient.send(
    new DeleteTopicCommand({ TopicArn: topicArn }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'a10e2886-5a8f-5114-af36-75bd39498332',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node delete-topic.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/delete-topic.js).

## Mendapatkan Atribut Topik
<a name="sns-examples-managing-topicsgettopicattributes"></a>

Dalam contoh ini, gunakan modul Node.js untuk mengambil atribut topik Amazon SNS.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`get-topic-attributes.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.

Buat objek yang `TopicArn` berisi topik yang akan dihapus untuk diteruskan ke `GetTopicAttributesCommand` metode kelas `SNS` klien. Untuk memanggil `GetTopicAttributesCommand` metode, memanggil objek layanan klien Amazon SNS, meneruskan objek parameter. 

**catatan**  
Ganti *TOPIC\$1ARN* dengan ARN topik.

```
import { GetTopicAttributesCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic to retrieve attributes for.
 */
export const getTopicAttributes = async (topicArn = "TOPIC_ARN") => {
  const response = await snsClient.send(
    new GetTopicAttributesCommand({
      TopicArn: topicArn,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '36b6a24e-5473-5d4e-ac32-ff72d9a73d94',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   Attributes: {
  //     Policy: '{...}',
  //     Owner: 'xxxxxxxxxxxx',
  //     SubscriptionsPending: '1',
  //     TopicArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic',
  //     TracingConfig: 'PassThrough',
  //     EffectiveDeliveryPolicy: '{"http":{"defaultHealthyRetryPolicy":{"minDelayTarget":20,"maxDelayTarget":20,"numRetries":3,"numMaxDelayRetries":0,"numNoDelayRetries":0,"numMinDelayRetries":0,"backoffFunction":"linear"},"disableSubscriptionOverrides":false,"defaultRequestPolicy":{"headerContentType":"text/plain; charset=UTF-8"}}}',
  //     SubscriptionsConfirmed: '0',
  //     DisplayName: '',
  //     SubscriptionsDeleted: '1'
  //   }
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node get-topic-attributes.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/get-topic-attributes.js).

## Mengatur Atribut Topik
<a name="sns-examples-managing-topicssttopicattributes"></a>

Dalam contoh ini, gunakan modul Node.js untuk menyetel atribut yang dapat berubah dari topik Amazon SNS. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`set-topic-attributes.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.

Buat objek yang berisi parameter untuk pembaruan atribut, termasuk topik yang atributnya ingin Anda tetapkan, nama atribut yang akan ditetapkan, dan nilai baru untuk atribut tersebut. `TopicArn` Anda hanya dapat mengatur`Policy`,`DisplayName`, dan `DeliveryPolicy` atribut. Lewati parameter ke `SetTopicAttributesCommand` metode kelas `SNS` klien. Untuk memanggil `SetTopicAttributesCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter. 

**catatan**  
Ganti *ATTRIBUTE\$1NAME* dengan nama atribut yang Anda setel, *TOPIC\$1ARN* dengan Amazon Resource Name (ARN) dari topik yang atributnya ingin Anda tetapkan, dan *NEW\$1ATTRIBUTE\$1VALUE* dengan nilai baru untuk atribut tersebut.

```
import { SetTopicAttributesCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

export const setTopicAttributes = async (
  topicArn = "TOPIC_ARN",
  attributeName = "DisplayName",
  attributeValue = "Test Topic",
) => {
  const response = await snsClient.send(
    new SetTopicAttributesCommand({
      AttributeName: attributeName,
      AttributeValue: attributeValue,
      TopicArn: topicArn,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'd1b08d0e-e9a4-54c3-b8b1-d03238d2b935',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node set-topic-attributes.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/set-topic-attributes.js).

# Menerbitkan Pesan di Amazon SNS
<a name="sns-examples-publishing-messages"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Cara mempublikasikan pesan ke topik Amazon SNS.

## Skenario
<a name="sns-examples-publishing-messages-scenario"></a>

Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk mempublikasikan pesan dari Amazon SNS ke titik akhir topik, email, atau nomor telepon. Modul Node.js menggunakan SDK JavaScript untuk mengirim pesan menggunakan metode kelas `SNS` klien ini:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/PublishCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/PublishCommand/)

## Tugas Prasyarat
<a name="sns-examples-publishing-messages-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Menerbitkan Pesan ke Topik SNS
<a name="sns-examples-publishing-text-messages"></a>

Dalam contoh ini, gunakan modul Node.js untuk mempublikasikan pesan ke topik Amazon SNS.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

 Buat modul Node.js dengan nama file`publish-topic.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.

Buat objek yang berisi parameter untuk menerbitkan pesan, termasuk teks pesan dan Amazon Resource Name (ARN) Amazon. SNStopic Untuk detail tentang atribut SMS yang tersedia, lihat [Mengatur SMSAttributes](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#setSMSAttributes-property).

Teruskan parameter ke `PublishCommand` metode kelas `SNS` klien. buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter. 

**catatan**  
Ganti *MESSAGE\$1TEXT* dengan teks pesan, dan *TOPIC\$1ARN* dengan ARN dari topik SNS.

```
import { PublishCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string | Record<string, any>} message - The message to send. Can be a plain string or an object
 *                                                 if you are using the `json` `MessageStructure`.
 * @param {string} topicArn - The ARN of the topic to which you would like to publish.
 */
export const publish = async (
  message = "Hello from SNS!",
  topicArn = "TOPIC_ARN",
) => {
  const response = await snsClient.send(
    new PublishCommand({
      Message: message,
      TopicArn: topicArn,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'e7f77526-e295-5325-9ee4-281a43ad1f05',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   MessageId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node publish-topic.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/publish-topic.js).

# Mengelola Langganan di Amazon SNS
<a name="sns-examples-subscribing-unsubscribing-topics"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Cara membuat daftar semua langganan ke topik Amazon SNS.
+ Cara berlangganan alamat email, titik akhir aplikasi, atau AWS Lambda fungsi ke topik Amazon SNS.
+ Cara berhenti berlangganan dari topik Amazon SNS.

## Skenario
<a name="sns-examples-subscribing-unsubscribing-topics-scenario"></a>

Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk mempublikasikan pesan notifikasi ke topik Amazon SNS. Modul Node.js menggunakan SDK JavaScript untuk mengelola topik menggunakan metode kelas `SNS` klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/ListSubscriptionsByTopicCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/ListSubscriptionsByTopicCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/SubscribeCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/SubscribeCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/ConfirmSubscriptionCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/ConfirmSubscriptionCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/UnsubscribeCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/UnsubscribeCommand/)

## Tugas Prasyarat
<a name="sns-examples-subscribing-unsubscribing-topics-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Daftar Langganan ke Topik
<a name="sns-examples-list-subscriptions-email"></a>

Dalam contoh ini, gunakan modul Node.js untuk mencantumkan semua langganan ke topik Amazon SNS. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

 Buat modul Node.js dengan nama file`list-subscriptions-by-topic.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.

Buat objek yang berisi `TopicArn` parameter untuk topik yang langganannya ingin Anda daftarkan. Lewati parameter ke `ListSubscriptionsByTopicCommand` metode kelas `SNS` klien. Untuk memanggil `ListSubscriptionsByTopicCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, dan meneruskan objek parameter. 

**catatan**  
Ganti *TOPIC\$1ARN* dengan Nama Sumber Daya Amazon (ARN) untuk topik yang langganannya ingin Anda daftarkan.

```
import { ListSubscriptionsByTopicCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic for which you wish to list subscriptions.
 */
export const listSubscriptionsByTopic = async (topicArn = "TOPIC_ARN") => {
  const response = await snsClient.send(
    new ListSubscriptionsByTopicCommand({ TopicArn: topicArn }),
  );

  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '0934fedf-0c4b-572e-9ed2-a3e38fadb0c8',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   Subscriptions: [
  //     {
  //       SubscriptionArn: 'PendingConfirmation',
  //       Owner: '901487484989',
  //       Protocol: 'email',
  //       Endpoint: 'corepyle@amazon.com',
  //       TopicArn: 'arn:aws:sns:us-east-1:901487484989:mytopic'
  //     }
  //   ]
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node list-subscriptions-by-topic.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/list-subscriptions-by-topic.js).

## Berlangganan Alamat Email ke Topik
<a name="sns-examples-subscribing-email"></a>

Dalam contoh ini, gunakan modul Node.js untuk berlangganan alamat email sehingga menerima pesan email SMTP dari topik Amazon SNS. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`subscribe-email.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.

Buat objek yang berisi `Protocol` parameter untuk menentukan `email` protokol, topik `TopicArn` untuk berlangganan, dan alamat email sebagai pesan`Endpoint`. Lewati parameter ke `SubscribeCommand` metode kelas `SNS` klien. Anda dapat menggunakan `subscribe` metode ini untuk berlangganan beberapa titik akhir yang berbeda ke topik Amazon SNS, tergantung pada nilai yang digunakan untuk parameter yang diteruskan, seperti contoh lain dalam topik ini akan ditampilkan.

Untuk memanggil `SubscribeCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, dan meneruskan objek parameter. 

**catatan**  
Ganti *TOPIC\$1ARN* dengan Nama Sumber Daya Amazon (ARN) untuk topik tersebut, dan *EMAIL\$1ADDRESS* dengan alamat email untuk berlangganan.

```
import { SubscribeCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic for which you wish to confirm a subscription.
 * @param {string} emailAddress - The email address that is subscribed to the topic.
 */
export const subscribeEmail = async (
  topicArn = "TOPIC_ARN",
  emailAddress = "usern@me.com",
) => {
  const response = await snsClient.send(
    new SubscribeCommand({
      Protocol: "email",
      TopicArn: topicArn,
      Endpoint: emailAddress,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'c8e35bcd-b3c0-5940-9f66-06f6fcc108f0',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   SubscriptionArn: 'pending confirmation'
  // }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node subscribe-email.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/subscribe-email.js).

### Mengonfirmasi Langganan
<a name="sns-confirm-subscription-email"></a>

Dalam contoh ini, gunakan modul Node.js untuk memverifikasi maksud pemilik endpoint untuk menerima email dengan memvalidasi token yang dikirim ke titik akhir dengan tindakan berlangganan sebelumnya.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`confirm-subscription.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Tentukan parameter, termasuk `TOPIC_ARN` dan`TOKEN`, dan tentukan nilai `TRUE` atau `FALSE` untuk`AuthenticateOnUnsubscribe`.

Token adalah token berumur pendek yang dikirim ke pemilik titik akhir selama tindakan sebelumnya`SUBSCRIBE`. Misalnya, untuk titik akhir email `TOKEN` ada di URL email Konfirmasi Langganan yang dikirim ke pemilik email. Misalnya, `abc123` adalah token di URL berikut.

![\[Amazon Web Services Simple Notification Service subscription confirmation page.\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/token.png)


Untuk memanggil `ConfirmSubscriptionCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter. 

**catatan**  
Ganti *TOPIC\$1ARN* dengan Nama Sumber Daya Amazon (ARN) untuk topik, *TOKEN* dengan nilai token dari URL yang dikirim ke pemilik titik akhir dalam `Subscribe` tindakan sebelumnya, dan tentukan*AuthenticateOnUnsubscribe*. dengan nilai atau. `TRUE` `FALSE`

```
import { ConfirmSubscriptionCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} token - This token is sent the subscriber. Only subscribers
 *                         that are not AWS services (HTTP/S, email) need to be confirmed.
 * @param {string} topicArn - The ARN of the topic for which you wish to confirm a subscription.
 */
export const confirmSubscription = async (
  token = "TOKEN",
  topicArn = "TOPIC_ARN",
) => {
  const response = await snsClient.send(
    // A subscription only needs to be confirmed if the endpoint type is
    // HTTP/S, email, or in another AWS account.
    new ConfirmSubscriptionCommand({
      Token: token,
      TopicArn: topicArn,
      // If this is true, the subscriber cannot unsubscribe while unauthenticated.
      AuthenticateOnUnsubscribe: "false",
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '4bb5bce9-805a-5517-8333-e1d2cface90b',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   SubscriptionArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:TOPIC_NAME:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node confirm-subscription.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/confirm-subscription.js).

## Berlangganan Endpoint Aplikasi ke Topik
<a name="sns-examples-subscribing-apps"></a>

Dalam contoh ini, gunakan modul Node.js untuk berlangganan titik akhir aplikasi seluler sehingga menerima pemberitahuan dari topik Amazon SNS. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`subscribe-app.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal modul dan paket yang diperlukan.

Buat objek yang berisi `Protocol` parameter untuk menentukan `application` protokol, topik `TopicArn` untuk berlangganan, dan Nama Sumber Daya Amazon (ARN) dari titik akhir aplikasi seluler untuk parameter tersebut. `Endpoint` Lewati parameter ke `SubscribeCommand` metode kelas `SNS` klien.

Untuk memanggil `SubscribeCommand` metode, buat fungsi asinkron yang menjalankan objek layanan Amazon SNS, melewati objek parameter. 

**catatan**  
Ganti *TOPIC\$1ARN* dengan Nama Sumber Daya Amazon (ARN) untuk topik tersebut, dan *MOBILE\$1ENDPOINT\$1ARN* dengan titik akhir Anda berlangganan topik tersebut.

```
import { SubscribeCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic the subscriber is subscribing to.
 * @param {string} endpoint - The Endpoint ARN of an application. This endpoint is created
 *                            when an application registers for notifications.
 */
export const subscribeApp = async (
  topicArn = "TOPIC_ARN",
  endpoint = "ENDPOINT",
) => {
  const response = await snsClient.send(
    new SubscribeCommand({
      Protocol: "application",
      TopicArn: topicArn,
      Endpoint: endpoint,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'c8e35bcd-b3c0-5940-9f66-06f6fcc108f0',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   SubscriptionArn: 'pending confirmation'
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node subscribe-app.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/subscribe-app.js).

## Berlangganan Fungsi Lambda ke Topik
<a name="sns-examples-subscribing-lambda"></a>

Dalam contoh ini, gunakan modul Node.js untuk berlangganan suatu AWS Lambda fungsi sehingga menerima pemberitahuan dari topik Amazon SNS. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`subscribe-lambda.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.

Buat objek yang berisi `Protocol` parameter, tentukan `lambda` protokol, topik `TopicArn` untuk berlangganan, dan Nama Sumber Daya Amazon (ARN) dari fungsi AWS Lambda sebagai `Endpoint` parameter. Lewati parameter ke `SubscribeCommand` metode kelas `SNS` klien.

Untuk memanggil `SubscribeCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter. 

**catatan**  
Ganti *TOPIC\$1ARN* dengan Amazon Resource Name (ARN) untuk topik, dan *LAMBDA\$1FUNCTION\$1ARN* dengan Amazon Resource Name (ARN) dari fungsi Lambda.

```
import { SubscribeCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic the subscriber is subscribing to.
 * @param {string} endpoint - The Endpoint ARN of and AWS Lambda function.
 */
export const subscribeLambda = async (
  topicArn = "TOPIC_ARN",
  endpoint = "ENDPOINT",
) => {
  const response = await snsClient.send(
    new SubscribeCommand({
      Protocol: "lambda",
      TopicArn: topicArn,
      Endpoint: endpoint,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'c8e35bcd-b3c0-5940-9f66-06f6fcc108f0',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   SubscriptionArn: 'pending confirmation'
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node subscribe-lambda.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/subscribe-lambda.js).

## Berhenti berlangganan dari Topik
<a name="sns-examples-unsubscribing"></a>

Dalam contoh ini, gunakan modul Node.js untuk berhenti berlangganan langganan topik Amazon SNS.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`unsubscribe.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek yang berisi `SubscriptionArn` parameter, tentukan Nama Sumber Daya Amazon (ARN) langganan untuk berhenti berlangganan. Lewati parameter ke `UnsubscribeCommand` metode kelas `SNS` klien.

Untuk memanggil `UnsubscribeCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter. 

**catatan**  
Ganti *TOPIC\$1SUBSCRIPTION\$1ARN* dengan Nama Sumber Daya Amazon (ARN) dari langganan untuk berhenti berlangganan.

```
import { UnsubscribeCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} subscriptionArn - The ARN of the subscription to cancel.
 */
const unsubscribe = async (
  subscriptionArn = "arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
) => {
  const response = await snsClient.send(
    new UnsubscribeCommand({
      SubscriptionArn: subscriptionArn,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '0178259a-9204-507c-b620-78a7570a44c6',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node unsubscribe.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/unsubscribe.js).

# Mengirim Pesan SMS dengan Amazon SNS
<a name="sns-examples-sending-sms"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Cara mendapatkan dan mengatur preferensi pesan SMS untuk Amazon SNS.
+ Cara memeriksa nomor telepon untuk melihat apakah telah memilih untuk tidak menerima pesan SMS.
+ Cara mendapatkan daftar nomor telepon yang telah memilih untuk tidak menerima pesan SMS.
+ Cara mengirim pesan SMS.

## Skenario
<a name="sns-examples-sending-sms-scenario"></a>

Anda dapat menggunakan Amazon SNS untuk mengirim pesan teks, atau pesan SMS, ke perangkat yang mendukung SMS. Anda dapat mengirim pesan langsung ke sebuah nomor telepon, atau Anda dapat mengirim pesan ke beberapa nomor telepon sekaligus dengan berlangganan topik untuk nomor telepon tersebut dan mengirim pesan Anda ke topik tersebut.

Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk mempublikasikan pesan teks SMS dari Amazon SNS ke perangkat berkemampuan SMS. Modul Node.js menggunakan SDK JavaScript untuk mempublikasikan pesan SMS menggunakan metode kelas `SNS` klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/GetSMSAttributesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/GetSMSAttributesCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/SetSMSAttributesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/SetSMSAttributesCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/CheckIfPhoneNumberIsOptedOutCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/CheckIfPhoneNumberIsOptedOutCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/ListPhoneNumbersOptedOutCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/ListPhoneNumbersOptedOutCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/PublishCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/PublishCommand/)

## Tugas Prasyarat
<a name="sns-examples-sending-sms-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Mendapatkan Atribut SMS
<a name="sending-sms-getattributes"></a>

Gunakan Amazon SNS untuk menentukan preferensi untuk pesan SMS, seperti bagaimana pengiriman Anda dioptimalkan (untuk biaya atau untuk pengiriman yang andal), batas pengeluaran bulanan Anda, cara pengiriman pesan dicatat, dan apakah akan berlangganan laporan penggunaan SMS harian. Preferensi ini diambil dan ditetapkan sebagai atribut SMS untuk Amazon SNS.

Dalam contoh ini, gunakan modul Node.js untuk mendapatkan atribut SMS saat ini di Amazon SNS.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

 Buat modul Node.js dengan nama file`get-sms-attributes.js`.

Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk mengunduh klien dan paket yang diperlukan. Buat objek yang berisi parameter untuk mendapatkan atribut SMS, termasuk nama-nama atribut individual yang akan didapat. Untuk detail tentang atribut SMS yang tersedia, lihat [Mengatur SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) Referensi API Layanan Pemberitahuan Sederhana Amazon.

Contoh ini mendapatkan `DefaultSMSType` atribut, yang mengontrol apakah pesan SMS dikirim sebagai`Promotional`, yang mengoptimalkan pengiriman pesan untuk menimbulkan biaya terendah, atau as`Transactional`, yang mengoptimalkan pengiriman pesan untuk mencapai keandalan tertinggi. Lewati parameter ke `SetTopicAttributesCommand` metode kelas `SNS` klien. Untuk memanggil `SetSMSAttributesCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter. 

**catatan**  
Ganti *ATTRIBUTE\$1NAME* dengan nama atribut.

```
import { GetSMSAttributesCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

export const getSmsAttributes = async () => {
  const response = await snsClient.send(
    // If you have not modified the account-level mobile settings of SNS,
    // the DefaultSMSType is undefined. For this example, it was set to
    // Transactional.
    new GetSMSAttributesCommand({ attributes: ["DefaultSMSType"] }),
  );

  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '67ad8386-4169-58f1-bdb9-debd281d48d5',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   attributes: { DefaultSMSType: 'Transactional' }
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node get-sms-attributes.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/get-sms-attributes.js).

## Mengatur Atribut SMS
<a name="sending-sms-setattributes"></a>

Dalam contoh ini, gunakan modul Node.js untuk mendapatkan atribut SMS saat ini di Amazon SNS.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

 Buat modul Node.js dengan nama file`set-sms-attribute-type.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat objek yang berisi parameter untuk mengatur atribut SMS, termasuk nama atribut individual yang akan ditetapkan dan nilai yang akan ditetapkan untuk masing-masing. Untuk detail tentang atribut SMS yang tersedia, lihat [Mengatur SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) Referensi API Layanan Pemberitahuan Sederhana Amazon.

Contoh ini menetapkan `DefaultSMSType` atribut ke`Transactional`, yang mengoptimalkan pengiriman pesan untuk mencapai keandalan tertinggi. Lewati parameter ke `SetTopicAttributesCommand` metode kelas `SNS` klien. Untuk memanggil `SetSMSAttributesCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter. 

```
import { SetSMSAttributesCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {"Transactional" | "Promotional"} defaultSmsType
 */
export const setSmsType = async (defaultSmsType = "Transactional") => {
  const response = await snsClient.send(
    new SetSMSAttributesCommand({
      attributes: {
        // Promotional – (Default) Noncritical messages, such as marketing messages.
        // Transactional – Critical messages that support customer transactions,
        // such as one-time passcodes for multi-factor authentication.
        DefaultSMSType: defaultSmsType,
      },
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '1885b977-2d7e-535e-8214-e44be727e265',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node set-sms-attribute-type.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/set-sms-attribute-type.js).

## Memeriksa Apakah Nomor Telepon Telah Memilih Keluar
<a name="sending-sms-checkifphonenumberisoptedout"></a>

Dalam contoh ini, gunakan modul Node.js untuk memeriksa nomor telepon untuk melihat apakah telah memilih keluar dari menerima pesan SMS. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`check-if-phone-number-is-opted-out.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya. Buat objek yang berisi nomor telepon untuk diperiksa sebagai parameter.

Contoh ini menetapkan `PhoneNumber` parameter untuk menentukan nomor telepon yang akan diperiksa. Lewati objek ke `CheckIfPhoneNumberIsOptedOutCommand` metode kelas `SNS` klien. Untuk memanggil `CheckIfPhoneNumberIsOptedOutCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter. 

**catatan**  

Ganti *PHONE\$1NUMBER* dengan nomor telepon.

```
import { CheckIfPhoneNumberIsOptedOutCommand } from "@aws-sdk/client-sns";

import { snsClient } from "../libs/snsClient.js";

export const checkIfPhoneNumberIsOptedOut = async (
  phoneNumber = "5555555555",
) => {
  const command = new CheckIfPhoneNumberIsOptedOutCommand({
    phoneNumber,
  });

  const response = await snsClient.send(command);
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '3341c28a-cdc8-5b39-a3ee-9fb0ee125732',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   isOptedOut: false
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node check-if-phone-number-is-opted-out.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/check-if-phone-number-is-opted-out.js).

## Daftar Nomor Telepon yang Dipilih Keluar
<a name="sending-sms-listphonenumbersoptedout"></a>

Dalam contoh ini, gunakan modul Node.js untuk mendapatkan daftar nomor telepon yang telah memilih keluar dari menerima pesan SMS.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`list-phone-numbers-opted-out.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya. Buat objek kosong sebagai parameter.

Lewati objek ke `ListPhoneNumbersOptedOutCommand` metode kelas `SNS` klien. Untuk memanggil `ListPhoneNumbersOptedOutCommand` metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter. 

```
import { ListPhoneNumbersOptedOutCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

export const listPhoneNumbersOptedOut = async () => {
  const response = await snsClient.send(
    new ListPhoneNumbersOptedOutCommand({}),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '44ff72fd-1037-5042-ad96-2fc16601df42',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   phoneNumbers: ['+15555550100']
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node list-phone-numbers-opted-out.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/list-phone-numbers-opted-out.js).

## Menerbitkan Pesan SMS
<a name="sending-sms-publishsms"></a>

Dalam contoh ini, gunakan modul Node.js untuk mengirim pesan SMS ke nomor telepon.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`snsClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

Buat modul Node.js dengan nama file`publish-sms.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat objek yang berisi `PhoneNumber` parameter `Message` dan.

Saat Anda mengirim pesan SMS, tentukan nomor telepon menggunakan format E.164. E.164 adalah standar untuk struktur nomor telepon yang digunakan untuk telekomunikasi internasional. Nomor telepon yang mengikuti format ini dapat memiliki maksimum 15 digit, dan diawali dengan karakter plus (\$1) dan kode negara. Misalnya, nomor telepon AS dalam format E.164 akan muncul sebagai \$11001. XXX5550100 

Contoh ini menetapkan `PhoneNumber` parameter untuk menentukan nomor telepon untuk mengirim pesan. Lewati objek ke `PublishCommand` metode kelas `SNS` klien. Untuk memanggil `PublishCommand` metode, buat fungsi asinkron yang menjalankan objek layanan Amazon SNS, melewati objek parameter. 

**catatan**  
Ganti *TEXT\$1MESSAGE* dengan pesan teks, dan *PHONE\$1NUMBER* dengan nomor telepon.

```
import { PublishCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string | Record<string, any>} message - The message to send. Can be a plain string or an object
 *                                                 if you are using the `json` `MessageStructure`.
 * @param {*} phoneNumber - The phone number to send the message to.
 */
export const publish = async (
  message = "Hello from SNS!",
  phoneNumber = "+15555555555",
) => {
  const response = await snsClient.send(
    new PublishCommand({
      Message: message,
      // One of PhoneNumber, TopicArn, or TargetArn must be specified.
      PhoneNumber: phoneNumber,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '7410094f-efc7-5f52-af03-54737569ab77',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   MessageId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
  // }
  return response;
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node publish-sms.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/publish-sms.js).

# Contoh Amazon Transcribe
<a name="Transcribe-examples"></a>

Amazon Transcribe memudahkan pengembang untuk menambahkan kemampuan ucapan ke teks ke aplikasi mereka. 

![\[Hubungan antara JavaScript lingkungan, SDK, dan Amazon Transcribe\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/code-samples-transcribe.png)


 JavaScript API untuk Amazon Transcribe diekspos melalui kelas [TranscribeService](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/Transcribe/)klien.

**Topics**
+ [

# Contoh Amazon Transcribe
](transcribe-examples-section.md)
+ [

# Contoh medis Amazon Transcribe
](transcribe-medical-examples-section.md)

# Contoh Amazon Transcribe
<a name="transcribe-examples-section"></a>

Dalam contoh ini, serangkaian modul Node.js digunakan untuk membuat, membuat daftar, dan menghapus pekerjaan transkripsi menggunakan metode berikut dari kelas `TranscribeService` klien:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/StartTranscriptionJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/StartTranscriptionJobCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/ListTranscriptionJobsCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/ListTranscriptionJobsCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/DeleteTranscriptionJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/DeleteTranscriptionJobCommand/)

Untuk informasi selengkapnya tentang pengguna Amazon Transcribe, lihat panduan developer [Amazon Transcribe](https://docs.aws.amazon.com//transcribe/latest/dg/what-is-transcribe.html).

## Tugas prasyarat
<a name="transcribe-example-transcription-jobs"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Memulai pekerjaan Amazon Transcribe
<a name="transcribe-start-transcription"></a>

Contoh ini menunjukkan cara memulai pekerjaan transkripsi Amazon Transcribe menggunakan. AWS SDK untuk JavaScript Untuk informasi selengkapnya, lihat [StartTranscriptionJobCommand](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/StartTranscriptionJobCommand/).

Buat `libs` direktori, dan buat modul Node.js dengan nama file`transcribeClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon Transcribe. Ganti *REGION* dengan AWS wilayah Anda.

```
import { TranscribeClient } from "@aws-sdk/client-transcribe";
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create an Amazon Transcribe service client object.
const transcribeClient = new TranscribeClient({ region: REGION });
export { transcribeClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/libs/transcribeClient.js).

Buat modul Node.js dengan nama file`transcribe-create-job.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat objek parameter, tentukan parameter yang diperlukan. Mulai pekerjaan menggunakan `StartMedicalTranscriptionJobCommand` perintah.

**catatan**  
Ganti *MEDICAL\$1JOB\$1NAME* dengan nama untuk pekerjaan transkripsi. Untuk *OUTPUT\$1BUCKET\$1NAME* tentukan bucket Amazon S3 tempat output disimpan. Untuk *JOB\$1TYPE* menentukan jenis pekerjaan. Untuk *SOURCE\$1LOCATION* menentukan lokasi file sumber. Untuk *SOURCE\$1FILE\$1LOCATION* menentukan lokasi file media input.

```
// Import the required AWS SDK clients and commands for Node.js
import { StartTranscriptionJobCommand } from "@aws-sdk/client-transcribe";
import { transcribeClient } from "./libs/transcribeClient.js";

// Set the parameters
export const params = {
  TranscriptionJobName: "JOB_NAME",
  LanguageCode: "LANGUAGE_CODE", // For example, 'en-US'
  MediaFormat: "SOURCE_FILE_FORMAT", // For example, 'wav'
  Media: {
    MediaFileUri: "SOURCE_LOCATION",
    // For example, "https://transcribe-demo.s3-REGION.amazonaws.com/hello_world.wav"
  },
  OutputBucketName: "OUTPUT_BUCKET_NAME",
};

export const run = async () => {
  try {
    const data = await transcribeClient.send(
      new StartTranscriptionJobCommand(params),
    );
    console.log("Success - put", data);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node transcribe-create-job.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_create_job.js).

## Daftar pekerjaan Amazon Transcribe
<a name="transcribe-list-jobs"></a>

Contoh ini menunjukkan caranya daftar pekerjaan transkripsi Amazon Transcribe menggunakan. AWS SDK untuk JavaScript Untuk informasi selengkapnya tentang pengaturan lain yang dapat Anda ubah, lihat [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/ListTranscriptionJobsCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/ListTranscriptionJobsCommand/).

Buat `libs` direktori, dan buat modul Node.js dengan nama file`transcribeClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon Transcribe. Ganti *REGION* dengan AWS wilayah Anda.

```
import { TranscribeClient } from "@aws-sdk/client-transcribe";
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create an Amazon Transcribe service client object.
const transcribeClient = new TranscribeClient({ region: REGION });
export { transcribeClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/libs/transcribeClient.js).

Buat modul Node.js dengan nama file`transcribe-list-jobs.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat objek parameter dengan parameter yang diperlukan.

**catatan**  
Ganti *KEY\$1WORD* dengan kata kunci yang harus berisi nama pekerjaan yang dikembalikan.

```
// Import the required AWS SDK clients and commands for Node.js

import { ListTranscriptionJobsCommand } from "@aws-sdk/client-transcribe";
import { transcribeClient } from "./libs/transcribeClient.js";

// Set the parameters
export const params = {
  JobNameContains: "KEYWORD", // Not required. Returns only transcription
  // job names containing this string
};

export const run = async () => {
  try {
    const data = await transcribeClient.send(
      new ListTranscriptionJobsCommand(params),
    );
    console.log("Success", data.TranscriptionJobSummaries);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node transcribe-list-jobs.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_list_jobs.js).

## Menghapus pekerjaan Amazon Transcribe
<a name="transcribe-delete-job"></a>

Contoh ini menunjukkan cara menghapus pekerjaan transkripsi Amazon Transcribe menggunakan. AWS SDK untuk JavaScript Untuk informasi lebih lanjut tentang opsional, lihat [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/DeleteTranscriptionJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/DeleteTranscriptionJobCommand/).

Buat `libs` direktori, dan buat modul Node.js dengan nama file`transcribeClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon Transcribe. Ganti *REGION* dengan AWS wilayah Anda.

```
import  { TranscribeClient }  from  "@aws-sdk/client-transcribe";
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create Transcribe service object.
const transcribeClient = new TranscribeClient({ region: REGION });
export { transcribeClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/libs/transcribeClient.js).

Buat modul Node.js dengan nama file`transcribe-delete-job.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Tentukan AWS Wilayah, dan nama pekerjaan yang ingin Anda hapus.

**catatan**  
Ganti *JOB\$1NAME* dengan nama pekerjaan yang akan dihapus. 

```
// Import the required AWS SDK clients and commands for Node.js
import { DeleteTranscriptionJobCommand } from "@aws-sdk/client-transcribe";
import { transcribeClient } from "./libs/transcribeClient.js";

// Set the parameters
export const params = {
  TranscriptionJobName: "JOB_NAME", // Required. For example, 'transciption_demo'
};

export const run = async () => {
  try {
    const data = await transcribeClient.send(
      new DeleteTranscriptionJobCommand(params),
    );
    console.log("Success - deleted");
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node transcribe-delete-job.js  
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_delete_job.js).

# Contoh medis Amazon Transcribe
<a name="transcribe-medical-examples-section"></a>

Dalam contoh ini, serangkaian modul Node.js digunakan untuk membuat, membuat daftar, dan menghapus pekerjaan transkripsi medis menggunakan metode berikut dari kelas `TranscribeService` klien:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/StartMedicalTranscriptionJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/StartMedicalTranscriptionJobCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/ListTranscriptionJobsCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/ListTranscriptionJobsCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/DeleteTranscriptionJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/DeleteTranscriptionJobCommand/)

Untuk informasi selengkapnya tentang pengguna Amazon Transcribe, lihat panduan developer [Amazon Transcribe](https://docs.aws.amazon.com//transcribe/latest/dg/what-is-transcribe.html).

## Tugas prasyarat
<a name="transcribe-example-transcription-medical-jobs"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Memulai pekerjaan transkripsi medis Amazon Transcribe
<a name="transcribe-start-medical-transcription"></a>

Contoh ini menunjukkan cara memulai pekerjaan transkripsi medis Amazon Transcribe menggunakan. AWS SDK untuk JavaScript Untuk informasi lebih lanjut, lihat [startMedicalTranscriptionJob](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/StartMedicalTranscriptionJobCommand/).

Buat `libs` direktori, dan buat modul Node.js dengan nama file`transcribeClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon Transcribe. Ganti *REGION* dengan AWS wilayah Anda.

```
import  { TranscribeClient }  from  "@aws-sdk/client-transcribe";
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create Transcribe service object.
const transcribeClient = new TranscribeClient({ region: REGION });
export { transcribeClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/libs/transcribeClient.js).

Buat modul Node.js dengan nama file`transcribe-create-medical-job.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat objek parameter, tentukan parameter yang diperlukan. Mulai pekerjaan medis menggunakan `StartMedicalTranscriptionJobCommand` perintah.

**catatan**  
Ganti *MEDICAL\$1JOB\$1NAME* dengan nama untuk pekerjaan transkripsi medis. Untuk *OUTPUT\$1BUCKET\$1NAME* tentukan bucket Amazon S3 tempat output disimpan. Untuk *JOB\$1TYPE* menentukan jenis pekerjaan. Untuk *SOURCE\$1LOCATION* menentukan lokasi file sumber. Untuk *SOURCE\$1FILE\$1LOCATION* menentukan lokasi file media input.

```
// Import the required AWS SDK clients and commands for Node.js
import { StartMedicalTranscriptionJobCommand } from "@aws-sdk/client-transcribe";
import { transcribeClient } from "./libs/transcribeClient.js";

// Set the parameters
export const params = {
  MedicalTranscriptionJobName: "MEDICAL_JOB_NAME", // Required
  OutputBucketName: "OUTPUT_BUCKET_NAME", // Required
  Specialty: "PRIMARYCARE", // Required. Possible values are 'PRIMARYCARE'
  Type: "JOB_TYPE", // Required. Possible values are 'CONVERSATION' and 'DICTATION'
  LanguageCode: "LANGUAGE_CODE", // For example, 'en-US'
  MediaFormat: "SOURCE_FILE_FORMAT", // For example, 'wav'
  Media: {
    MediaFileUri: "SOURCE_FILE_LOCATION",
    // The S3 object location of the input media file. The URI must be in the same region
    // as the API endpoint that you are calling.For example,
    // "https://transcribe-demo.s3-REGION.amazonaws.com/hello_world.wav"
  },
};

export const run = async () => {
  try {
    const data = await transcribeClient.send(
      new StartMedicalTranscriptionJobCommand(params),
    );
    console.log("Success - put", data);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node transcribe-create-medical-job.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_create_medical_job.js).

## Daftar pekerjaan medis Amazon Transcribe
<a name="transcribe-list-medical-jobs"></a>

Contoh ini menunjukkan cara membuat daftar pekerjaan transkripsi Amazon Transcribe menggunakan. AWS SDK untuk JavaScript Untuk informasi selengkapnya, lihat [ListTranscriptionMedicalJobsCommand](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/ListMedicalTranscriptionJobsCommand/).

Buat `libs` direktori, dan buat modul Node.js dengan nama file`transcribeClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon Transcribe. Ganti *REGION* dengan AWS wilayah Anda.

```
import { TranscribeClient } from "@aws-sdk/client-transcribe";
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create an Amazon Transcribe service client object.
const transcribeClient = new TranscribeClient({ region: REGION });
export { transcribeClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/libs/transcribeClient.js).

Buat modul Node.js dengan nama file`transcribe-list-medical-jobs.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat objek parameter dengan parameter yang diperlukan, dan daftar pekerjaan medis menggunakan `ListMedicalTranscriptionJobsCommand` perintah.

**catatan**  
Ganti *KEYWORD* dengan kata kunci yang harus berisi nama pekerjaan yang dikembalikan.

```
// Import the required AWS SDK clients and commands for Node.js

import { ListMedicalTranscriptionJobsCommand } from "@aws-sdk/client-transcribe";
import { transcribeClient } from "./libs/transcribeClient.js";

// Set the parameters
export const params = {
  JobNameContains: "KEYWORD", // Returns only transcription job names containing this string
};

export const run = async () => {
  try {
    const data = await transcribeClient.send(
      new ListMedicalTranscriptionJobsCommand(params),
    );
    console.log("Success", data.MedicalTranscriptionJobName);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node transcribe-list-medical-jobs.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_list_medical_jobs.js).

## Menghapus pekerjaan medis Amazon Transcribe
<a name="transcribe-delete-medical-job"></a>

Contoh ini menunjukkan cara menghapus pekerjaan transkripsi Amazon Transcribe menggunakan. AWS SDK untuk JavaScript Untuk informasi lebih lanjut tentang opsional, lihat [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/DeleteMedicalTranscriptionJobCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-transcribe/Class/DeleteMedicalTranscriptionJobCommand/).

Buat `libs` direktori, dan buat modul Node.js dengan nama file`transcribeClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon Transcribe. Ganti *REGION* dengan AWS wilayah Anda.

```
import  { TranscribeClient }  from  "@aws-sdk/client-transcribe";
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create Transcribe service object.
const transcribeClient = new TranscribeClient({ region: REGION });
export { transcribeClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/libs/transcribeClient.js).

Buat modul Node.js dengan nama file`transcribe-delete-job.js`. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. Buat objek parameter dengan parameter yang diperlukan, dan hapus pekerjaan medis menggunakan `DeleteMedicalJobCommand` perintah.

**catatan**  
Ganti *JOB\$1NAME* dengan nama pekerjaan yang akan dihapus. 

```
// Import the required AWS SDK clients and commands for Node.js
import { DeleteMedicalTranscriptionJobCommand } from "@aws-sdk/client-transcribe";
import { transcribeClient } from "./libs/transcribeClient.js";

// Set the parameters
export const params = {
  MedicalTranscriptionJobName: "MEDICAL_JOB_NAME", // For example, 'medical_transciption_demo'
};

export const run = async () => {
  try {
    const data = await transcribeClient.send(
      new DeleteMedicalTranscriptionJobCommand(params),
    );
    console.log("Success - deleted");
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node transcribe-delete-medical-job.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/transcribe/src/transcribe_delete_medical_job.js).

# Menyiapkan Node.js pada instans Amazon EC2
<a name="setting-up-node-on-ec2-instance"></a>

Skenario umum untuk menggunakan Node.js dengan SDK for JavaScript adalah menyiapkan dan menjalankan aplikasi web Node.js pada instance Amazon Elastic Compute Cloud (Amazon EC2). Dalam tutorial ini, Anda akan membuat instance Linux, menghubungkannya menggunakan SSH, dan kemudian menginstal Node.js untuk menjalankan instance itu. 

## Prasyarat
<a name="setting-up-node-on-ec2-instance.prerequisites"></a>

Tutorial ini mengasumsikan bahwa Anda telah meluncurkan instance Linux dengan nama DNS publik yang dapat dijangkau dari internet dan yang dapat Anda sambungkan menggunakan SSH. Untuk informasi selengkapnya, lihat [Langkah 1: Luncurkan instans](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) dalam *Panduan Pengguna Amazon EC2*.

**penting**  
Gunakan **Amazon Linux 2023** Amazon Machine Image (AMI) saat meluncurkan instans Amazon EC2 baru.

Anda juga harus mengonfigurasi grup keamanan Anda untuk mengizinkan koneksi `SSH` (port 22), ` HTTP` (port 80), dan `HTTPS` (port 443). *Untuk informasi selengkapnya tentang prasyarat ini, lihat [Menyiapkan dengan Amazon EC2 di Panduan Pengguna Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html) EC2.*

## Prosedur
<a name="setting-up-node-on-ec2-instance-procedure"></a>

Prosedur berikut membantu Anda menginstal Node.js pada instance Amazon Linux. Anda dapat menggunakan server ini untuk meng-host aplikasi web Node.js.

**Untuk mengatur Node.js pada instance Linux Anda**

1. Connect ke instance Linux Anda seperti `ec2-user` menggunakan SSH.

1. Instal node version manager (`nvm`) dengan mengetikkan berikut ini di baris perintah.
**Awas**  
AWS tidak mengontrol kode berikut. Sebelum Anda menjalankannya, pastikan untuk memverifikasi keaslian dan integritasnya. Informasi lebih lanjut tentang kode ini dapat ditemukan di repositori [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md) GitHub.

   ```
   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
   ```

   Kami akan menggunakan `nvm` untuk menginstal Node.js karena `nvm` dapat menginstal beberapa versi Node.js dan memungkinkan Anda untuk beralih di antara mereka.

1. Muat `nvm` dengan mengetikkan berikut ini di baris perintah.

   ```
   source ~/.bashrc
   ```

1. Gunakan nvm untuk menginstal versi LTS terbaru dari Node.js dengan mengetikkan berikut ini di baris perintah.

   ```
   nvm install --lts
   ```

   Menginstal Node.js juga menginstal Node Package Manager (`npm`) sehingga Anda dapat menginstal modul tambahan sesuai kebutuhan.

1. Uji bahwa Node.js diinstal dan berjalan dengan benar dengan mengetikkan berikut ini di baris perintah.

   ```
   node -e "console.log('Running Node.js ' + process.version)"
   ```

   Ini menampilkan pesan berikut yang menunjukkan versi Node.js yang sedang berjalan.

    `Running Node.js VERSION` 

**catatan**  
Instalasi node hanya berlaku untuk sesi Amazon EC2 saat ini. Jika Anda memulai ulang sesi CLI Anda, Anda perlu menggunakan nvm lagi untuk mengaktifkan versi node yang diinstal. Jika instance dihentikan, Anda perlu menginstal node lagi.Alternatifnya adalah membuat Amazon Machine Image (AMI) dari instans Amazon EC2 setelah Anda memiliki konfigurasi yang ingin Anda simpan, seperti yang dijelaskan dalam topik berikut.

## Membuat Gambar Mesin Amazon (AMI)
<a name="setting-up-node-on-ec2-instance-create-image"></a>

Setelah menginstal Node.js pada instans Amazon EC2, Anda dapat membuat Amazon Machine Image (AMI) dari instance tersebut. Membuat AMI memudahkan penyediaan beberapa instans Amazon EC2 dengan instalasi Node.js yang sama. Untuk informasi selengkapnya tentang membuat AMI dari instans yang ada, lihat [Membuat AMI Linux yang didukung Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) di Panduan Pengguna *Amazon EC2*.

## Sumber daya terkait
<a name="setting-up-node-on-ec2-instance-related-resource"></a>

Untuk informasi selengkapnya tentang perintah dan perangkat lunak yang digunakan dalam topik ini, lihat halaman web berikut:
+ Manajer versi node (`nvm`) —Lihat repo [nvm aktif](https://github.com/creationix/nvm). GitHub
+ Node Package Manager (`npm`) —Lihat situs web [npm](https://www.npmjs.com).

# Memanggil Lambda dengan API Gateway
<a name="api-gateway-invoking-lambda-example"></a>

Anda dapat menjalankan fungsi Lambda dengan menggunakan Amazon API Gateway, yang AWS merupakan layanan untuk membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, WebSocket APIs dan dalam skala besar. Pengembang API dapat membuat akses APIs itu AWS atau layanan web lainnya, serta data yang disimpan di AWS Cloud. Sebagai pengembang API Gateway, Anda dapat membuat APIs untuk digunakan dalam aplikasi klien Anda sendiri. Untuk informasi selengkapnya, lihat [Apa itu Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html). 

AWS Lambda adalah layanan komputasi yang memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server. Anda dapat membuat fungsi Lambda dalam berbagai bahasa pemrograman. Untuk informasi lebih lanjut tentang AWS Lambda, lihat [Apa itu AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html).

Dalam contoh ini, Anda membuat fungsi Lambda dengan menggunakan API runtime JavaScript Lambda. Contoh ini memanggil AWS layanan yang berbeda untuk melakukan kasus penggunaan tertentu. Misalnya, asumsikan bahwa organisasi mengirim pesan teks seluler kepada karyawannya yang memberi selamat kepada mereka pada tanggal peringatan satu tahun, seperti yang ditunjukkan dalam ilustrasi ini.

![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picPhone.png)


Contoh harus memakan waktu sekitar 20 menit untuk menyelesaikannya.

Contoh ini menunjukkan kepada Anda cara menggunakan JavaScript logika untuk membuat solusi yang melakukan kasus penggunaan ini. Misalnya, Anda akan mempelajari cara membaca database untuk menentukan karyawan mana yang telah mencapai tanggal ulang tahun satu tahun, cara memproses data, dan mengirim pesan teks semuanya dengan menggunakan fungsi Lambda. Kemudian Anda akan belajar cara menggunakan API Gateway untuk menjalankan AWS Lambda fungsi ini dengan menggunakan endpoint Istirahat. Misalnya, Anda dapat menjalankan fungsi Lambda dengan menggunakan perintah curl ini:

```
curl -XGET "https://xxxxqjko1o3.execute-api.us-east-1.amazonaws.com/cronstage/employee" 
```

 AWS Tutorial ini menggunakan tabel Amazon DynamoDB bernama Employee yang berisi bidang-bidang ini.
+ **id** - kunci utama untuk tabel.
+ **FirstName - nama depan** karyawan.
+ **telepon** - nomor telepon karyawan.
+ **StartDate - tanggal** mulai karyawan.

![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/pic00.png)


**penting**  
Biaya untuk menyelesaikan: AWS Layanan yang termasuk dalam dokumen ini termasuk dalam Tingkat AWS Gratis. Namun, pastikan untuk menghentikan semua sumber daya setelah Anda menyelesaikan contoh ini untuk memastikan bahwa Anda tidak dikenakan biaya.

**Untuk membangun aplikasi:**

1. [Prasyarat lengkap](#api-gateway-invoking-lambda-provision-resources)

1. [Buat sumber AWS daya](#api-gateway-invoking-lambda-provision-resources)

1. [Siapkan skrip browser](#api-gateway-invoking-lambda-browser-script)

1. [Buat dan unggah fungsi Lambda](#api-gateway-invoking-lambda-browser-script)

1. [Menyebarkan fungsi Lambda](#api-gateway-invoking-lambda-deploy-function)

1. [Jalankan aplikasi](#api-gateway-invoking-lambda-run)

1. [Hapus sumber daya](#api-gateway-invoking-lambda-destroy)

## Tugas prasyarat
<a name="api-gateway-invoking-lambda-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/cross-services/lambda-api-gateway/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

## Buat sumber AWS daya
<a name="api-gateway-invoking-lambda-provision-resources"></a>

Tutorial ini membutuhkan sumber daya berikut:
+ Tabel Amazon DynamoDB `Employee` bernama dengan kunci `Id` bernama dan bidang yang ditunjukkan pada ilustrasi sebelumnya. Pastikan Anda memasukkan data yang benar, termasuk ponsel yang valid yang ingin Anda uji kasus penggunaan ini. Untuk informasi selengkapnya, lihat [Membuat Tabel](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/getting-started-step-1.html).
+ Peran IAM dengan izin terlampir untuk menjalankan fungsi Lambda.
+ Bucket Amazon S3 untuk menampung fungsi Lambda.

Anda dapat membuat sumber daya ini secara manual, tetapi kami merekomendasikan penyediaan sumber daya ini menggunakan CloudFormation seperti yang dijelaskan dalam tutorial ini.

### Buat sumber AWS daya menggunakan CloudFormation
<a name="api-gateway-invoking-lambda-resources-cli"></a>

CloudFormation memungkinkan Anda untuk membuat dan menyediakan penyebaran AWS infrastruktur yang dapat diprediksi dan berulang kali. Untuk informasi selengkapnya CloudFormation, lihat [Panduan AWS CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).

Untuk membuat CloudFormation tumpukan menggunakan AWS CLI:

1. Instal dan konfigurasikan petunjuk AWS CLI berikut di [Panduan AWS CLI Pengguna](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

1. Buat file bernama `setup.yaml` di direktori root folder proyek Anda, dan salin konten [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-api-gateway/setup.yaml) ke dalamnya.
**catatan**  
 CloudFormation Template dibuat menggunakan yang AWS CDK tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/resources/cdk/lambda_using_api_gateway). Untuk informasi selengkapnya tentang ini AWS CDK, lihat [Panduan AWS Cloud Development Kit (AWS CDK) Pengembang](https://docs.aws.amazon.com/cdk/latest/guide/).

1. Jalankan perintah berikut dari baris perintah, ganti *STACK\$1NAME* dengan nama unik untuk tumpukan.
**penting**  
Nama tumpukan harus unik dalam AWS Wilayah dan AWS akun. Anda dapat menentukan hingga 128 karakter, dan angka serta tanda hubung diizinkan.

   ```
   aws cloudformation create-stack --stack-name STACK_NAME --template-body file://setup.yaml --capabilities CAPABILITY_IAM
   ```

   Untuk informasi selengkapnya tentang parameter `create-stack` perintah, lihat [panduan Referensi AWS CLI Perintah](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html), dan [Panduan CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html).

1. Selanjutnya, isi tabel dengan mengikuti prosedur[Mengisi tabel](#api-gateway-invoking-lambda-resources-create-table).

### Mengisi tabel
<a name="api-gateway-invoking-lambda-resources-create-table"></a>

Untuk mengisi tabel, pertama membuat direktori bernama`libs`, dan di dalamnya membuat file bernama`dynamoClient.js`, dan paste konten di bawah ini ke dalamnya. 

```
const { DynamoDBClient } = require ( "@aws-sdk/client-dynamodb" );
// Set the AWS Region.
const REGION = "REGION"; // e.g. "us-east-1"
 // Create an Amazon Lambda service client object.
const dynamoClient = new DynamoDBClient({region:REGION});
module.exports = { dynamoClient };
```

 Kode ini tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-api-gateway/src/libs/dynamoClient.js).

Selanjutnya, buat file bernama `populate-table.js` di direktori root folder proyek Anda, dan salin konten [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-api-gateway/src/helper-functions/populate-table.js) ke dalamnya. Untuk salah satu item, ganti nilai `phone` properti dengan nomor ponsel yang valid dalam format E.164, dan nilai untuk `startDate` dengan tanggal hari ini.

Jalankan perintah berikut dari baris perintah.

```
node populate-table.js
```

```
const { BatchWriteItemCommand } = require ( "aws-sdk/client-dynamodb" );
const {dynamoClient} = require ( "./libs/dynamoClient" );

// Set the parameters.
export const params = {
  RequestItems: {
    Employees: [
      {
        PutRequest: {
          Item: {
            id: { N: "1" },
            firstName: { S: "Bob" },
            phone: { N: "155555555555654" },
            startDate: { S: "2019-12-20" },
          },
        },
      },
      {
        PutRequest: {
          Item: {
            id: { N: "2" },
            firstName: { S: "Xing" },
            phone: { N: "155555555555653" },
            startDate: { S: "2019-12-17" },
          },
        },
      },
      {
        PutRequest: {
          Item: {
            id: { N: "55" },
            firstName: { S: "Harriette" },
            phone: { N: "155555555555652" },
            startDate: { S: "2019-12-19" },
          },
        },
      },
    ],
  },
};

export const run = async () => {
  try {
    const data = await dbclient.send(new BatchWriteItemCommand(params));
    console.log("Success", data);
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

 Kode ini tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-api-gateway/src/helper-functions/populate-table.js).

## Membuat AWS Lambda fungsi
<a name="api-gateway-invoking-lambda-browser-script"></a>

### Mengkonfigurasi SDK
<a name="api-gateway-invoking-lambda-configure-sdk"></a>

Di `libs` direktori, buat file bernama `snsClient.js` dan`lambdaClient.js`, dan tempelkan konten di bawah ini ke dalam file-file ini, masing-masing. 

```
const { SNSClient } = require("@aws-sdk/client-sns");
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create an Amazon SNS service client object.
const snsClient = new SNSClient({ region: REGION });
module.exports = { snsClient };
```

 Ganti *REGION* dengan AWS Region Kode ini tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-api-gateway/src/libs/snsClient.js).

```
const { LambdaClient } = require("@aws-sdk/client-lambda");
// Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"
// Create an Amazon Lambda service client object.
const lambdaClient = new LambdaClient({ region: REGION });
module.exports = { lambdaClient };
```

Ganti *REGION* dengan AWS Region Kode ini tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-api-gateway/src/libs/lambdaClient.js).

Pertama, impor modul dan perintah yang diperlukan AWS SDK untuk JavaScript (v3). Kemudian hitung tanggal hari ini dan tetapkan ke parameter. Ketiga, buat parameter untuk`ScanCommand`. Ganti *TABLE\$1NAME* dengan nama tabel yang Anda buat di [Buat sumber AWS daya](#api-gateway-invoking-lambda-provision-resources) bagian contoh ini.

Cuplikan kode berikut menunjukkan langkah ini. (Lihat [Bundling fungsi Lambda](#api-gateway-invoking-lambda-full) contoh lengkapnya.)

```
const { ScanCommand } = require("@aws-sdk/client-dynamodb");
const { PublishCommand } = require("@aws-sdk/client-sns");
const { snsClient } = require("./libs/snsClient");
const { dynamoClient } = require("./libs/dynamoClient");

// Get today's date.
const today = new Date();
const dd = String(today.getDate()).padStart(2, "0");
const mm = String(today.getMonth() + 1).padStart(2, "0"); //January is 0!
const yyyy = today.getFullYear();
const date = `${yyyy}-${mm}-${dd}`;

// Set the parameters for the ScanCommand method.
const params = {
  // Specify which items in the results are returned.
  FilterExpression: "startDate = :topic",
  // Define the expression attribute value, which are substitutes for the values you want to compare.
  ExpressionAttributeValues: {
    ":topic": { S: date },
  },
  // Set the projection expression, which are the attributes that you want.
  ProjectionExpression: "firstName, phone",
  TableName: "Employees",
};
```

### Memindai tabel DynamoDB
<a name="api-gateway-invoking-lambda-scan-table"></a>

Pertama, buat async/await fungsi yang dipanggil `sendText` untuk mempublikasikan pesan teks menggunakan Amazon SNS`PublishCommand`. Kemudian, tambahkan pola `try` blok yang memindai tabel DynamoDB untuk karyawan dengan ulang tahun kerja mereka hari ini, dan kemudian memanggil fungsi untuk mengirim pesan `sendText` teks kepada karyawan ini. Jika terjadi kesalahan, `catch` blok dipanggil.

Cuplikan kode berikut menunjukkan langkah ini. (Lihat [Bundling fungsi Lambda](#api-gateway-invoking-lambda-full) contoh lengkapnya.)

```
// Helper function to send message using Amazon SNS.
exports.handler = async () => {
  // Helper function to send message using Amazon SNS.
  async function sendText(textParams) {
    try {
      await snsClient.send(new PublishCommand(textParams));
      console.log("Message sent");
    } catch (err) {
      console.log("Error, message not sent ", err);
    }
  }
  try {
    // Scan the table to identify employees with work anniversary today.
    const data = await dynamoClient.send(new ScanCommand(params));
    for (const element of data.Items) {
      const textParams = {
        PhoneNumber: element.phone.N,
        Message: `Hi ${element.firstName.S}; congratulations on your work anniversary!`,
      };
      // Send message using Amazon SNS.
      sendText(textParams);
    }
  } catch (err) {
    console.log("Error, could not scan table ", err);
  }
};
```

### Bundling fungsi Lambda
<a name="api-gateway-invoking-lambda-full"></a>

Topik ini menjelaskan cara menggabungkan `mylambdafunction.ts` dan AWS SDK untuk JavaScript modul yang diperlukan untuk contoh ini ke dalam file yang dibundel yang disebut`index.js`. 

1. Jika Anda belum melakukannya, ikuti contoh ini [Tugas prasyarat](#api-gateway-invoking-lambda-prerequisites) untuk menginstal webpack. 
**catatan**  
Untuk informasi tentang *webpack*, lihat[Bundel aplikasi dengan webpack](webpack.md).

1. Jalankan yang berikut ini di baris perintah untuk menggabungkan JavaScript untuk contoh ini ke dalam file bernama`<index.js>`:

   ```
   webpack mylambdafunction.ts --mode development --target node --devtool false --output-library-target umd -o index.js
   ```
**penting**  
Perhatikan output diberi nama`index.js`. Ini karena fungsi Lambda harus memiliki `index.js` handler untuk bekerja.

1. Kompres file output yang dibundel,`index.js`, ke dalam file ZIP bernama`mylambdafunction.zip`.

1. Unggah `mylambdafunction.zip` ke bucket Amazon S3 yang Anda buat dalam [Buat sumber AWS daya](#api-gateway-invoking-lambda-provision-resources) topik tutorial ini. 

## Deploy fungsi Lambda
<a name="api-gateway-invoking-lambda-deploy-function"></a>

Di root proyek Anda, buat `lambda-function-setup.ts` file, dan tempel konten di bawah ini ke dalamnya.

Ganti *BUCKET\$1NAME* dengan nama bucket Amazon S3 tempat Anda mengunggah versi ZIP fungsi Lambda Anda. Ganti *ZIP\$1FILE\$1NAME* dengan nama nama versi ZIP dari fungsi Lambda Anda. Ganti *ROLE* dengan Amazon Resource Number (ARN) dari peran IAM yang Anda buat dalam [Buat sumber AWS daya](#api-gateway-invoking-lambda-provision-resources) topik tutorial ini. Ganti *LAMBDA\$1FUNCTION\$1NAME* dengan nama untuk fungsi Lambda.

```
// Load the required Lambda client and commands.
const {
  CreateFunctionCommand
} = require ( "@aws-sdk/client-lambda" );
const { lambdaClient} = require ( "./libs/lambdaClient.js );

// Set the parameters.
const params = {
  Code: {
    S3Bucket: "BUCKET_NAME", // BUCKET_NAME
    S3Key: "ZIP_FILE_NAME", // ZIP_FILE_NAME
  },
  FunctionName: "LAMBDA_FUNCTION_NAME",
  Handler: "index.handler",
  Role: "IAM_ROLE_ARN", // IAM_ROLE_ARN; e.g., arn:aws:iam::650138640062:role/v3-lambda-tutorial-lambda-role
  Runtime: "nodejs12.x",
  Description:
    "Scans a DynamoDB table of employee details and using Amazon Simple Notification Services (Amazon SNS) to " +
    "send employees an email on each anniversary of their start-date.",
};

const run = async () => {
  try {
    const data = await lambdaClient.send(new CreateFunctionCommand(params));
    console.log("Success", data); // successful response
  } catch (err) {
    console.log("Error", err); // an error occurred
  }
};
run();
```

Masukkan yang berikut ini di baris perintah untuk menyebarkan fungsi Lambda.

```
node lambda-function-setup.ts
```

Contoh kode ini tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-api-gateway/src/helper-functions/lambda-function-setup.js).

## Konfigurasikan API Gateway untuk menjalankan fungsi Lambda
<a name="api-gateway-invoking-lambda-run"></a>

**Untuk membangun aplikasi:**

1. [Buat API sisanya](#api-gateway-invoking-lambda-run-create)

1. [Uji metode API Gateway](#api-gateway-invoking-lambda-run-test)

1. [Menerapkan metode API Gateway](#api-gateway-invoking-lambda-run-deploy)

### Buat API sisanya
<a name="api-gateway-invoking-lambda-run-create"></a>

Anda dapat menggunakan konsol API Gateway untuk membuat titik akhir istirahat untuk fungsi Lambda. Setelah selesai, Anda dapat menjalankan fungsi Lambda menggunakan panggilan tenang.



1. Masuk ke [konsol Amazon API Gateway](https://console.aws.amazon.com/apigateway).

1. Di bawah Rest API, pilih **Build**.

1. Pilih **API Baru**.  
![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/PicNewAPI.png)

1. Tentukan **Karyawan** sebagai nama API dan berikan deskripsi.  
![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picEmployeeAPI.png)

1. Pilih **Buat API**.

1. Pilih **Sumber Daya** di bawah bagian **Karyawan**.  
![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picResources.png)

1. Di bidang nama, tentukan **karyawan**.

1. Pilih **Buat sumber daya**.

1. Dari dropdown **Actions**, pilih **Create** Resources.  
![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picCreateResources.png)

1. **Pilih **/employees**, pilih **Create Method** dari **Actions**, lalu pilih **GET** dari menu drop-down di bawah /employees.** Pilih ikon tanda centang.  
![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picGet.png)

1. Pilih **fungsi Lambda** dan masukkan **mylambdafunction** sebagai nama fungsi Lambda. Pilih **Simpan**.

### Uji metode API Gateway
<a name="api-gateway-invoking-lambda-run-test"></a>

Pada titik ini dalam tutorial, Anda dapat menguji metode API Gateway yang memanggil fungsi Lambda **mylambdafunction**. Untuk menguji metode, pilih **Uji**, seperti yang ditunjukkan pada ilustrasi berikut.

![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picTest.png)


Setelah fungsi Lambda dipanggil, Anda dapat melihat file log untuk melihat pesan yang berhasil.

### Menerapkan metode API Gateway
<a name="api-gateway-invoking-lambda-run-deploy"></a>

Setelah pengujian berhasil, Anda dapat menerapkan metode dari [konsol Amazon API Gateway](https://console.aws.amazon.com/apigateway).

1. Pilih **Dapatkan**.  
![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picGetDeploy.png)

1. Dari dropdown **Actions**, pilih **Deploy** API.  
![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picDeployMethod.png)

1. Isi formulir **Deploy API** dan pilih **Deploy**.  
![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picDeployMethod.png)

1.  Pilih **Simpan Perubahan**.

1.  Pilih **Dapatkan** lagi dan perhatikan bahwa URL berubah. Ini adalah URL pemanggilan yang dapat Anda gunakan untuk menjalankan fungsi Lambda.  
![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picURL2.png)

## Hapus sumber daya
<a name="api-gateway-invoking-lambda-destroy"></a>

Selamat\$1 Anda telah memanggil fungsi Lambda melalui Amazon API Gateway menggunakan. AWS SDK untuk JavaScript Seperti yang dinyatakan di awal tutorial ini, pastikan untuk menghentikan semua sumber daya yang Anda buat saat melalui tutorial ini untuk memastikan bahwa Anda tidak dikenakan biaya. Anda dapat melakukan ini dengan menghapus CloudFormation tumpukan yang Anda buat dalam [Buat sumber AWS daya](#api-gateway-invoking-lambda-provision-resources) topik tutorial ini, sebagai berikut:

1. Buka [CloudFormation di konsol AWS manajemen]( https://console.aws.amazon.com/cloudformation/home).

1. Buka halaman **Stacks**, dan pilih tumpukan.

1. Pilih **Hapus**.

# Membuat acara terjadwal untuk menjalankan AWS Lambda fungsi
<a name="scheduled-events-invoking-lambda-example"></a>

Anda dapat membuat acara terjadwal yang memanggil AWS Lambda fungsi dengan menggunakan CloudWatch Acara Amazon. Anda dapat mengonfigurasi CloudWatch Peristiwa untuk menggunakan ekspresi cron untuk menjadwalkan saat fungsi Lambda dipanggil. Misalnya, Anda dapat menjadwalkan CloudWatch Acara untuk menjalankan fungsi Lambda setiap hari kerja.

AWS Lambda adalah layanan komputasi yang memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server. Anda dapat membuat fungsi Lambda dalam berbagai bahasa pemrograman. Untuk informasi lebih lanjut tentang AWS Lambda, lihat [Apa itu AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html).

Dalam tutorial ini, Anda membuat fungsi Lambda dengan menggunakan JavaScript Lambda runtime API. Contoh ini memanggil AWS layanan yang berbeda untuk melakukan kasus penggunaan tertentu. Misalnya, asumsikan bahwa organisasi mengirim pesan teks seluler kepada karyawannya yang memberi selamat kepada mereka pada tanggal peringatan satu tahun, seperti yang ditunjukkan dalam ilustrasi ini.

![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/picPhone.png)


Tutorial akan memakan waktu sekitar 20 menit untuk menyelesaikannya.

Tutorial ini menunjukkan cara menggunakan JavaScript logika untuk membuat solusi yang melakukan kasus penggunaan ini. Misalnya, Anda akan mempelajari cara membaca database untuk menentukan karyawan mana yang telah mencapai tanggal ulang tahun satu tahun, cara memproses data, dan mengirim pesan teks semuanya dengan menggunakan fungsi Lambda. Kemudian Anda akan belajar cara menggunakan ekspresi cron untuk menjalankan fungsi Lambda setiap hari kerja.

 AWS Tutorial ini menggunakan tabel Amazon DynamoDB bernama Employee yang berisi bidang-bidang ini.
+ **id** - kunci utama untuk tabel.
+ **FirstName - nama depan** karyawan.
+ **telepon** - nomor telepon karyawan.
+ **StartDate - tanggal** mulai karyawan.

![\[Tabel DynamoDB\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/apigateway_example/pic00.png)


**penting**  
Biaya untuk menyelesaikan: AWS Layanan yang termasuk dalam dokumen ini termasuk dalam Tingkat AWS Gratis. Namun, pastikan untuk menghentikan semua sumber daya setelah Anda menyelesaikan tutorial ini untuk memastikan bahwa Anda tidak dikenakan biaya.

**Untuk membangun aplikasi:**

1. [Prasyarat lengkap](#scheduled-events-invoking-lambda-provision-resources)

1. [Buat sumber AWS daya](#scheduled-events-invoking-lambda-provision-resources)

1. [Siapkan skrip browser](#scheduled-events-invoking-lambda-browser-script)

1. [Buat dan unggah fungsi Lambda](#scheduled-events-invoking-lambda-browser-script)

1. [Menyebarkan fungsi Lambda](#scheduled-events-invoking-lambda-deploy-function)

1. [Jalankan aplikasi](#scheduled-events-invoking-lambda-run)

1. [Hapus sumber daya](#scheduled-events-invoking-lambda-destroy)

## Tugas prasyarat
<a name="scheduled-events-invoking-lambda-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node.js ini, dan instal modul wajib AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lex-bot/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

## Buat sumber AWS daya
<a name="scheduled-events-invoking-lambda-provision-resources"></a>

Tutorial ini membutuhkan sumber daya berikut.
+ Tabel Amazon DynamoDB **bernama** Employee dengan kunci **bernama** Id dan bidang yang ditunjukkan pada ilustrasi sebelumnya. Pastikan Anda memasukkan data yang benar, termasuk ponsel yang valid yang ingin Anda uji kasus penggunaan ini. Untuk informasi selengkapnya, lihat [Membuat Tabel](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/getting-started-step-1.html).
+ Peran IAM dengan izin terlampir untuk menjalankan fungsi Lambda.
+ Bucket Amazon S3 untuk menampung fungsi Lambda.

Anda dapat membuat sumber daya ini secara manual, tetapi kami merekomendasikan penyediaan sumber daya ini menggunakan CloudFormation seperti yang dijelaskan dalam tutorial ini.

### Buat sumber AWS daya menggunakan CloudFormation
<a name="scheduled-events-invoking-lambda-resources-cli"></a>

CloudFormation memungkinkan Anda untuk membuat dan menyediakan penyebaran AWS infrastruktur yang dapat diprediksi dan berulang kali. Untuk informasi selengkapnya CloudFormation, lihat [Panduan AWS CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).

Untuk membuat CloudFormation tumpukan menggunakan AWS CLI:

1. Instal dan konfigurasikan petunjuk AWS CLI berikut di [Panduan AWS CLI Pengguna](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

1. Buat file bernama `setup.yaml` di direktori root folder proyek Anda, dan salin konten [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-scheduled-events/setup.yaml) ke dalamnya.
**catatan**  
 CloudFormation Template dibuat menggunakan yang AWS CDK tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/resources/cdk/lambda_using_scheduled_events). Untuk informasi selengkapnya tentang AWS CDK, lihat [Panduan AWS Cloud Development Kit (AWS CDK) Pengembang](https://docs.aws.amazon.com/cdk/latest/guide/).

1. Jalankan perintah berikut dari baris perintah, ganti *STACK\$1NAME* dengan nama unik untuk tumpukan.
**penting**  
Nama tumpukan harus unik dalam AWS Wilayah dan AWS akun. Anda dapat menentukan hingga 128 karakter, dan angka serta tanda hubung diizinkan.

   ```
   aws cloudformation create-stack --stack-name STACK_NAME --template-body file://setup.yaml --capabilities CAPABILITY_IAM
   ```

   Untuk informasi selengkapnya tentang parameter `create-stack` perintah, lihat [panduan Referensi AWS CLI Perintah](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html), dan [Panduan CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html).

   Lihat daftar sumber daya di konsol dengan membuka tumpukan di CloudFormation dasbor, dan memilih tab **Sumber Daya**. Anda membutuhkan ini untuk tutorial. 

1. Saat tumpukan dibuat, gunakan AWS SDK untuk JavaScript untuk mengisi tabel DynamoDB, seperti yang dijelaskan dalam. [Mengisi tabel DynamoDB](#scheduled-events-invoking-lambda-resources-create-table)

### Mengisi tabel DynamoDB
<a name="scheduled-events-invoking-lambda-resources-create-table"></a>

Untuk mengisi tabel, pertama membuat direktori bernama`libs`, dan di dalamnya membuat file bernama`dynamoClient.js`, dan paste konten di bawah ini ke dalamnya. 

```
const { DynamoDBClient } = require( "@aws-sdk/client-dynamodb" );
// Set the AWS Region.
const REGION = "REGION"; // e.g. "us-east-1"
// Create an Amazon DynamoDB service client object.
const dynamoClient = new DynamoDBClient({region:REGION});
module.exports = { dynamoClient };
```

 Kode ini tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-scheduled-events/src/libs/dynamoClient.js).

Selanjutnya, buat file bernama `populate-table.js` di direktori root folder proyek Anda, dan salin konten [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-api-gateway/src/helper-functions/populate-table.js) ke dalamnya. Untuk salah satu item, ganti nilai `phone` properti dengan nomor ponsel yang valid dalam format E.164, dan nilai untuk `startDate` dengan tanggal hari ini.

Jalankan perintah berikut dari baris perintah.

```
node populate-table.js
```

```
const {
BatchWriteItemCommand } = require( "aws-sdk/client-dynamodb" );
const {dynamoClient} = require(  "./libs/dynamoClient" );
// Set the parameters.
const params = {
  RequestItems: {
    Employees: [
      {
        PutRequest: {
          Item: {
            id: { N: "1" },
            firstName: { S: "Bob" },
            phone: { N: "155555555555654" },
            startDate: { S: "2019-12-20" },
          },
        },
      },
      {
        PutRequest: {
          Item: {
            id: { N: "2" },
            firstName: { S: "Xing" },
            phone: { N: "155555555555653" },
            startDate: { S: "2019-12-17" },
          },
        },
      },
      {
        PutRequest: {
          Item: {
            id: { N: "55" },
            firstName: { S: "Harriette" },
            phone: { N: "155555555555652" },
            startDate: { S: "2019-12-19" },
          },
        },
      },
    ],
  },
};

export const run = async () => {
  try {
    const data = await dbclient.send(new BatchWriteItemCommand(params));
    console.log("Success", data);
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

 Kode ini tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-scheduled-events/src/helper-functions/populate-table.js).

## Membuat AWS Lambda fungsi
<a name="scheduled-events-invoking-lambda-browser-script"></a>

### Mengkonfigurasi SDK
<a name="scheduled-events-invoking-lambda-configure-sdk"></a>

Pertama impor modul dan perintah yang diperlukan AWS SDK untuk JavaScript (v3): `DynamoDBClient` dan `ScanCommand` DynamoDB, dan dan perintah Amazon `SNSClient` SNS. `PublishCommand` Ganti *REGION* dengan AWS Region. Kemudian hitung tanggal hari ini dan tetapkan ke parameter. Kemudian buat parameter untuk `ScanCommand` .Replace *TABLE\$1NAME* dengan nama tabel yang Anda buat di [Buat sumber AWS daya](#scheduled-events-invoking-lambda-provision-resources) bagian contoh ini.

Cuplikan kode berikut menunjukkan langkah ini. (Lihat [Bundling fungsi Lambda](#scheduled-events-invoking-lambda-full) contoh lengkapnya.)

```
"use strict";
// Load the required clients and commands.
const { DynamoDBClient, ScanCommand } = require("@aws-sdk/client-dynamodb");
const { SNSClient, PublishCommand } = require("@aws-sdk/client-sns");

//Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"

// Get today's date.
const today = new Date();
const dd = String(today.getDate()).padStart(2, "0");
const mm = String(today.getMonth() + 1).padStart(2, "0"); //January is 0!
const yyyy = today.getFullYear();
const date = yyyy + "-" + mm + "-" + dd;

// Set the parameters for the ScanCommand method.
const params = {
  // Specify which items in the results are returned.
  FilterExpression: "startDate = :topic",
  // Define the expression attribute value, which are substitutes for the values you want to compare.
  ExpressionAttributeValues: {
    ":topic": { S: date },
  },
  // Set the projection expression, which the the attributes that you want.
  ProjectionExpression: "firstName, phone",
  TableName: "TABLE_NAME",
};
```

### Memindai tabel DynamoDB
<a name="scheduled-events-invoking-lambda-scan-table"></a>

Pertama buat async/await fungsi yang dipanggil `sendText` untuk mempublikasikan pesan teks menggunakan Amazon SNS`PublishCommand`. Kemudian, tambahkan pola `try` blok yang memindai tabel DynamoDB untuk karyawan dengan ulang tahun kerja mereka hari ini, dan kemudian memanggil fungsi untuk mengirim pesan `sendText` teks kepada karyawan ini. Jika terjadi kesalahan, `catch` blok dipanggil.

Cuplikan kode berikut menunjukkan langkah ini. (Lihat [Bundling fungsi Lambda](#scheduled-events-invoking-lambda-full) contoh lengkapnya.)

```
exports.handler = async (event, context, callback) => {
  // Helper function to send message using Amazon SNS.
  async function sendText(textParams) {
    try {
      const data = await snsclient.send(new PublishCommand(textParams));
      console.log("Message sent");
    } catch (err) {
      console.log("Error, message not sent ", err);
    }
  }
  try {
    // Scan the table to check identify employees with work anniversary today.
    const data = await dbclient.send(new ScanCommand(params));
    data.Items.forEach(function (element, index, array) {
      const textParams = {
        PhoneNumber: element.phone.N,
        Message:
          "Hi " +
          element.firstName.S +
          "; congratulations on your work anniversary!",
      };
      // Send message using Amazon SNS.
      sendText(textParams);
    });
  } catch (err) {
    console.log("Error, could not scan table ", err);
  }
};
```

### Bundling fungsi Lambda
<a name="scheduled-events-invoking-lambda-full"></a>

Topik ini menjelaskan cara menggabungkan `mylambdafunction.js` dan AWS SDK untuk JavaScript modul yang diperlukan untuk contoh ini ke dalam file yang dibundel yang disebut`index.js`. 

1. Jika Anda belum melakukannya, ikuti contoh ini [Tugas prasyarat](#scheduled-events-invoking-lambda-prerequisites) untuk menginstal webpack. 
**catatan**  
Untuk informasi tentang *webpack*, lihat[Bundel aplikasi dengan webpack](webpack.md).

1. Jalankan yang berikut ini di baris perintah untuk menggabungkan JavaScript untuk contoh ini ke dalam file bernama`<index.js>`:

   ```
   webpack mylamdbafunction.js --mode development --target node --devtool false --output-library-target umd -o index.js
   ```
**penting**  
Perhatikan output diberi nama`index.js`. Ini karena fungsi Lambda harus memiliki `index.js` handler untuk bekerja.

1. Kompres file output yang dibundel,`index.js`, ke dalam file ZIP bernama`my-lambda-function.zip`.

1. Unggah `mylambdafunction.zip` ke bucket Amazon S3 yang Anda buat dalam [Buat sumber AWS daya](#scheduled-events-invoking-lambda-provision-resources) topik tutorial ini. 

Berikut adalah kode skrip browser lengkap untuk`mylambdafunction.js`.

```
"use strict";
// Load the required clients and commands.
const { DynamoDBClient, ScanCommand } = require("@aws-sdk/client-dynamodb");
const { SNSClient, PublishCommand } = require("@aws-sdk/client-sns");

//Set the AWS Region.
const REGION = "REGION"; //e.g. "us-east-1"

// Get today's date.
const today = new Date();
const dd = String(today.getDate()).padStart(2, "0");
const mm = String(today.getMonth() + 1).padStart(2, "0"); //January is 0!
const yyyy = today.getFullYear();
const date = yyyy + "-" + mm + "-" + dd;

// Set the parameters for the ScanCommand method.
const params = {
  // Specify which items in the results are returned.
  FilterExpression: "startDate = :topic",
  // Define the expression attribute value, which are substitutes for the values you want to compare.
  ExpressionAttributeValues: {
    ":topic": { S: date },
  },
  // Set the projection expression, which the the attributes that you want.
  ProjectionExpression: "firstName, phone",
  TableName: "TABLE_NAME",
};

// Create the client service objects.
const dbclient = new DynamoDBClient({ region: REGION });
const snsclient = new SNSClient({ region: REGION });

exports.handler = async (event, context, callback) => {
  // Helper function to send message using Amazon SNS.
  async function sendText(textParams) {
    try {
      const data = await snsclient.send(new PublishCommand(textParams));
      console.log("Message sent");
    } catch (err) {
      console.log("Error, message not sent ", err);
    }
  }
  try {
    // Scan the table to check identify employees with work anniversary today.
    const data = await dbclient.send(new ScanCommand(params));
    data.Items.forEach(function (element, index, array) {
      const textParams = {
        PhoneNumber: element.phone.N,
        Message:
          "Hi " +
          element.firstName.S +
          "; congratulations on your work anniversary!",
      };
      // Send message using Amazon SNS.
      sendText(textParams);
    });
  } catch (err) {
    console.log("Error, could not scan table ", err);
  }
};
```

## Deploy fungsi Lambda
<a name="scheduled-events-invoking-lambda-deploy-function"></a>

Di root proyek Anda, buat `lambda-function-setup.js` file, dan tempel konten di bawah ini ke dalamnya.

Ganti *BUCKET\$1NAME* dengan nama bucket Amazon S3 tempat Anda mengunggah versi ZIP fungsi Lambda Anda. Ganti *ZIP\$1FILE\$1NAME* dengan nama nama versi ZIP dari fungsi Lambda Anda. Ganti *IAM\$1ROLE\$1ARN* dengan Amazon Resource Number (ARN) dari peran IAM yang Anda buat dalam [Buat sumber AWS daya](#scheduled-events-invoking-lambda-provision-resources) topik tutorial ini. Ganti *LAMBDA\$1FUNCTION\$1NAME* dengan nama untuk fungsi Lambda.

```
// Load the required Lambda client and commands.
const {
   CreateFunctionCommand,
} = require("@aws-sdk/client-lambda");
const {
   lambdaClient
} = require("..libs/lambdaClient.js");

// Instantiate an Lambda client service object.
const lambda = new LambdaClient({ region: REGION });

// Set the parameters.
const params = {
  Code: {
    S3Bucket: "BUCKET_NAME", // BUCKET_NAME
    S3Key: "ZIP_FILE_NAME", // ZIP_FILE_NAME
  },
  FunctionName: "LAMBDA_FUNCTION_NAME",
  Handler: "index.handler",
  Role: "IAM_ROLE_ARN", // IAM_ROLE_ARN; e.g., arn:aws:iam::650138640062:role/v3-lambda-tutorial-lambda-role
  Runtime: "nodejs12.x",
  Description:
    "Scans a DynamoDB table of employee details and using Amazon Simple Notification Services (Amazon SNS) to " +
    "send employees an email the each anniversary of their start-date.",
};

const run = async () => {
  try {
    const data = await lambda.send(new CreateFunctionCommand(params));
    console.log("Success", data); // successful response
  } catch (err) {
    console.log("Error", err); // an error occurred
  }
};
run();
```

Masukkan yang berikut ini di baris perintah untuk menyebarkan fungsi Lambda.

```
node lambda-function-setup.js
```

Contoh kode ini tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lambda-scheduled-events/src/helper-functions/lambda-function-setup.js).

## Konfigurasikan CloudWatch untuk menjalankan fungsi Lambda
<a name="scheduled-events-invoking-lambda-run"></a>

Untuk mengkonfigurasi CloudWatch untuk menjalankan fungsi Lambda:

1. Buka **halaman Fungsi** di konsol Lambda.

1. Pilih fungsi Lambda.

1. Di bawah **Desainer**, pilih **Tambahkan pemicu**.

1. Atur tipe pemicu ke **CloudWatch EventBridgeEvents/**.

1. Untuk Aturan, pilih **Buat aturan baru**.

1.  Isi nama aturan dan deskripsi aturan.

1. Untuk jenis aturan, pilih **Ekspresi jadwal**.

1. Di bidang **Ekspresi Jadwal**, masukkan ekspresi cron. Misalnya, **cron (0 12? \$1 SEN-JUMAT** \$1).

1. Pilih **Tambahkan**.
**catatan**  
Untuk informasi selengkapnya, lihat [Menggunakan Lambda dengan CloudWatch Acara](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents.html).

## Hapus sumber daya
<a name="scheduled-events-invoking-lambda-destroy"></a>

Selamat\$1 Anda telah memanggil fungsi Lambda melalui acara terjadwal CloudWatch Amazon menggunakan. AWS SDK untuk JavaScript Seperti yang dinyatakan di awal tutorial ini, pastikan untuk menghentikan semua sumber daya yang Anda buat saat melalui tutorial ini untuk memastikan bahwa Anda tidak dikenakan biaya. Anda dapat melakukan ini dengan menghapus CloudFormation tumpukan yang Anda buat dalam [Buat sumber AWS daya](#scheduled-events-invoking-lambda-provision-resources) topik tutorial ini, sebagai berikut:

1. Buka [konsol CloudFormation]( https://console.aws.amazon.com/cloudformation/home).

1. Pada halaman **Stacks**, pilih tumpukan.

1. Pilih **Hapus**.

# Membangun chatbot Amazon Lex
<a name="lex-bot-example"></a>

Anda dapat membuat chatbot Amazon Lex dalam aplikasi web untuk melibatkan pengunjung situs web Anda. Chatbot Amazon Lex adalah fungsi yang melakukan percakapan obrolan online dengan pengguna tanpa memberikan kontak langsung dengan seseorang. Misalnya, ilustrasi berikut menunjukkan chatbot Amazon Lex yang melibatkan pengguna tentang pemesanan kamar hotel.

![\[Chatbot interface demonstrating a hotel booking conversation with user inputs and bot responses.\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/lex_example/chatintro.png)


Chatbot Amazon Lex yang dibuat dalam AWS tutorial ini mampu menangani beberapa bahasa. Misalnya, pengguna yang berbicara bahasa Prancis dapat memasukkan teks Prancis dan mendapatkan kembali tanggapan dalam bahasa Prancis.

![\[Chatbot interface demonstrating Amazon Lex integration with French language support.\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/lex_example/LanChatBot2.png)


Demikian juga, pengguna dapat berkomunikasi dengan chatbot Amazon Lex dalam bahasa Italia.

![\[Chat interface showing Italian language exchange between user and Amazon Lex chatbot.\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/lex_example/LanChatBot3.png)


 AWS Tutorial ini memandu Anda melalui pembuatan chatbot Amazon Lex dan mengintegrasikannya ke dalam aplikasi web Node.js. AWS SDK untuk JavaScript (v3) digunakan untuk memanggil layanan ini AWS :
+ Amazon Lex
+ Amazon Comprehend
+ Amazon Translate

**Biaya untuk menyelesaikan:** AWS Layanan yang termasuk dalam dokumen ini termasuk dalam [Tingkat AWS Gratis](https://aws.amazon.com/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc).

**Catatan:** Pastikan untuk menghentikan semua sumber daya yang Anda buat saat mengikuti tutorial ini untuk memastikan bahwa Anda tidak dikenakan biaya.

**Untuk membangun aplikasi:**

1. [Prasyarat](#lex-bot-example-prerequisites)

1. [Sumber daya penyediaan](#lex-bot-provision-resources)

1. [Buat chatbot Amazon Lex](#lex-bot-example-create-lex-bot)

1. [Buat HTML](#lex-bot-example-html)

1. [Buat skrip browser](#lex-bot-example-script)

1. [Langkah selanjutnya](#lex-bot-example-next-steps)

## Prasyarat
<a name="lex-bot-example-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/cross-services/lambda-scheduled-events/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh ini menggunakan ECMAScript6 (ES6). Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .  
Namun, jika Anda lebih suka menggunakan sintaks CommonJS, silakan merujuk ke. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Buat sumber AWS daya
<a name="lex-bot-provision-resources"></a>

Tutorial ini membutuhkan sumber daya berikut.
+ Peran IAM yang tidak diautentikasi dengan izin terlampir untuk:
  + Amazon Comprehend
  + Amazon Translate
  + Amazon Lex

Anda dapat membuat sumber daya ini secara manual, tetapi kami merekomendasikan penyediaan sumber daya ini menggunakan AWS CloudFormation seperti yang dijelaskan dalam tutorial ini.

### Buat sumber AWS daya menggunakan CloudFormation
<a name="lex-bot-example-resources-cli"></a>

CloudFormation memungkinkan Anda untuk membuat dan menyediakan penyebaran AWS infrastruktur yang dapat diprediksi dan berulang kali. Untuk informasi selengkapnya CloudFormation, lihat [Panduan AWS CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).

Untuk membuat CloudFormation tumpukan menggunakan AWS CLI:

1. Instal dan konfigurasikan petunjuk AWS CLI berikut di [Panduan AWS CLI Pengguna](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

1. Buat file bernama `setup.yaml` di direktori root folder proyek Anda, dan salin konten [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/cross-services/lex-bot/setup.yaml) ke dalamnya.
**catatan**  
 CloudFormation Template dibuat menggunakan yang AWS CDK tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/resources/cdk/lex_bot_example_iam_unauth_role). Untuk informasi selengkapnya tentang AWS CDK, lihat [Panduan AWS Cloud Development Kit (AWS CDK) Pengembang](https://docs.aws.amazon.com/cdk/latest/guide/).

1. Jalankan perintah berikut dari baris perintah, ganti *STACK\$1NAME* dengan nama unik untuk tumpukan.
**penting**  
Nama tumpukan harus unik dalam AWS Wilayah dan AWS akun. Anda dapat menentukan hingga 128 karakter, dan angka serta tanda hubung diizinkan.

   ```
   aws cloudformation create-stack --stack-name STACK_NAME --template-body file://setup.yaml --capabilities CAPABILITY_IAM
   ```

   Untuk informasi selengkapnya tentang parameter `create-stack` perintah, lihat [panduan Referensi AWS CLI Perintah](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html), dan [Panduan CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html).

   Untuk melihat sumber daya yang dibuat, buka konsol Amazon Lex, pilih tumpukan, dan pilih tab **Sumber Daya**.

## Buat bot Amazon Lex
<a name="lex-bot-example-create-lex-bot"></a>

**penting**  
Gunakan V1 dari konsol Amazon Lex untuk membuat bot. Contoh ini tidak berfungsi dengan bot yang dibuat menggunakan V2.

Langkah pertama adalah membuat chatbot Amazon Lex dengan menggunakan Amazon Web Services Management Console. Dalam contoh ini, contoh Amazon Lex **BookTrip**digunakan. Untuk informasi selengkapnya, lihat [Pesan Perjalanan](https://docs.aws.amazon.com/lex/latest/dg/ex-book-trip.html).
+ Masuk ke Amazon Web Services Management Console dan buka konsol Amazon Lex di [Amazon Web Services Console](https://console.aws.amazon.com/lex/).
+ Pada halaman Bots, pilih **Buat**.
+ Pilih **BookTrip**cetak biru (tinggalkan nama bot default). **BookTrip**  
![\[Interface for creating a chatbot, showing BookTrip sample with conversation flow and components.\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/lex_example/pic2.png)
+ Isi pengaturan default dan pilih **Buat** (konsol menunjukkan **BookTrip**bot). Pada tab Editor, tinjau detail maksud yang telah dikonfigurasi sebelumnya.
+ Uji bot di jendela uji. Mulai tes dengan mengetik *Saya ingin memesan kamar hotel*.  
![\[Chat interface showing a hotel booking conversation with a bot asking for the city.\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/lex_example/ChatBotTest.png)
+ Pilih **Publikasikan** dan tentukan nama alias (Anda akan memerlukan nilai ini saat menggunakan AWS SDK untuk JavaScript).

**catatan**  
 Anda perlu mereferensikan **nama bot** dan **alias bot** dalam JavaScript kode Anda.

## Buat HTML
<a name="lex-bot-example-html"></a>

Buat file bernama `index.html`. Salin dan tempel kode di bawah ini ke`index.html`. Referensi HTML ini`main.js`. Ini adalah versi bundel dari index.js, yang mencakup AWS SDK untuk JavaScript modul yang diperlukan. Anda akan membuat file ini di[Buat HTML](#lex-bot-example-html). `index.html`juga referensi`style.css`, yang menambahkan gaya. 

```
<!doctype html>
<head>
  <title>Amazon Lex - Sample Application (BookTrip)</title>
  <link type="text/css" rel="stylesheet" href="style.css" />
</head>

<body>
  <h1 id="title">Amazon Lex - BookTrip</h1>
  <p id="intro">
    This multiple language chatbot shows you how easy it is to incorporate
    <a
      href="https://aws.amazon.com/lex/"
      title="Amazon Lex (product)"
      target="_new"
      >Amazon Lex</a
    >
    into your web apps. Try it out.
  </p>
  <div id="conversation"></div>
  <input
    type="text"
    id="wisdom"
    size="80"
    value=""
    placeholder="J'ai besoin d'une chambre d'hôtel"
  />
  <br />
  <button onclick="createResponse()">Send Text</button>
  <script type="text/javascript" src="./main.js"></script>
</body>
```

Kode ini juga tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/resources/cdk#running-a-cdk-app).

## Buat skrip browser
<a name="lex-bot-example-script"></a>

Buat file bernama `index.js`. Salin dan tempel kode di bawah ini ke dalam`index.js`. Impor AWS SDK untuk JavaScript modul dan perintah yang diperlukan. Buat klien untuk Amazon Lex, Amazon Comprehend, dan Amazon Translate. Ganti *REGION* dengan AWS Region, dan *IDENTITY\$1POOL\$1ID* dengan ID kumpulan identitas yang Anda buat di[Buat sumber AWS daya](#lex-bot-provision-resources). Untuk mengambil ID kumpulan identitas ini, buka kumpulan identitas di konsol Amazon Cognito, **pilih Edit kumpulan identitas**, dan **pilih Contoh** kode di menu samping. ID kumpulan identitas ditampilkan dalam teks merah di konsol.

Pertama, buat `libs` direktori buat objek klien layanan yang diperlukan dengan membuat tiga file,`comprehendClient.js`,`lexClient.js`, dan`translateClient.js`. Tempelkan kode yang sesuai di bawah ini ke masing-masing, *REGION* dan ganti dan *IDENTITY\$1POOL\$1ID* di setiap file.

**catatan**  
Gunakan ID kumpulan identitas Amazon Cognito yang Anda buat. [Buat sumber AWS daya menggunakan CloudFormation](#lex-bot-example-resources-cli)

```
import { CognitoIdentityClient } from "@aws-sdk/client-cognito-identity";
import { fromCognitoIdentityPool } from "@aws-sdk/credential-provider-cognito-identity";
import { ComprehendClient } from "@aws-sdk/client-comprehend";

const REGION = "REGION";
const IDENTITY_POOL_ID = "IDENTITY_POOL_ID"; // An Amazon Cognito Identity Pool ID.

// Create an Amazon Comprehend service client object.
const comprehendClient = new ComprehendClient({
  region: REGION,
  credentials: fromCognitoIdentityPool({
    client: new CognitoIdentityClient({ region: REGION }),
    identityPoolId: IDENTITY_POOL_ID,
  }),
});

export { comprehendClient };
```

```
import { CognitoIdentityClient } from "@aws-sdk/client-cognito-identity";
import { fromCognitoIdentityPool } from "@aws-sdk/credential-provider-cognito-identity";
import { LexRuntimeServiceClient } from "@aws-sdk/client-lex-runtime-service";

const REGION = "REGION";
const IDENTITY_POOL_ID = "IDENTITY_POOL_ID"; // An Amazon Cognito Identity Pool ID.

// Create an Amazon Lex service client object.
const lexClient = new LexRuntimeServiceClient({
  region: REGION,
  credentials: fromCognitoIdentityPool({
    client: new CognitoIdentityClient({ region: REGION }),
    identityPoolId: IDENTITY_POOL_ID,
  }),
});

export { lexClient };
```

```
import { CognitoIdentityClient } from "@aws-sdk/client-cognito-identity";
import { fromCognitoIdentityPool } from "@aws-sdk/credential-provider-cognito-identity";
import { TranslateClient } from "@aws-sdk/client-translate";

const REGION = "REGION";
const IDENTITY_POOL_ID = "IDENTITY_POOL_ID"; // An Amazon Cognito Identity Pool ID.

// Create an Amazon Translate service client object.
const translateClient = new TranslateClient({
  region: REGION,
  credentials: fromCognitoIdentityPool({
    client: new CognitoIdentityClient({ region: REGION }),
    identityPoolId: IDENTITY_POOL_ID,
  }),
});

export { translateClient };
```

Kode ini tersedia [di sini GitHub.](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/cross-services/lex-bot/src/libs) .

Selanjutnya, buat `index.js` file, dan tempel kode di bawah ini ke dalamnya.

 Ganti *BOT\$1ALIAS* dan *BOT\$1NAME* dengan alias dan nama bot Amazon Lex Anda masing-masing, dan *USER\$1ID* dengan id pengguna. Fungsi `createResponse` asinkron melakukan hal berikut:
+ Mengambil teks yang dimasukkan oleh pengguna ke browser dan menggunakan Amazon Comprehend untuk menentukan kode bahasanya.
+ Mengambil kode bahasa dan menggunakan Amazon Translate untuk menerjemahkan teks ke dalam bahasa Inggris.
+ Mengambil teks yang diterjemahkan dan menggunakan Amazon Lex untuk menghasilkan respons.
+ Memposting respons ke halaman browser.

```
import { DetectDominantLanguageCommand } from "@aws-sdk/client-comprehend";
import { TranslateTextCommand } from "@aws-sdk/client-translate";
import { PostTextCommand } from "@aws-sdk/client-lex-runtime-service";
import { lexClient } from "./libs/lexClient.js";
import { translateClient } from "./libs/translateClient.js";
import { comprehendClient } from "./libs/comprehendClient.js";

let g_text = "";
// Set the focus to the input box.
document.getElementById("wisdom").focus();

function showRequest() {
  const conversationDiv = document.getElementById("conversation");
  const requestPara = document.createElement("P");
  requestPara.className = "userRequest";
  requestPara.appendChild(document.createTextNode(g_text));
  conversationDiv.appendChild(requestPara);
  conversationDiv.scrollTop = conversationDiv.scrollHeight;
}

function showResponse(lexResponse) {
  const conversationDiv = document.getElementById("conversation");
  const responsePara = document.createElement("P");
  responsePara.className = "lexResponse";

  const lexTextResponse = lexResponse;

  responsePara.appendChild(document.createTextNode(lexTextResponse));
  responsePara.appendChild(document.createElement("br"));
  conversationDiv.appendChild(responsePara);
  conversationDiv.scrollTop = conversationDiv.scrollHeight;
}

function handletext(text) {
  g_text = text;
  const xhr = new XMLHttpRequest();
  xhr.addEventListener("load", loadNewItems, false);
  xhr.open("POST", "../text", true); // A Spring MVC controller
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //necessary
  xhr.send(`text=${text}`);
}

function loadNewItems() {
  showRequest();

  // Re-enable input.
  const wisdomText = document.getElementById("wisdom");
  wisdomText.value = "";
  wisdomText.locked = false;
}

// Respond to user's input.
const createResponse = async () => {
  // Confirm there is text to submit.
  const wisdomText = document.getElementById("wisdom");
  if (wisdomText?.value && wisdomText.value.trim().length > 0) {
    // Disable input to show it is being sent.
    const wisdom = wisdomText.value.trim();
    wisdomText.value = "...";
    wisdomText.locked = true;
    handletext(wisdom);

    const comprehendParams = {
      Text: wisdom,
    };
    try {
      const data = await comprehendClient.send(
        new DetectDominantLanguageCommand(comprehendParams),
      );
      console.log(
        "Success. The language code is: ",
        data.Languages[0].LanguageCode,
      );
      const translateParams = {
        SourceLanguageCode: data.Languages[0].LanguageCode,
        TargetLanguageCode: "en", // For example, "en" for English.
        Text: wisdom,
      };
      try {
        const data = await translateClient.send(
          new TranslateTextCommand(translateParams),
        );
        console.log("Success. Translated text: ", data.TranslatedText);
        const lexParams = {
          botName: "BookTrip",
          botAlias: "mynewalias",
          inputText: data.TranslatedText,
          userId: "chatbot", // For example, 'chatbot-demo'.
        };
        try {
          const data = await lexClient.send(new PostTextCommand(lexParams));
          console.log("Success. Response is: ", data.message);
          const msg = data.message;
          showResponse(msg);
        } catch (err) {
          console.log("Error responding to message. ", err);
        }
      } catch (err) {
        console.log("Error translating text. ", err);
      }
    } catch (err) {
      console.log("Error identifying language. ", err);
    }
  }
};
// Make the function available to the browser.
window.createResponse = createResponse;
```

Kode ini tersedia [di sini GitHub.](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/cross-services/lex-bot/src/index.html) .

Sekarang gunakan webpack untuk menggabungkan AWS SDK untuk JavaScript modul `index.js` dan ke dalam satu file,`main.js`.

1. Jika Anda belum melakukannya, ikuti contoh ini [Prasyarat](#lex-bot-example-prerequisites) untuk menginstal webpack. 
**catatan**  
Untuk informasi tentang *webpack*, lihat[Bundel aplikasi dengan webpack](webpack.md).

1. Jalankan yang berikut ini di baris perintah untuk menggabungkan JavaScript untuk contoh ini ke dalam file bernama`main.js`:

   ```
   webpack index.js --mode development --target web --devtool false -o main.js
   ```

## Langkah selanjutnya
<a name="lex-bot-example-next-steps"></a>

Selamat\$1 Anda telah membuat aplikasi Node.js yang menggunakan Amazon Lex untuk menciptakan pengalaman pengguna yang interaktif. Seperti yang dinyatakan di awal tutorial ini, pastikan untuk menghentikan semua sumber daya yang Anda buat saat melalui tutorial ini untuk memastikan bahwa Anda tidak dikenakan biaya. Anda dapat melakukan ini dengan menghapus CloudFormation tumpukan yang Anda buat dalam [Buat sumber AWS daya](#lex-bot-provision-resources) topik tutorial ini, sebagai berikut:

1. Buka [konsol CloudFormation]( https://console.aws.amazon.com/cloudformation/home).

1. Pada halaman **Stacks**, pilih tumpukan.

1. Pilih **Hapus**.

Untuk contoh AWS lintas layanan lainnya, lihat contoh [AWS SDK untuk JavaScript lintas layanan](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/tutorials.html).