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

Resource Orchestration Service:ALIYUN::EDAS::Application

最終更新日:Jan 16, 2025

ALIYUN::EDAS::Application は、Enterprise Distributed Application Service(EDAS)の Elastic Compute Service(ECS)クラスターにアプリケーションを作成するために使用されます。

構文

{
  "Type": "ALIYUN::EDAS::Application",
  "Properties": {
    "ApplicationName": String,
    "HealthCheckURL": String,
    "Description": String,
    "ClusterId": String,
    "PackageType": String,
    "BuildPackId": Integer,
    "EcuInfo": String,
    "ComponentIds": String,
    "LogicalRegionId": String,
    "ResourceGroupId": String,
    "Deployment": Map
  }
}

プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

ApplicationName

String

はい

はい

アプリケーション名。

名前は 1 ~ 36 文字で、数字、文字、ハイフン(-)、アンダースコア(_)を含めることができます。名前は文字で始める必要があります。

HealthCheckURL

String

いいえ

いいえ

ヘルスチェック URL。

なし。

Description

String

いいえ

はい

アプリケーションの説明。

なし。

ClusterId

String

はい

いいえ

アプリケーションを作成する ECS クラスターの ID。このプロパティを空のままにすると、アプリケーションはデフォルトの ECS クラスターに作成されます。

なし。

PackageType

String

いいえ

いいえ

アプリケーションのデプロイメントパッケージのタイプ。

有効な値:

  • war

  • jar

ResourceGroupId

String

いいえ

はい

リソースグループの ID。

なし。

BuildPackId

Integer

いいえ

いいえ

EDAS Container のビルドパッケージ番号。

EDAS Container のビルドパッケージ番号を取得するには、ListBuildPack オペレーションを呼び出すか、「EDAS Container のリリースノート」トピックの [ビルドパッケージ番号] 列を参照してください。

High-Speed Service Framework(HSF)アプリケーションを作成する場合は、このプロパティを指定する必要があります。

EcuInfo

String

いいえ

いいえ

スケールアウトする Elastic Compute Unit(ECU)の ID。ECU の ID は、EDAS にインポートされた ECS インスタンスの一意の識別子を示します。

複数の ECU ID はカンマ(,)で区切ります。

ListScaleOutEcu オペレーションを呼び出して、ECU ID をクエリできます。

ComponentIds

String

いいえ

いいえ

アプリケーションコンポーネントの ID。

説明

EDAS SDK for Java または EDAS SDK for Python を使用する場合は、このプロパティを指定するときに SDK バージョンが V2.57.3 以降であることを確認してください。EDAS SDK を使用しない場合は、このプロパティを直接指定できます。たとえば、aliyun-python-sdk-core、aliyun-java-sdk-core、aliyun cli などの他のタイプの SDK を使用する場合は、このプロパティを直接指定できます。

WAR パッケージを使用して Apache Tomcat ランタイムに Dubbo アプリケーションを作成する場合、または JAR パッケージを使用して標準 Java ランタイムに Spring Boot または Spring Cloud アプリケーションを作成する場合は、このプロパティを指定する必要があります。有効な値:

  • 4: Apache Tomcat 7.0.91

  • 7: Apache Tomcat 8.5.42

  • 5: OpenJDK 1.8.x

  • 6: OpenJDK 1.7.x

LogicalRegionId

String

いいえ

いいえ

アプリケーションが属するマイクロサービス名前空間の ID。例:cn-beijing:prod

  • 指定したクラスターがデフォルトのマイクロサービス名前空間に属していない場合は、このプロパティを指定する必要があります。そうでない場合、application regionId is different with cluster regionId! というエラーメッセージが返されます。

  • 指定したクラスターがデフォルトのマイクロサービス名前空間に属している場合は、このプロパティを空のままにすることができます。

このプロパティの値は、クラスターが属するマイクロサービス名前空間の ID と同じである必要があります。マイクロサービス名前空間 ID を取得するには、次の操作を実行します。EDAS コンソールにログインします。[リソース管理] > [マイクロサービス名前空間] を選択します。表示されるページで、名前空間 ID を取得します。

Deployment

Map

いいえ

いいえ

アプリケーションに関するデプロイメント情報。

詳細については、「デプロイメントプロパティ」をご参照ください。

デプロイメント構文

"Deployment": {
  "ReleaseType": Integer,
  "Batch": Integer,
  "TrafficControlStrategy": String,
  "BatchWaitTime": Integer,
  "PackageVersion": String,
  "Desc": String,
  "Gray": Boolean,
  "WarUrl": String,
  "GroupId": String,
  "AppEnv": String
}

デプロイメントプロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

ReleaseType

Integer

いいえ

いいえ

アプリケーションのデプロイメントフェーズをトリガーするモード。

有効な値:

  • 0: システムが自動的に次のフェーズをトリガーします。

  • 1: 手動で次のフェーズをトリガーします。次のフェーズをトリガーするには、EDAS コンソールで 次のバッチに進むパイプラインの続行 をクリックするか、ContinuePipeline オペレーションを呼び出します。API オペレーションを呼び出してアプリケーションをデプロイする場合は、自動モードを選択することをお勧めします。詳細については、「」をご参照ください。

Batch

Integer

いいえ

いいえ

インスタンスグループごとのフェーズ数。

  • GroupId にインスタンスグループの ID を指定した場合、アプリケーションは指定されたインスタンスグループにデプロイされます。指定できる最小フェーズ数は 1 です。最大フェーズ数は、インスタンスグループ内の正常な ECS インスタンスの最大数です。実際の値は [1, 指定された数] の範囲内です。指定された数は、指定されたインスタンスグループ内の正常な ECS インスタンスの数と等しくなります。

  • GroupId を all に設定すると、アプリケーションはすべてのインスタンスグループにデプロイされます。指定できる最小フェーズ数は 1 です。最大フェーズ数は、正常な ECS インスタンス数が最も多いインスタンスグループ内の ECS インスタンスの数です。

TrafficControlStrategy

String

いいえ

いいえ

カナリアリリースポリシーの内容。

なし。

BatchWaitTime

Integer

いいえ

いいえ

フェーズ間の待機時間。

単位:分。

  • デフォルト値:0。値 0 は、フェーズ間に待機時間がないことを指定します。

  • 最大値:5。

多数のフェーズが存在する場合は、このプロパティに小さい値を指定することをお勧めします。そうでない場合、システムはアプリケーションのデプロイに長い時間がかかります。

PackageVersion

String

はい

いいえ

アプリケーションのデプロイメントパッケージのバージョン。

値は最大 64 文字までです。タイムスタンプを使用することをお勧めします。

Desc

String

いいえ

いいえ

アプリケーションデプロイメントの説明。

なし。

Gray

Boolean

いいえ

いいえ

アプリケーションにカナリアリリースを実装するかどうかを指定します。

有効な値:

  • true: アプリケーションにカナリアリリースを実装します。

    • カナリアリリースを実装する場合は、GroupId を指定する必要があります。この場合、GroupId はカナリアリリースのインスタンスグループの ID を指定します。

    • 1 つのフェーズでアプリケーションのカナリアリリースを実装できます。

    • このフェーズのカナリアリリースが完了すると、アプリケーションは通常モードでリリースされます。Batch プロパティはフェーズ数を指定します。

  • false: アプリケーションに単一フェーズリリースまたは段階的リリースを実装します。

WarUrl

String

はい

いいえ

アプリケーションのデプロイメントパッケージの URL。パッケージは WAR または JAR パッケージです。

DeployTypeurl に設定されている場合は、このプロパティを指定する必要があります。Object Storage Service(OSS)に保存されているアプリケーションデプロイメントパッケージの URL を指定することをお勧めします。

GroupId

String

いいえ

いいえ

アプリケーションをデプロイするインスタンスグループの ID。

なし。

AppEnv

String

いいえ

いいえ

アプリケーションの環境変数。

このプロパティの値を次の形式で指定します:{"name":"x","value":"y"},{"name":"x2","value":"y2"}keyname または value である必要があります。

戻り値

Fn::GetAtt

  • Port: アプリケーションのポート番号。デフォルト値:8080。

  • AppId: アプリケーション ID。アプリケーション ID は、EDAS アプリケーションを一意に識別します。

YAML 形式

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ClusterId:
    Type: String
    Description: ECS アプリケーションのクラスター ID
    Default: '****'
  RegionTag:
    Type: String
    Description: 文字と数字が許可されています
    Default: mytest
  ApplicationName:
    Type: String
    Default: mytest
Resources:
  App:
    Type: ALIYUN::EDAS::Application
    Properties:
      ApplicationName:
        Ref: ApplicationName
      LogicalRegionId:
        Fn::Join:
          - ':'
          - - Ref: ALIYUN::Region
            - Ref: RegionTag
      ClusterId:
        Ref: ClusterId
      PackageType: jar
Outputs:
  ClusterName:
    Value:
      Fn::GetAtt:
        - Cluster
        - ClusterName
  IaasProvider:
    Value:
      Fn::GetAtt:
        - Cluster
        - IaasProvider
  ClusterId:
    Value:
      Fn::GetAtt:
        - Cluster
        - ClusterId
  ClusterType:
    Value:
      Fn::GetAtt:
        - Cluster
        - ClusterType
  Port:
    Value:
      Fn::GetAtt:
        - App
        - Port
  AppId:
    Value:
      Fn::GetAtt:
        - App
        - AppId
  GroupName:
    Value:
      Fn::GetAtt:
        - DeployGroup
        - GroupName
  Id:
    Value:
      Fn::GetAtt:
        - DeployGroup
        - Id
  DeployGroupAppId:
    Value:
      Fn::GetAtt:
        - DeployGroup
        - AppId
  BelongRegion:
    Value:
      Fn::GetAtt:
        - LogicalRegion
        - BelongRegion
  DebugEnable:
    Value:
      Fn::GetAtt:
        - LogicalRegion
        - DebugEnable
  UserId:
    Value:
      Fn::GetAtt:
        - LogicalRegion
        - UserId
  LogicalRegionId:
    Value:
      Fn::GetAtt:
        - LogicalRegion
        - Id
  RegionName:
    Value:
      Fn::GetAtt:
        - LogicalRegion
        - RegionName

JSON 形式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "ClusterId": {
      "Type": "String",
      "Description": "ECS アプリケーションのクラスター ID",
      "Default": "****"
    },
    "RegionTag": {
      "Type": "String",
      "Description": "文字と数字が許可されています",
      "Default": "mytest"
    },
    "ApplicationName": {
      "Type": "String",
      "Default": "mytest"
    }
  },
  "Resources": {
    "App": {
      "Type": "ALIYUN::EDAS::Application",
      "Properties": {
        "ApplicationName": {
          "Ref": "ApplicationName"
        },
        "LogicalRegionId": {
          "Fn::Join": [
            ":",
            [
              {
                "Ref": "ALIYUN::Region"
              },
              {
                "Ref": "RegionTag"
              }
            ]
          ]
        },
        "ClusterId": {
          "Ref": "ClusterId"
        },
        "PackageType": "jar"
      }
    }
  },
  "Outputs": {
    "ClusterName": {
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "ClusterName"
        ]
      }
    },
    "IaasProvider": {
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "IaasProvider"
        ]
      }
    },
    "ClusterId": {
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "ClusterId"
        ]
      }
    },
    "ClusterType": {
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "ClusterType"
        ]
      }
    },
    "Port": {
      "Value": {
        "Fn::GetAtt": [
          "App",
          "Port"
        ]
      }
    },
    "AppId": {
      "Value": {
        "Fn::GetAtt": [
          "App",
          "AppId"
        ]
      }
    },
    "GroupName": {
      "Value": {
        "Fn::GetAtt": [
          "DeployGroup",
          "GroupName"
        ]
      }
    },
    "Id": {
      "Value": {
        "Fn::GetAtt": [
          "DeployGroup",
          "Id"
        ]
      }
    },
    "DeployGroupAppId": {
      "Value": {
        "Fn::GetAtt": [
          "DeployGroup",
          "AppId"
        ]
      }
    },
    "BelongRegion": {
      "Value": {
        "Fn::GetAtt": [
          "LogicalRegion",
          "BelongRegion"
        ]
      }
    },
    "DebugEnable": {
      "Value": {
        "Fn::GetAtt": [
          "LogicalRegion",
          "DebugEnable"
        ]
      }
    },
    "UserId": {
      "Value": {
        "Fn::GetAtt": [
          "LogicalRegion",
          "UserId"
        ]
      }
    },
    "LogicalRegionId": {
      "Value": {
        "Fn::GetAtt": [
          "LogicalRegion",
          "Id"
        ]
      }
    },
    "RegionName": {
      "Value": {
        "Fn::GetAtt": [
          "LogicalRegion",
          "RegionName"
        ]
      }
    }
  }
}