次の方法で共有


Azure SQL Edge のデプロイ

重要

Azure SQL Edge は、2025 年 9 月 30 日に廃止される予定です。 詳細と移行オプションについては、「廃止に関する通知」を参照してください。

Note

Azure SQL Edge では、ARM64 プラットフォームがサポートされなくなりました。

Azure SQL Edge は、IoT および Azure IoT Edge のデプロイ向けに最適化されたリレーショナル データベース エンジンです。 これは、IoT のアプリケーションおよびソリューションに向けて、パフォーマンスの高いデータ ストレージと処理レイヤーを作成する機能を提供します。 このクイックスタートでは、Azure portal を使用して Azure IoT Edge を介して Azure SQL Edge モジュールの作成を開始する方法を示します。

開始する前に

Note

Azure Linux VM を IoT Edge デバイスとしてデプロイする場合は、こちらのクイックスタート ガイドを参照してください。

IoT Hub を使用して Azure SQL Edge モジュールをデプロイする

Azure SQL Edge は、「Azure portal からモジュールをデプロイする」にある手順に従ってデプロイできます。 Azure SQL Edge のイメージ URI は mcr.microsoft.com/azure-sql-edge:latest です。

  1. [IoT Edge モジュールの追加] ページで、"IoT Edge モジュール名"、"イメージ URI"、"再起動ポリシー"、"目的の状態" に目的の値を指定します。

    デプロイするエディションに応じて、次のイメージ URI を使用します。

    • "Developer エディション" - mcr.microsoft.com/azure-sql-edge/developer
    • "Premium エディション" - mcr.microsoft.com/azure-sql-edge/premium
  2. [IoT Edge モジュールの追加] ページの "環境変数" セクションで、環境変数に必要な値を指定します。 Azure SQL Edge 環境変数の詳細な一覧については、「環境変数を使用して構成する」を参照してください。

    パラメーター 説明
    ACCEPT_EULA 使用許諾契約に同意するには、この値を Y に設定します
    MSSQL_SA_PASSWORD SQL Edge 管理者アカウント用の強力なパスワードを指定するには、この値を設定します。
    MSSQL_LCID SQL Edge に使用する目的の言語 ID を設定するには、この値を設定します。 たとえば、1036 はフランス語です。
    MSSQL_COLLATION SQL Edge の既定の照合順序を設定するには、この値を設定します。 この設定は、照合順序に対する言語 ID (LCID) の既定のマッピングをオーバーライドします。
  3. [IoT Edge モジュールの追加] ページの "コンテナー作成オプション" セクションで、要件に従ってオプションを設定します。

    • ホスト ポート

      指定したホスト ポートをコンテナーのポート 1433 (既定の SQL ポート) にマップします。

    • バインドマウント

      複数の SQL Edge モジュールをデプロイする必要がある場合は、必ずマウントオプションを更新して、永続的なボリューム用の新しいソースとターゲットのペアを作成してください。 マウントとボリュームについて詳しくは、Docker ドキュメントのボリュームの使用に関するページをご覧ください。

    {
        "HostConfig": {
            "CapAdd": [
                "SYS_PTRACE"
            ],
            "Binds": [
                "sqlvolume:/sqlvolume"
            ],
            "PortBindings": {
                "1433/tcp": [
                    {
                        "HostPort": "1433"
                    }
                ]
            },
            "Mounts": [
                {
                    "Type": "volume",
                    "Source": "sqlvolume",
                    "Target": "/var/opt/mssql"
                }
            ]
        },
        "Env": [
            "MSSQL_AGENT_ENABLED=TRUE",
            "ClientTransportType=AMQP_TCP_Only",
            "PlanId=asde-developer-on-iot-edge"
        ]
    }
    

    重要

    インストールされているエディションに基づいて、PlanId 環境変数を設定します。

    • "Developer エディション" - asde-developer-on-iot-edge
    • "Premium エディション" - asde-premium-on-iot-edge

    この値が正しく設定されていない場合、Azure SQL Edge コンテナーの起動に失敗します。

    警告

    モジュールを再インストールする場合は、まず既存のバインディングを削除してください。そうでないと、環境変数が更新されません。

  4. [IoT Edge モジュールの追加] ページで、[追加] を選びます。

  5. デプロイのルートを定義する必要がある場合は、[デバイスのモジュールを設定してください] ページで [次へ: ルート >] を選択します。 それ以外の場合は、[確認と作成] を選択します。 ルートの構成の詳細については、モジュールのデプロイと IoT Edge へのルートの確立に関する記事をご覧ください。

  6. [デバイスのモジュールを設定してください] ページで [作成] を選択します。

Azure SQL Edge に接続する

次の手順では Azure SQL Edge に接続するためにコンテナー内で Azure SQL Edge コマンド ライン ツールである sqlcmd を使用します。

Note

SQL Server コマンド ライン ツール (sqlcmd を含む) は、ARM64 バージョンの Azure SQL Edge コンテナー内では使用できません。

  1. 実行中のコンテナー内で対話型の Bash シェルを開始するには、docker exec -it コマンドを使用します。 次の例の AzureSQLEdge は、IoT Edge モジュールの Name パラメーターで指定されている名前です。

    sudo docker exec -it AzureSQLEdge "bash"
    
  2. コンテナー内では sqlcmd とローカル接続してください。 既定では sqlcmd はパスにないため、完全なパスを指定する必要があります。

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
    

    ヒント

    コマンド ラインでパスワードを省略すると、入力を求められます。

  3. 成功すると、sqlcmd コマンド プロンプト 1> が表示されます。

データの作成とクエリ

後続のセクションでは sqlcmd と Transact-SQL to を使用し、新しいデータベースを作成し、データを追加し、クエリを実行します。

新しいデータベースの作成

次の手順では、TestDB という名前の新しいデータベースを作成します。

  1. sqlcmd のコマンド プロンプトに次の Transact-SQL コマンドを貼り付け、テスト データベースを作成します。

    CREATE DATABASE TestDB;
    GO
    
  2. 次の行に、サーバー上のすべてのデータベースの名前を返すクエリを記述します。

    SELECT name from sys.databases;
    GO
    

データの挿入

次に、Inventory という新しいテーブルを作成し、2 つの新しい行を挿入します。

  1. sqlcmd のコマンド プロンプトで、コンテキストを新しい TestDB データベースに切り替えます。

    USE TestDB;
    
  2. Inventory という名前の新しいテーブルを作成します。

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. 新しいテーブルにデータを挿入します。

    INSERT INTO Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO Inventory
    VALUES (2, 'orange', 154);
    
  4. GO」と入力して前のコマンドを実行します。

    GO
    

データの選択

ここで、Inventory テーブルからデータを返すクエリを実行します。

  1. sqlcmd のコマンド プロンプトで、数量が 152 より大きいInventory テーブルから行を返すクエリを入力します。

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. 次のコマンドを実行します。

    GO
    

sqlcmd コマンド プロンプトの終了

  1. sqlcmd セッションを終了するには、「QUIT」と入力します。

    QUIT
    
  2. コンテナー内で対話型のコマンド プロンプトを終了するには、exit と入力します。 コンテナーは、対話型の Bash シェルを終了した後も引き続き実行されます。

コンテナーの外からの接続

SQL 接続をサポートしている外部の Linux、Windows、または macOS ツールから、Azure SQL Edge インスタンスに対して SQL クエリを接続して実行することができます。 外部から SQL Edge コンテナーへの接続に関する詳細については、「Azure SQL Edge の接続とクエリ」を参照してください。

このクイックスタートでは、SQL Edge モジュールを IoT Edge デバイスにデプロイしました。