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

Serverless App Engine:アプリケーション構成の管理

最終更新日:Jun 14, 2025

このトピックでは、オンプレミス環境でデモ Spring Cloud アプリケーションを開発およびテストする方法、Spring Cloud Alibaba Nacos Config を使用してアプリケーションの構成を管理する方法、および Serverless App Engine (SAE) を使用して構成を管理およびプッシュする方法について説明します。

前提条件

アプリケーションを開発する前に、以下の操作が実行されていることを確認してください。

  • Maven をダウンロードし、環境変数を構成します。

  • Nacos Server を起動します。

    1. Nacos Server パッケージをダウンロードして解凍します。

    2. nacos/bin ディレクトリに移動し、Nacos Server を起動します。

      • Linux、UNIX、または macOS:sudo sh startup.sh -m standalone コマンドを実行します。

      • Windows:startup.cmd -m standalone コマンドを実行します。

      説明

      standalone は、startup.cmd ファイルがクラスタモードではなくスタンドアロンモードで実行されることを示します。デフォルトでは、startup.cmd ファイルはクラスタモードで起動されます。Windows システムで startup.cmd ファイルをダブルクリックして実行すると、起動に失敗します。この場合、startup.cmd ファイルで MODE="standalone" を構成する必要があります。詳細については、「Quick Start for Nacos」をご参照ください。

  • オンプレミスの Nacos Server コンソールで構成を作成します。

    1. オンプレミスサーバーの Nacos Server コンソール にログオンします。デフォルトのユーザー名とパスワードは nacos です。

    2. 左側のナビゲーションウィンドウで、[構成] をクリックします。[構成] ページで、右上隅にある Add Icon アイコンをクリックします。

    3. [構成の作成] ページで、次のパラメーターを構成し、[公開] をクリックします。

      • データ ID: nacos-config-example.properties

      • グループ: DEFAULT_GROUP

      • 構成コンテンツ: test.name=nacos-config-test

背景

Spring Cloud アプリケーションを開発する際に、Nacos を使用してアプリケーションの構成を管理できます。SAE は、アプリケーション構成管理 (ACM) のオープンソース Nacos と統合されています。SAE にアプリケーションをデプロイした後、SAE を使用してアプリケーションの構成を管理およびプッシュできます。

この例では、デモ Spring Cloud アプリケーションが開発され、Spring Cloud Alibaba Nacos Config を使用してアプリケーションの構成が管理されます。nacos-config-example.zip をクリックして、デモアプリケーションをダウンロードできます。

説明

Spring Cloud Alibaba Nacos Config は、Nacos フレームワークと Spring Cloud フレームワークを統合し、Spring Cloud の構成インジェクション仕様をサポートしています。

ステップ 1: Nacos Config を使用してアプリケーション構成を管理する

  1. nacos-config-example という名前の Maven プロジェクトを作成します。

  2. pom.xml ファイルに依存関係を追加します。

    この例では、Spring Boot 2.1.4.RELEASE と Spring Cloud Greenwich.SR1 が使用されています。

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/>
    </parent>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>
    </dependencies>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>                        

    この例では、Spring Cloud Greenwich が使用されています。Spring Cloud Greenwich の Spring Cloud Alibaba のバージョンは 2.1.1.RELEASE です。

    • Spring Cloud Finchley の Spring Cloud Alibaba のバージョンは 2.0.1.RELEASE です。

    • Spring Cloud Edgware の Spring Cloud Alibaba のバージョンは 1.5.1.RELEASE です。

    説明

    Spring Cloud Edgware は廃止されました。Spring Cloud Edgware を使用してアプリケーションを開発しないことをお勧めします。

  3. src\main\javacom.aliware.edas パッケージを作成します。

  4. com.aliware.edas パッケージに、nacos-config-example プロジェクトの NacosConfigExampleApplication 起動クラスを作成します。

        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
    
        @SpringBootApplication
        public class NacosConfigExampleApplication {
            public static void main(String[] args) {
                SpringApplication.run(NacosConfigExampleApplication.class, args);
            }
        }                        
  5. com.aliware.edas パッケージに、シンプルな EchoController コントローラーを作成します。userName プロパティは自動的に挿入されます。次に、@Value アノテーションを追加して、構成から test.name キーの値を取得します。

        import org.springframework.beans.factory.annotation.Value;
        import org.springframework.cloud.context.config.annotation.RefreshScope;
        import org.springframework.web.bind.annotation.RequestMapping;
        import org.springframework.web.bind.annotation.RestController;
    
        @RestController
        @RefreshScope
        public class EchoController {
    
            @Value("${test.name}")
            private String userName;
    
            @RequestMapping(value = "/")
            public String echo() {
                return userName;
            }
        }                        
  6. src\main\resources ディレクトリに、bootstrap.properties 構成ファイルを作成します。bootstrap.properties ファイルに、次の構成項目を追加して、Nacos Server のアドレスを指定します。

    次の構成項目では、127.0.0.1:8848 は Nacos Server のアドレス、18081 はサービスポートです。

    Nacos Server が別のマシンにデプロイされている場合は、IP アドレスとポートを関連するものに変更します。その他の要件がある場合は、bootstrap.properties ファイルに関連する構成項目を追加します。詳細については、「参照用の構成項目」をご参照ください。

     spring.application.name=nacos-config-example
     server.port=18081
     spring.cloud.nacos.config.server-addr=127.0.0.1:8848                        
  7. NacosConfigExampleApplication クラスの main 関数を実行して、アプリケーションを起動します。

ステップ 2: SAE にアプリケーションをデプロイする

オンプレミス環境でアプリケーションを開発およびテストした後、SAE にアプリケーションをデプロイできます。詳細については、「アプリケーションのデプロイ」をご参照ください。

  • SAE の構成管理センターは、Nacos Server の公式商用版を提供します。SAE にアプリケーションをデプロイすると、SAE は、Nacos Server の IP アドレスとサービスポート、名前空間アクセスキーシークレットキー、および コンテキストパス をより高い優先度で指定します。追加設定を行う必要はありません。元の構成は保持または削除できます。

  • SAEコンソール で初めてアプリケーションをデプロイする場合は、アプリケーションの作成時に [JAR パッケージによるデプロイ] を選択した場合、[アプリケーションランタイム環境] パラメーターを [標準 Java アプリケーションランタイム環境] に設定する必要があります。

    t5edYO3jaM

アプリケーションをデプロイする前に、SAE の構成管理機能を使用して、オンプレミス Nacos Server と同じアプリケーション構成を作成します。

  1. SAE コンソール にログオンします。左側のナビゲーションウィンドウで、[名前空間] をクリックし、トップメニューバーでリージョンを選択します。

  2. [名前空間] ページで、目的の名前空間の名前をクリックします。

  3. 表示されるページで、左側のナビゲーションウィンドウの [分散構成管理] > 構成 を選択します。[構成] ページで、[構成の作成] をクリックします。

  4. 表示される [構成の作成] パネルで、パラメーターを構成し、[作成] をクリックします。次の表にパラメーターを示します。

    パラメーター

    説明

    データ ID

    構成の ID。この例では、nacos-config-example.properties が指定されています。

    ID がグローバルに一意であることを保証するために、package.class 命名規則に従う形式で ID を指定します。例: com.taobao.tc.refund.log.levelclass パラメーターには、ビジネス上の意味を持つ構成名を設定することをお勧めします。

    グループ

    構成グループの名前。この例では、DEFAULT_GROUP が使用されています。

    グループ名がグローバルに一意であることを保証するために、製品名:モジュール名 の形式でグループ名を指定することをお勧めします。例: ACM:Test。グループ別に認証を実行できます。

    データの暗号化

    構成データを暗号化するかどうかを指定します。構成に機密データが含まれている場合は、機密データの漏洩を防ぐために、データ暗号化機能を有効にすることをお勧めします。

    重要

    データ暗号化機能を有効にする前に、Key Management Service (KMS) をアクティブ化し、ACM にデータの暗号化と復号に KMS を使用する権限を付与する必要があります。ACM のデータ暗号化機能は KMS に依存しています。KMS をアクティブ化し、必要な権限を ACM に付与する必要があります。暗号化された構成のデータ ID は、cipher- で始まります。詳細については、「暗号化された構成ファイルの作成と使用」をご参照ください。

    構成フォーマット

    構成コンテンツのフォーマット。この例では、[テキスト] が選択されています。

    構成コンテンツ

    構成コンテンツ。この例では、test.name=nacos-config-test が指定されています。

    構成の説明

    構成の説明。

    その他の構成

    アプリケーション

    構成が属するアプリケーションの名前。

    ラベル

    ラベル。ラベル別に構成を管理できます。最大 5 つのラベルを追加できます。

ステップ 3: 結果を確認する

アプリケーションをデプロイした後、関連するログを表示して、アプリケーションが起動されているかどうかを確認できます。

  1. curl http://<アプリケーションインスタンス IP>:<サービスポート> コマンドを実行します。

    たとえば、curl http://192.168.0.34:8080 コマンドを実行して、構成コンテンツ nacos-config-test が返されるかどうかを確認できます。

  2. SAEコンソール にログオンし、元の構成コンテンツを nacos-config-test2 に変更してから、curl http://<アプリケーションインスタンス IP>:<サービスポート> コマンド を実行します。

    たとえば、curl http://192.168.0.34:8080 コマンドを実行して、新しい構成コンテンツ nacos-config-test2 が返されるかどうかを確認できます。

参照用の設定項目

その他の要件がある場合は、次の表を参照して、bootstrap.properties ファイルに設定項目を追加できます。

設定項目

キー

デフォルト値

説明

[サーバーアドレス]

spring.cloud.nacos.config.server-addr

なし

なし。

[データ ID プレフィックス]

spring.cloud.nacos.config.prefix

${spring.application.name}

データ ID のプレフィックス。

[グループ]

spring.cloud.nacos.config.group

DEFAULT_GROUP

グループ。

[データ ID サフィックスと設定ファイル形式]

spring.cloud.nacos.config.file-extension

properties

データ ID のサフィックス。この設定項目では、設定ファイルの形式も指定します。デフォルト値は properties です。 YAML および YML 形式がサポートされています。

[設定コンテンツのエンコード方式]

spring.cloud.nacos.config.encode

UTF-8

設定コンテンツのエンコード方式。

[設定を取得するためのタイムアウト期間]

spring.cloud.nacos.config.timeout

3000

単位:ミリ秒。

[設定の名前空間]

spring.cloud.nacos.config.namespace

名前空間は、異なる環境における設定を分離するために広く使用されています。たとえば、名前空間を使用して、開発環境、テスト環境、本番環境のリソースを分離できます。

[相対パス]

spring.cloud.nacos.config.context-path

サーバー API の相対パス。

[エンドポイント]

spring.cloud.nacos.config.endpoint

UTF-8

リージョン内のサービスのエンドポイント。エンドポイントに基づいてサーバーアドレスを動的に取得できます。

[リスナーと自動更新を有効にする]

spring.cloud.nacos.config.refresh.enabled

true

デフォルト値は true です。この設定項目を変更する必要はありません。

設定項目の詳細については、オープンソースのSpring Cloud Alibaba Nacos Config ドキュメントをご参照ください。