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

Resource Orchestration Service:ALIYUN::SLB::Rule

最終更新日:Jan 16, 2025

ALIYUN::SLB::Rule は、HTTP または HTTPS リスナーに転送ルールを追加するために使用されます。

構文

{
  "Type": "ALIYUN::SLB::Rule",
  "Properties": {
    "ListenerPort": Integer,
    "RuleList": List,
    "LoadBalancerId": String,
    "ListenerProtocol": String
  }
}

プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

ListenerPort

Integer

はい

いいえ

サーバーロードバランサー(SLB)インスタンスで使用されるフロントエンドリスナーポート。

有効な値:1 ~ 65535。

RuleList

List

はい

いいえ

リスナーに追加する転送ルール。

1 つの要求で最大 10 個の転送ルールを作成できます。

各転送ルールには、次のプロパティが含まれています。

  • RuleName

  • Domain

  • Url

  • VServerGroupId

Domain と URL の少なくとも 1 つを指定する必要があります。

説明

Domain と URL を組み合わせた値は、リスナー内で一意である必要があります。

LoadBalancerId

String

はい

いいえ

SLB インスタンスの ID。

なし。

ListenerProtocol

String

いいえ

いいえ

SLB インスタンスで使用されるフロントエンドプロトコル。

なし。

RuleList 構文

"RuleList": [
  {
    "Url": String,
    "Domain": String,
    "VServerGroupId": String,
    "RuleName": String,
    "AdvancedSettings": Map
  }
]

RuleList プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Url

String

いいえ

いいえ

転送ルールで指定するパス。

  • パスは 2 ~ 80 文字の長さでなければなりません。

  • パスはスラッシュ (/) で始まり、文字、数字、および次の特殊文字を含めることができます。

    - / . % ? # &

Domain

String

いいえ

いいえ

転送ルールに関連付けるリクエストドメイン名。

なし。

VServerGroupId

String

はい

いいえ

転送ルールに関連付ける vServer グループの ID。

なし。

RuleName

String

はい

いいえ

転送ルール名。

名前は 1 ~ 40 文字で、文字、数字、および次の特殊文字を含めることができます。

名前は 1 ~ 40 文字の長さで、文字、数字、および次の特殊文字を含めることができます : - / . _

転送ルール名は、リスナー内で一意である必要があります。

AdvancedSettings

Map

いいえ

いいえ

サーバーの詳細設定。

なし。

AdvancedSettings 構文

"AdvancedSettings": [{ 
  "Cookie": String,
  "StickySession": String,
  "HealthCheckConnectPort": Integer,
  "StickySessionType": String,
  "HealthCheckTimeout": Integer,
  "HealthCheck": String,
  "HealthCheckURI": String,
  "CookieTimeout": Integer,
  "HealthCheckHttpCode": String,
  "HealthyThreshold": Integer,
  "UnhealthyThreshold": Integer,
  "Scheduler": String,
  "HealthCheckDomain": String,
  "ListenerSync": String,
  "HealthCheckInterval": Integer 
}]

詳細設定プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Cookie

String

いいえ

いいえ

サーバーで設定されている Cookie。

名前は 1 ~ 200 文字の長さで、ASCII 文字と数字のみを含めることができます。カンマ (,)、セミコロン (;)、スペースを含めることはできず、ドル記号 ($) で始めることはできません。

StickySessionon に設定され、StickySessionTypeserver に設定されている場合は、このプロパティを指定する必要があります。

StickySession

String

いいえ

いいえ

セッション永続化を有効にするかどうかを指定します。

有効な値:

  • on:セッション永続化を有効にします。

  • off:セッション永続化を無効にします。

説明

ListenerSyncoff に設定されている場合は、このプロパティを指定する必要があります。 ListenerSync を on に設定すると、リスナーのセッション永続化設定が使用されます。

HealthCheckConnectPort

Integer

いいえ

いいえ

ヘルスチェックに使用するバックエンドポート。

有効な値:1 ~ 65535。

説明

このプロパティは、HealthCheckon に設定されている場合に有効になります。 HealthCheckConnectPort を空のままにして HealthCheckon に設定すると、リスナーのバックエンドポート設定が使用されます。

HealthCheck

String

いいえ

いいえ

ヘルスチェックを有効にするかどうかを指定します。

有効な値:

  • on:ヘルスチェックを有効にします。

  • off:ヘルスチェックを無効にします。

説明

このプロパティは、ListenerSyncoff に設定されている場合に有効になります。 ListenerSync を on に設定すると、リスナーのヘルスチェック設定が使用されます。

HealthCheckURI

String

いいえ

いいえ

ヘルスチェックに使用する Uniform Resource Identifier(URI)。

このプロパティは、HealthCheckon に設定されている場合に有効になります。

CookieTimeout

Integer

いいえ

いいえ

Cookie のタイムアウト期間。

有効な値:1 ~ 86400。単位:秒。

説明

StickySessionon に設定され、StickySessionTypeinsert に設定されている場合は、このプロパティを指定する必要があります。

HealthCheckHttpCode

String

いいえ

いいえ

正常なヘルスチェックの HTTP ステータスコード。

複数のステータスコードはカンマ (,) で区切ります。

有効な値:http_2xx、http_3xx、http_4xx、http_5xx。

説明

このプロパティは、HealthCheckon に設定されている場合に有効になります。

HealthyThreshold

Integer

いいえ

いいえ

異常なバックエンドサーバーが正常と宣言されるまでにヘルスチェックに連続して合格する必要がある回数。

この場合、ヘルスステータスは failed から successful に変わります。有効な値:210

説明

このプロパティは、HealthCheckon に設定されている場合に有効になります。

UnhealthyThreshold

Integer

いいえ

いいえ

正常なバックエンドサーバーが異常と宣言されるまでにヘルスチェックに連続して失敗する必要がある回数。

この場合、ヘルスステータスは successful から failed に変わります。有効な値:210

説明

このプロパティは、HealthCheckon に設定されている場合に有効になります。

Scheduler

String

いいえ

いいえ

スケジューリングアルゴリズム。

有効な値:

  • wrr(デフォルト):重みの大きいバックエンドサーバーは、重みの小さいバックエンドサーバーよりも多くのリクエストを受信します。

  • rr:リクエストはバックエンドサーバーに順番に配信されます。

説明

このプロパティは、ListenerSyncoff に設定されている場合に有効になります。 ListenerSync を on に設定すると、リスナーのスケジューリングアルゴリズム設定が使用されます。

HealthCheckDomain

String

いいえ

いいえ

ヘルスチェックに使用するドメイン名。

有効な値:

  • $_ip:バックエンドサーバーのプライベート IP アドレス。このプロパティを $_ip に設定するか、このプロパティを空のままにすると、SLB は各バックエンドサーバーのプライベート IP アドレスをヘルスチェックのドメイン名として使用します。

  • domain:ドメイン名。ドメイン名は 1 ~ 80 文字の長さで、文字、数字、ピリオド (.)、ハイフン (-) を含めることができます。

説明

このプロパティは、HealthCheckon に設定されている場合に有効になります。

ListenerSync

String

いいえ

いいえ

転送ルールがリスナーのスケジューリングアルゴリズム、セッション永続性、およびヘルスチェック設定を使用するかどうかを指定します。

有効な値:

  • off:転送ルールは、リスナーの先行設定を使用しません。転送ルールにカスタムヘルスチェックおよびセッション永続性設定を指定できます。

  • on:転送ルールは、リスナーの先行設定を使用します。

HealthCheckInterval

Integer

いいえ

いいえ

2 つの連続したヘルスチェックの間隔。

有効な値:150。単位:秒。

説明

このプロパティは、HealthCheckon に設定されている場合に有効になります。

HealthCheckTimeout

Integer

いいえ

いいえ

ヘルスチェック応答のタイムアウト期間。

バックエンドサーバー(Elastic Compute Service(ECS)インスタンスなど)が指定された時間内に応答を送信しない場合、ヘルスチェックは失敗します。単位:秒。有効な値:1 ~ 300。

StickySessionType

String

いいえ

いいえ

Cookie を処理するために使用するメソッド。

有効な値:

  • insert:Cookie を挿入します。

  • server:Cookie を書き換えます。

戻り値

Fn::GetAtt

Rules:転送ルールの詳細。

YAML 形式

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  Rule:
    Type: ALIYUN::SLB::Rule
    Properties:
      ListenerPort:
        Ref: ListenerPort
      RuleList:
        Fn::Split:
          - ','
          - Ref: RuleList
          - Ref: RuleList  # RuleList パラメータをカンマで分割します。
      LoadBalancerId:
        Ref: LoadBalancerId
Parameters:
  ListenerPort:
    Type: Number
    Description: |-
      サーバーロードバランサーインスタンスのフロントエンド HTTPS リスナーポート。有効な値:
      1-65535
    MaxValue: 65535
    MinValue: 1
  RuleList:
    MinLength: 1
    Type: CommaDelimitedList
    Description: 追加する転送ルール。
    MaxLength: 10
  LoadBalancerId:
    Type: String
    Description: サーバーロードバランサーインスタンスの ID。
Outputs:
  Rules:
    Description: 転送ルールの一覧。"RuleId" を含む rules の各要素。
    Value:
      Fn::GetAtt:
        - Rule
        - Rules

JSON 形式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "Rule": {
      "Type": "ALIYUN::SLB::Rule",
      "Properties": {
        "ListenerPort": {
          "Ref": "ListenerPort"
        },
        "RuleList": {
          "Fn::Split": [",", {  // RuleList パラメータをカンマで分割します。
            "Ref": "RuleList"
          }, {
            "Ref": "RuleList"
          }]
        },
        "LoadBalancerId": {
          "Ref": "LoadBalancerId"
        }
      }
    }
  },
  "Parameters": {
    "ListenerPort": {
      "Type": "Number",
      "Description": "サーバーロードバランサーインスタンスのフロントエンド HTTPS リスナーポート。有効な値:\n1-65535",
      "MaxValue": 65535,
      "MinValue": 1
    },
    "RuleList": {
      "MinLength": 1,
      "Type": "CommaDelimitedList",
      "Description": "追加する転送ルール。",
      "MaxLength": 10
    },
    "LoadBalancerId": {
      "Type": "String",
      "Description": "サーバーロードバランサーインスタンスの ID。"
    }
  },
  "Outputs": {
    "Rules": {
      "Description": "転送ルールの一覧。rules の各要素には \"RuleId\" が含まれます。",
      "Value": {
        "Fn::GetAtt": ["Rule", "Rules"]
      }
    }
  }
}