すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud SDK:SDK の統合

最終更新日:Aug 30, 2026

OpenAPI のオペレーションを呼び出す際は、 SDK をプロジェクトに統合することを推奨します。SDK を使用することで、開発プロセスを簡素化し、機能を迅速に統合し、メンテナンスコストを効果的に削減できます。Alibaba Cloud SDK の統合は、次の 3 つの主なステップからなります: Alibaba Cloud SDK のインポート、アクセス認証情報の設定、 SDK の使用。このトピックでは、 SDK の統合プロセスについて詳しく説明します。

環境要件

Node.js >= 8.x

SDK のインポート

  1. SDK Center にログインし、Short Message Service (SMS) など、呼び出す API の製品を選択します。

  2. [Installation] ページ、[All Languages] を [TypeScript] に設定します。 次に、[Quick Start] タブで、Short Message Service (SMS) の SDK インストール手順を確認できます。image

アクセス認証情報の設定

OpenAPI オペレーションを呼び出すには、AccessKey や STS トークンなどのアクセス認証情報が必要です。 漏洩を防ぐため、認証情報は環境変数に保存します。 ベストプラクティスについては、「アクセス認証情報の安全な使用」をご参照ください。 以下の例では、ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET の環境変数を使用します。

Linux および macOS での設定方法

以下の例では、変数名として ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET を使用します。 必要に応じて、OSS_ACCESS_KEY_ID や OSS_ACCESS_KEY_SECRET など、独自の名前に置き換えてください。

次の export コマンドを実行して、環境変数を設定します。

重要

export で設定された変数は一時的なもので、現在のセッションでのみ有効です。 永続化するには、export コマンドをシェルの起動ファイル (~/.bashrc や ~/.zshrc など) に追加してください。

  • AccessKey ID の設定:

    # yourAccessKeyID をお使いの AccessKey ID に置き換えてください。
    export ALIBABA_CLOUD_ACCESS_KEY_ID=yourAccessKeyID
  • AccessKey secret の設定:

    # yourAccessKeySecret をお使いの AccessKey secret に置き換えてください。
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=yourAccessKeySecret
  • 設定の確認:

    echo $ALIBABA_CLOUD_ACCESS_KEY_ID を実行します。 正しい値が返された場合、設定は成功です。

Windows での設定方法

グラフィカルユーザーインターフェース (GUI) の使用

  • 手順

    次の手順では、 Windows 10 の GUI を使用して環境変数を設定する方法について説明します。

    デスクトップで [PC] を右クリックし、[プロパティ] > [システムの詳細設定] > [環境変数] の順に選択し、[システム変数] または [ユーザー変数] の [新規] をクリックします。その後、設定を完了します。

    変数

    値の例

    AccessKey ID

    • 変数名: ALIBABA_CLOUD_ACCESS_KEY_ID

    • 変数値: yourAccessKeyID

    AccessKey シークレット

    • 変数名: ALIBABA_CLOUD_ACCESS_KEY_SECRET

    • 変数値: yourAccessKeySecret

  • 設定の確認

    [スタート] から [ファイル名を指定して実行] をクリックするか、キーボードショートカット Win+R を使用します。cmd と入力し、[OK] をクリックするか Enter キーを押してコマンドプロンプトを開きます。 echo %ALIBABA_CLOUD_ACCESS_KEY_ID% コマンドと echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET% コマンドを実行します。コマンドが正しい AccessKey を返す場合、設定は成功です。

コマンドプロンプト (CMD) の使用

  • 手順

    コマンドプロンプトを管理者として開き、次のコマンドを実行して、新しい環境変数をシステムに追加します。

    setx ALIBABA_CLOUD_ACCESS_KEY_ID yourAccessKeyID /M
    setx ALIBABA_CLOUD_ACCESS_KEY_SECRET yourAccessKeySecret /M

    /M パラメータは、システム環境変数を示します。ユーザー環境変数を設定する場合は、このパラメータを省略できます。

  • 設定の確認

    [スタート] から [ファイル名を指定して実行] をクリックするか、キーボードショートカット Win+R を使用します。cmd と入力し、[OK] をクリックするか Enter キーを押してコマンドプロンプトを開きます。 echo %ALIBABA_CLOUD_ACCESS_KEY_ID% コマンドと echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET% コマンドを実行します。コマンドが正しい AccessKey を返す場合、設定は成功です。

Windows PowerShell の使用

PowerShell では、すべての新しいセッションで有効な新しい環境変数を設定できます。

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'yourAccessKeyID', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'yourAccessKeySecret', [System.EnvironmentVariableTarget]::User)

すべてのユーザーに対して環境変数を設定するには、管理者権限が必要です。

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'yourAccessKeyID', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'yourAccessKeySecret', [System.EnvironmentVariableTarget]::Machine)

現在のセッションでのみ有効な一時的な環境変数を設定できます。

$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "yourAccessKeyID"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "yourAccessKeySecret"

PowerShell で、 Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_ID コマンドと Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET コマンドを実行します。コマンドが正しい AccessKey を返す場合、設定は成功です。

SDK の使用

このトピックでは、Short Message Service (SMS) の または SendMessageToGlobe API を呼び出す例を示します。 または SendMessageToGlobe API の API リファレンスについては、「」または「SendMessageToGlobe」をご参照ください。

1. リクエストクライアントの初期化

すべての OpenAPI 呼び出しは、リクエストクライアントを介して行われます。 この例では、AccessKey ペアでクライアントを初期化します。 他の初期化方法については、「アクセス認証情報の管理」をご参照ください。

重要
  • Dysmsapi20180501 や インスタンスなどのクライアントオブジェクトはスレッドセーフであり、スレッドごとに個別のインスタンスを作成することなく、マルチスレッド環境で使用できます。

  • new でクライアントオブジェクトを繰り返し作成することは避けてください。 シングルトンパターンを使用して、アプリケーションのライフサイクル全体で、認証情報とエンドポイントごとにクライアントインスタンスが 1 つだけ存在するようにします。

TypeScript の例

import Dysmsapi20180501, * as $Dysmsapi20180501 from '@alicloud/dysmsapi20180501';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Util, * as $Util from '@alicloud/tea-util';

export default class Client {

  static createClient(): Dysmsapi20180501 {
    let config = new $OpenApi.Config({
      // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // エンドポイントの詳細については、https://api.alibabacloud.com/product/Dysmsapi をご参照ください。
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501(config);
  }
}

Node.js の例

const Dysmsapi20180501 = require('@alicloud/dysmsapi20180501');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');
const Tea = require('@alicloud/tea-typescript');

class Client {

  static createClient() {
    let config = new OpenApi.Config({
      // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // エンドポイントの詳細については、https://api.alibabacloud.com/product/Dysmsapi をご参照ください。
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501.default(config);
  }
}

2. リクエストオブジェクトの作成

SDK リクエストオブジェクトを介してパラメーターを渡します。このオブジェクト名は <OpenAPI Name>Request (例:SendSmsRequest) です。 パラメーターの詳細については、API リファレンス:「SendMessageToGlobe」をご参照ください。

説明

API にリクエストパラメーターがない場合は、このステップをスキップしてください。 たとえば、DescribeCdnSubList にはリクエストオブジェクトは必要ありません。

TypeScript の例

 // リクエストオブジェクトを作成し、必須の入力パラメーターを設定します
 let sendMessageToGlobeRequest = new $Dysmsapi20180501.SendMessageToGlobeRequest({
      // 実際の受信者番号に置き換えてください。
      to: "<YOUR_VALUE>",
      // 実際の SMS 内容に置き換えてください。
      message: "<YOUR_VALUE>",
    });

Node.js の例

// リクエストオブジェクトを作成し、必須の入力パラメーターを設定します
let sendMessageToGlobeRequest = new Dysmsapi20180501.SendMessageToGlobeRequest({
    // 実際の受信者番号に置き換えてください。
    to: '<YOUR_VALUE>',
    // 実際の SMS 内容に置き換えてください。
    message: '<YOUR_VALUE>',
});

3. リクエストの送信

クライアントの <operationName>WithOptions 関数を呼び出します。<operationName> はキャメルケースの API 名です。 この関数は、リクエストオブジェクトとランタイムパラメーター (タイムアウト、プロキシなど) を受け取ります。 「高度な設定」をご参照ください。

説明

API にリクエストパラメーターがない場合は、ランタイムオプションのみを渡してください。 たとえば、DescribeCdnSubList にはランタイムパラメーターのみが必要です。

TypeScript の例

// ランタイムパラメーターを作成します。
let runtime = new $Util.RuntimeOptions({ });
let client = Client.createClient();
// リクエストを送信します。
await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);

Node.js の例

// ランタイムパラメーターを作成します。
let runtime = new Util.RuntimeOptions({ });
let client = Client.createClient();
// リクエストを送信します。
await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);

4. 例外処理

V2.0 Node.js SDK は、2 種類の例外をスローします。

  • UnretryableError :通常、ネットワークの問題が原因で最大リトライ回数を超えた後にスローされます。 err.data.lastRequest を介して最後のリクエストを取得できます。

  • ResponseError :API によって返されたサーバー側エラーを示します。

「例外処理」をご参照ください。

重要

常に例外を処理してください。伝播、ログ記録、または回復を行ってください。 例外を無視しないでください。

クリックして完全なコード例を表示

SendMessageToGlobe API 呼び出しの例

TypeScript の例

import Dysmsapi20180501, * as $Dysmsapi20180501 from '@alicloud/dysmsapi20180501';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Util, * as $Util from '@alicloud/tea-util';

export default class Client {

  static createClient(): Dysmsapi20180501 {
    let config = new $OpenApi.Config({
      // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // エンドポイントの詳細については、https://api.alibabacloud.com/product/Dysmsapi をご参照ください。
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501(config);
  }

  static async main(): Promise<void> {
    let client = Client.createClient();
    // リクエストオブジェクトを作成し、入力パラメーターを設定します。
    let sendMessageToGlobeRequest = new $Dysmsapi20180501.SendMessageToGlobeRequest({
      to: "<YOUR_VALUE>",
      from: "<YOUR_VALUE>",
      message: "<YOUR_VALUE>",
    });
    let runtime = new $Util.RuntimeOptions({ });
    try {
      // リクエストを送信します。
      await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);
    } catch (error) {
      // これはデモンストレーションのみを目的としています。 例外は慎重に処理してください。 プロジェクトで例外を無視しないでください。
      // エラーメッセージ
      console.log(error.message);
      // 診断アドレス
      console.log(error.data["Recommend"]);
    }    
  }
}

Client.main();

Node.js の例

const Dysmsapi20180501 = require('@alicloud/dysmsapi20180501');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');

class Client {

  static createClient() {
    let config = new OpenApi.Config({
      // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // エンドポイントの詳細については、https://api.alibabacloud.com/product/Dysmsapi をご参照ください。
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501.default(config);
  }

  static async main() {
    // リクエストオブジェクトを作成し、入力パラメーターを設定します。
    let client = Client.createClient();
    let sendMessageToGlobeRequest = new Dysmsapi20180501.SendMessageToGlobeRequest({
      to: '<YOUR_VALUE>',
      from: '<YOUR_VALUE>',
      message: '<YOUR_VALUE>',
    });
    let runtime = new Util.RuntimeOptions({ });
    try {
      // リクエストを送信します。
      await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);
    } catch (error) {
      // これはデモンストレーションのみを目的としています。 例外は慎重に処理してください。 プロジェクトで例外を無視しないでください。
      // エラーメッセージ
      console.log(error.message);
      // 診断アドレス
      console.log(error.data["Recommend"]);
      Util.default.assertAsString(error.message);
    }    
  }
}

exports.Client = Client;
Client.main();

Advance 操作によるファイルのアップロード

一部の API (画像検索や Visual Intelligence など) は、ローカルファイルパスを直接受け付けません。 Advance 操作を使用して、ストリーム経由でファイルをアップロードします。 SDK は、ファイルを cn-shanghai リージョンの OSS バケットに一時的に保存し、サービスはそこからファイルを読み取ります。 この例では、Visual Intelligence API の DetectBodyCount 操作を使用します。

重要

Alibaba Cloud OSS に保存されている一時ファイルは定期的にクリアされます。

  1. リクエストクライアントの初期化

    regionId と endpoint の両方を同じリージョンに設定してください。 regionId は、一時的な OSS ファイルが保存される場所を決定します。 regionId を省略すると、製品と OSS バケットのリージョンが一致せず、タイムアウトが発生します。

    TypeScript の例

    function createClient(): facebody20191230 {
        let config = new $OpenApi.Config({
            // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        });
        // エンドポイントと regionId は同じリージョンである必要があります。
        config.regionId = 'cn-shanghai';
        config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
        return new facebody20191230(config);
    }

    Node.js の例

    function createClient() {
      let config = new OpenApi.Config({
        // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
        accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
        // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
        accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
      });
      // エンドポイントと regionId は同じリージョンである必要があります。
      config.regionId = 'cn-shanghai';
      config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
      return new facebody20191230.default(config);
    }
  2. リクエストオブジェクトの作成

    <OpenAPIName>AdvanceRequest オブジェクトを作成して、ファイルストリームを渡してください。 ファイルストリームのパラメーター名は ImageURLObject です。

    TypeScript の例

        // ファイルをファイルストリームとして読み取ります。
        const filePath = '<FILE_PATH>';  // これを実際のファイルパスに置き換えてください。
        // ファイルが存在するかどうかを確認します。
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // ストリームを作成し、ストリームエラーをリッスンします。
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });
    
        let detectBodyCountAdvanceRequest = new $facebody20191230.DetectBodyCountAdvanceRequest({
          imageURLObject: fileStream,
        });

    Node.js の例

        // ファイルをファイルストリームとして読み取ります。
        const filePath = '<FILE_PATH>';  // これを実際のファイルパスに置き換えてください。
        // ファイルが存在するかどうかを確認します。
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // ストリームを作成し、ストリームエラーをリッスンします。
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });
    
        let detectBodyCountAdvanceRequest = new facebody20191230.DetectBodyCountAdvanceRequest({
            imageURLObject: fileStream,
        });
  3. リクエストの送信

    <operationName>Advance 関数を呼び出してリクエストを送信します。

    TypeScript の例

    // ランタイムパラメーターを設定します。
    let runtime = new $Util.RuntimeOptions({ });
    let client = Client.createClient();
    // リクエストを送信します。
    await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);

    Node.js の例

     // ランタイムパラメーターを設定します。
     let runtime = new Util.RuntimeOptions({ });
     let client = Client.createClient();
     // リクエストを送信します。
     await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);  

クリックして完全なコード例を表示

TypeScript の例

import { default as facebody20191230 } from '@alicloud/facebody20191230';
import * as $facebody20191230 from '@alicloud/facebody20191230';
import * as $OpenApi from '@alicloud/openapi-client';
import * as $Util from '@alicloud/tea-util';
import * as fs from "fs";

export default class Client {
    static createClient(): facebody20191230 {
        let config = new $OpenApi.Config({
            // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        });
        config.regionId = 'cn-shanghai';
        config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
        return new facebody20191230(config);
    }

    static async main(): Promise<void> {
        let client = Client.createClient();

        // ファイルをファイルストリームとして読み取ります。
        const filePath = '<FILE_PATH>';  // これを実際のファイルパスに置き換えてください。
        // ファイルが存在するかどうかを確認します。
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // ストリームを作成し、ストリームエラーをリッスンします。
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });

        let detectBodyCountAdvanceRequest = new $facebody20191230.DetectBodyCountAdvanceRequest({
            imageURLObject: fileStream,
        });
        let runtime = new $Util.RuntimeOptions({});
        try {
            // リクエストを送信します。
            const res = await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);
            console.log(res);
        } catch (error) {
            if (error instanceof Error) {
                console.error('Error message:', error.message);
                const data = (error as any)?.data?.Recommend;
                if (typeof data === 'string') {
                    console.log('Diagnostic suggestion:', data);
                }
            }
        }
    }
}

Client.main();

Node.js の例

'use strict';
const facebody20191230 = require('@alicloud/facebody20191230');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');
const fs = require('fs');

class Client {
  static createClient() {
    let config = new OpenApi.Config({
      // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    config.regionId = 'cn-shanghai';
    config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
    return new facebody20191230.default(config);
  }

  static async main() {
    let client = Client.createClient();
    // ファイルをファイルストリームとして読み取ります。
    const filePath = '<FILE_PATH>';  // これを実際のファイルパスに置き換えてください。
    // ファイルが存在するかどうかを確認します。
    if (!fs.existsSync(filePath)) {
      console.error('File does not exist:', filePath);
      return;
    }
    // ストリームを作成し、ストリームエラーをリッスンします。
    const fileStream = fs.createReadStream(filePath).on('error', (err) => {
      console.error('Stream error:', err);
      process.exit(1);
    });
    // リクエストパラメーターを設定します。
    let detectBodyCountAdvanceRequest = new facebody20191230.DetectBodyCountAdvanceRequest({
      imageURLObject: fileStream,
    });
    let runtime = new Util.RuntimeOptions({});
    try {
      // リクエストを送信します。
      const res = await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);
      console.log(res);
    } catch (error) {
      // これはデモンストレーションのみを目的としています。 例外は慎重に処理してください。 プロジェクトで例外を無視しないでください。
      console.log(error);
    }
  }
}

exports.Client = Client;
Client.main();

よくある質問

  1. API 呼び出し時の "You are not authorized to perform this operation" エラー

    原因と解決策

    原因: AccessKey に関連付けられている RAM ユーザーに、API を呼び出すために必要な権限がありません。

    解決策: RAM ユーザーに必要な API 権限を付与してください。 「RAM ユーザー権限の管理」をご参照ください。

    たとえば、 または SendMessageToGlobe を呼び出すときにこのエラーが発生した場合は、次のカスタム権限ポリシーを作成して RAM ユーザーにアタッチできます。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "dysms:SendMessageToGlobe",
          "Resource": "*"
        }
      ]
    }
  2. "triggerUncaughtException Error: getaddrinfo ENOTFOUND" エラー (エンドポイントの問題)

    原因と解決策

    原因: 指定されたエンドポイントは、呼び出している OpenAPI オペレーションでサポートされていません。

    解決策: 「エンドポイントの設定」を使用してエンドポイントを修正し、再試行してください。

  3. "Cannot read properties of undefined (reading 'getCredential')" または "InvalidAccessKeyId.NotFound: code: 404" エラー

    原因と解決策

    原因: AccessKey が正しく渡されませんでした。

    解決策: クライアントの初期化中に AccessKey が正しく渡されていることを確認してください。 process.env("XXX") は、環境変数から XXX の値を読み取ります。

その他の一般的なエラーについては、「よくある質問」をご参照ください。