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

Resource Orchestration Service:ALIYUN::ALB::Rule

最終更新日:Dec 05, 2025

ALIYUN::ALB::Rule タイプは転送ルールを作成します。

構文

{
  "Type": "ALIYUN::ALB::Rule", // タイプ
  "Properties": { // プロパティ
    "RuleActions": List, // ルールアクション
    "Priority": Integer, // 優先度
    "RuleConditions": List, // ルール条件
    "Direction": String, // 方向
    "RuleName": String, // ルール名
    "ListenerId": String // リスナー ID
  }
}

プロパティ

プロパティ

タイプ

必須

更新の許可

説明

制約

ListenerId

String

はい

いいえ

Application Load Balancer (ALB) インスタンスのリスナーの ID。

なし

Priority

Integer

はい

はい

転送ルールの優先順位です。

有効値:1~10,000。値が小さいほど、優先度が高くなります。

説明

同じリスナー内の各転送ルールの優先度は一意である必要があります。

RuleActions

List

はい

はい

転送ルールのアクション。

詳細については、「RuleActions プロパティ」をご参照ください。

RuleConditions

List

はい

はい

転送ルールの条件。

詳細については、「RuleConditions プロパティ」をご参照ください。

RuleName

String

はい

はい

転送ルール名です。

名前は 2~128 文字である必要があります。先頭は英字または中国語文字にする必要があり、英字、中国語文字、数字、ピリオド (.)、アンダースコア (_)、ハイフン (-) を使用できます。

Direction

String

いいえ

いいえ

転送ルールの方向。

有効な値:

  • Request:ルールはリクエストに適用されます。

  • Response:レスポンス。

RuleActions 構文

"RuleActions": [
  {
    "Order": Integer, // 順序
    "FixedResponseConfig": Map, // 固定レスポンス設定
    "Type": String, // タイプ
    "RedirectConfig": Map, // リダイレクト設定
    "ForwardGroupConfig": Map, // 転送グループ設定
    "InsertHeaderConfig": Map, // ヘッダー挿入設定
    "RewriteConfig": Map, // リライト設定
    "TrafficMirrorConfig": Map, // トラフィックミラーリング設定
    "TrafficLimitConfig": Map, // トラフィック制限設定
    "RemoveHeaderConfig": Map, // ヘッダー削除設定
    "CorsConfig": Map // CORS 設定
  }
]

RuleActions プロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

Order

Integer

はい

はい

転送ルールのアクションが実行される順序。

有効値:1~50,000。アクションは値の昇順で実行されます。

説明

値は一意である必要があります。

Type

String

はい

はい

アクションタイプ。

有効な値:

  • ForwardGroup:リクエストを複数の vServer グループに転送します。

  • Redirect:リダイレクトを実行します。

  • FixedResponse:固定レスポンスを返します。

  • rewrite: 再書き込み。

  • InsertHeader:ヘッダーフィールドを挿入します。

CorsConfig

Map

いいえ

はい

クロスドメイン設定。

詳細については、「CorsConfig のプロパティ」をご参照ください。

FixedResponseConfig

Map

いいえ

はい

固定レスポンス設定。

詳細については、「FixedResponseConfig プロパティ」をご参照ください。

ForwardGroupConfig

Map

いいえ

はい

転送グループ設定。

詳細については、「ForwardGroupConfig プロパティ」をご参照ください。

InsertHeaderConfig

Map

いいえ

はい

ヘッダーフィールドを挿入するための設定。

詳細については、「InsertHeaderConfig プロパティ」をご参照ください。

RedirectConfig

Map

いいえ

はい

リダイレクト設定。

詳細については、「RedirectConfig プロパティ」をご参照ください。

RemoveHeaderConfig

Map

いいえ

はい

ヘッダーフィールドを削除するための設定。

詳細については、「RemoveHeaderConfig のプロパティ」をご参照ください。

RewriteConfig

Map

いいえ

はい

再書き込み設定。

詳細については、「RewriteConfig プロパティ」をご参照ください。

TrafficLimitConfig

Map

いいえ

はい

トラフィックスロットリング設定。

詳細については、「TrafficLimitConfig プロパティ」をご参照ください。

TrafficMirrorConfig

Map

いいえ

はい

トラフィックミラーリング設定。

詳細については、「TrafficMirrorConfig プロパティ」をご参照ください。

FixedResponseConfig 構文

"FixedResponseConfig": {
  "HttpCode": String,
  "ContentType": String,
  "Content": String
}

FixedResponseConfig のプロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

Content

String

いいえ

はい

固定レスポンスのコンテンツ。

コンテンツのサイズは最大 1 KB で、ASCII 文字で構成されている必要があります。

ContentType

String

いいえ

はい

固定レスポンスの形式。

有効な値:

  • text/plain

  • text/css

  • text/html

  • application/javascript

  • application/json

HttpCode

String

いいえ

はい

HTTP レスポンスコード。

有効値は、HTTP_2xx、HTTP_4xx、HTTP_5xx の形式の文字列です。x は任意の数字です。

RedirectConfig 構文

"RedirectConfig": {
  "Path": String, // パス
  "HttpCode": Integer, // HTTP コード
  "Query": String, // クエリ
  "Port": String, // ポート
  "Host": String, // ホスト
  "Protocol": String // プロトコル
}

RedirectConfig プロパティ

プロパティ

種類

必須

更新可能

説明

制約

ホスト

文字列

いいえ

はい

リクエストがリダイレクトされるホスト。

有効な値:

  • ${host} (デフォルト):この値は他の文字列と連結できません。

  • その他の値。値は次の要件を満たす必要があります:

    • ホスト名は 3~128 文字で、小文字、数字、ハイフン (-)、ピリオド (.)、アスタリスク (*)、疑問符 (?) を使用できます。

    • ホスト名には少なくとも 1 つのピリオド (.) を含める必要があります。ピリオドを先頭または末尾の文字にすることはできません。

    • 右端のドメインラベルには、英字とワイルドカード文字のみを含めることができます。数字やハイフン (-) を含めることはできません。

    • ハイフン (-) をドメインラベルの先頭または末尾の文字にすることはできません。

    • アスタリスク (*) または疑問符 (?) は、ドメインラベルの任意の位置に表示できます。

HttpCode

Integer

いいえ

はい

リダイレクトメソッド。

有効な値:

  • 301

  • 302

  • 303

  • 307

  • 308

パス

文字列

いいえ

はい

リクエストがリダイレクトされるパス。

有効な値:

  • ${path} (デフォルト):変数 ${host}、${protocol}、${port} を参照できます。各変数は最大 1 回出現させることができます。これらの変数を一緒に使用したり、サポートされている文字列と連結したりできます。

  • その他の値。値は次の要件を満たす必要があります:

    • パスは 1~128 文字である必要があります。

    • パスはスラッシュ (/) で始まり、英字、数字、アスタリスク (*)、疑問符 (?)、および次の特殊文字を含めることができます:$-_.+/&~@:。次の文字を含めることはできません:%#;!()[]^,"

    • 英字では大文字と小文字が区別されます。

ポート

文字列

いいえ

はい

リクエストがリダイレクトされるポートです。

有効な値:

  • ${port} (デフォルト):この値は他の文字列と使用できません。

  • その他の有効値:1~63335。

プロトコル

文字列

いいえ

はい

リクエストがリダイレクトされるプロトコル。

有効な値:

  • ${protocol} (デフォルト):この値は他の文字列と連結できません。

  • HTTP

  • HTTPS

    説明

    HTTPS リスナーは HTTPS へのリダイレクトのみをサポートします。

クエリ

文字列

いいえ

はい

リクエストがリダイレクトされるクエリ文字列。

有効な値:

  • ${query} (デフォルト):変数 ${host}、${protocol}、${port} を参照できます。各変数は最大 1 回出現させることができます。これらの変数を一緒に使用したり、以下の有効値リストからサポートされている文字列と連結したりできます。

  • その他の値。値は次の要件を満たす必要があります:

    • 文字列は 1~128 文字である必要があります。

    • スペースや次の特殊文字を含めることはできません:#[]{}\|<>&

    • 小文字のみを含めることができます。

ForwardGroupConfig 構文

"ForwardGroupConfig": {
  "ServerGroupTuples": List, // サーバーグループタプルのリスト
  "ServerGroupStickySession": Map // サーバーグループスティッキーセッションのマップ
}

ForwardGroupConfig のプロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

ServerGroupStickySession

Map

いいえ

はい

セッション維持設定。

詳細については、「ServerGroupStickySession プロパティ」をご参照ください。

ServerGroupTuples

List

いいえ

はい

宛先 vServer グループのリスト。

詳細については、「ServerGroupTuples のプロパティ」をご参照ください。

ServerGroupStickySession 構文

"ServerGroupStickySession": {
 // 有効かどうか
 "Enabled": Boolean,
 // タイムアウト時間(整数)
  "Timeout": Integer
}

ServerGroupStickySession プロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

Enabled

ブール値

いいえ

はい

セッション維持を有効にするかどうかを指定します。

有効な値:

  • true:セッション維持を有効にします。

  • false (デフォルト):セッション維持を無効にします。

Timeout

整数

いいえ

はい

タイムアウト期間。

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

ServerGroupTuples 構文

"ServerGroupTuples": [
  {
    "ServerGroupId": String
  }
]

ServerGroupTuples のプロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

ServerGroupId

String

はい

はい

宛先 vServer グループの ID。

なし

InsertHeaderConfig 構文

"InsertHeaderConfig": {
  // 値の型
  "ValueType": String,
  // 値
  "Value": String,
  // キー
  "Key": String
}

InsertHeaderConfig プロパティ

プロパティ

種類

必須

更新可能

説明

制約

キー

文字列

いいえ

はい

挿入するヘッダーフィールドの名前。

名前は 1~40 文字で、英字、数字、アンダースコア (_)、ハイフン (-) を使用できます。InsertHeaderConfig のヘッダー名は一意である必要があります。

説明

ヘッダー名には、次のいずれかの値 (大文字と小文字を区別しない) を設定することはできません:slb-id、slb-ip、x-forwarded-for、x-forwarded-proto、x-forwarded-eip、x-forwarded-port、x-forwarded-client-srcport、connection、upgrade、content-length、transfer-encoding、keep-alive、te、host、cookie、remoteip、authority。

文字列

いいえ

はい

挿入するヘッダーフィールドのコンテンツ。

有効な値:

  • ValueType が SystemDefined に設定されている場合:

    • ClientSrcPort:クライアントポート。

    • ClientSrcIp:クライアント IP アドレス。

    • Protocol:クライアントリクエストのプロトコル (HTTP または HTTPS)。

    • SLBId:ALB インスタンスの ID。

    • SLBPort:ALB インスタンスのリッスンポート。

  • ValueType が ReferenceHeader に設定されている場合:

    リクエストヘッダーのフィールドを参照できます。値は 1~128 文字で、小文字、数字、ハイフン (-)、アンダースコア (_) を使用できます。

値の型

文字列

いいえ

はい

ヘッダーフィールドのコンテンツのタイプ。

有効な値:

  • UserDefined:ユーザー定義のヘッダーフィールド。

  • ReferenceHeader:リクエストヘッダーのフィールドを参照するヘッダーフィールド。

  • SystemDefined:システム定義のヘッダーフィールド。

RewriteConfig 構文

"RewriteConfig": {
  "Path": String, // パス
  "Query": String, // クエリ
  "Host": String // ホスト
}

RewriteConfig プロパティ

プロパティ

タイプ

必須

更新の許可

説明

制約

Host

String

いいえ

はい

内部再書き込みの宛先ホスト。

有効な値:

  • ${host} (デフォルト):この値は他の文字列と連結できません。

  • その他の値。値は次の要件を満たす必要があります:

    • ホスト名は 3~128 文字で、小文字、数字、ハイフン (-)、ピリオド (.)、アスタリスク (*)、疑問符 (?) を使用できます。

    • ホスト名には少なくとも 1 つのピリオド (.) を含める必要があります。ピリオドを先頭または末尾の文字にすることはできません。

    • 右端のドメインラベルには、英字とワイルドカード文字のみを含めることができます。数字やハイフン (-) を含めることはできません。

    • ハイフン (-) をドメインラベルの先頭または末尾の文字にすることはできません。

    • アスタリスク (*) または疑問符 (?) は、ドメインラベルの任意の位置に表示できます。

Path

String

いいえ

はい

再書き込みするパス。

有効な値:

  • ${path} (デフォルト):変数 ${host}、${protocol}、${port} を参照できます。各変数は最大 1 回出現させることができます。これらの変数を一緒に使用したり、以下の有効値リストからサポートされている文字列と連結したりできます。

  • その他の値。値は次の要件を満たす必要があります:

    • パスは 1~128 文字である必要があります。

    • パスはスラッシュ (/) で始まり、英字、数字、アスタリスク (*)、疑問符 (?)、および次の特殊文字を含めることができます:$-_.+/&~@:。次の文字を含めることはできません:%#;!()[]^,"

    • 大文字と小文字を区別する英字を使用できます。

Query

String

いいえ

はい

内部再書き込みのクエリ文字列。

有効な値:

  • ${query} (デフォルト):変数 ${host}、${protocol}、${port} を参照できます。各変数は最大 1 回出現させることができます。これらの変数を一緒に使用したり、以下の有効値リストからサポートされている文字列と連結したりできます。

  • その他の値。値は次の要件を満たす必要があります:

    • 文字列は 1~128 文字である必要があります。

    • スペースや次の特殊文字を含めることはできません:#[]{}\|<>&

    • 小文字のみを含めることができます。

RuleConditions 構文

"RuleConditions": [
  {
    "MethodConfig": Map, // メソッド設定
    "PathConfig": Map, // パス設定
    "Type": String, // タイプ
    "QueryStringConfig": Map, // クエリ文字列設定
    "HostConfig": Map, // ホスト設定
    "CookieConfig": Map, // Cookie 設定
    "HeaderConfig": Map, // ヘッダー設定
    "SourceIpConfig": Map, // ソース IP 設定
    "ResponseStatusCodeConfig": Map, // レスポンスステータスコード設定
    "ResponseHeaderConfig": Map // レスポンスヘッダー設定
  }
]

RuleConditions プロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

Type

String

はい

はい

転送ルール条件のタイプ。

有効な値:

  • Host:ホスト

  • パス: パス

  • Header:HTTP ヘッダーフィールド

  • QueryString:クエリ文字列

  • Method:リクエストメソッド

  • Cookie:Cookie

CookieConfig

Map

いいえ

はい

Cookie 設定。

詳細については、「CookieConfig のプロパティ」をご参照ください。

HeaderConfig

Map

いいえ

はい

ヘッダーフィールド設定。

詳細については、「HeaderConfig プロパティ」をご参照ください。

HostConfig

Map

いいえ

はい

ホスト設定。

詳細については、「HostConfig のプロパティ」をご参照ください。

MethodConfig

Map

いいえ

はい

リクエストメソッド設定。

詳細については、「MethodConfig のプロパティ」をご参照ください。

PathConfig

Map

いいえ

はい

転送パス設定。

詳細については、「PathConfig のプロパティ」をご参照ください。

QueryStringConfig

Map

いいえ

はい

クエリ文字列設定。

詳細については、「QueryStringConfig のプロパティ」をご参照ください。

SourceIpConfig

Map

いいえ

はい

転送ルールの設定。

詳細については、「SourceIpConfig のプロパティ」をご参照ください。

ResponseStatusCodeConfig

Map

いいえ

はい

レスポンスステータスコード設定。

詳細については、「ResponseStatusCodeConfig のプロパティ」をご参照ください。

ResponseHeaderConfig

Map

いいえ

はい

レスポンスヘッダー条件設定。

詳細については、「ResponseHeaderConfig プロパティ」をご参照ください。

ResponseStatusCodeConfig の構文

"ResponseStatusCodeConfig": {
 "Values": List
}

ResponseStatusCodeConfig のプロパティ

プロパティ

種類

必須

更新可能

説明

制約

Values

リスト

いいえ

はい

レスポンスステータスコードのリスト。

なし。

ResponseHeaderConfig の構文

"ResponseHeaderConfig": {
  // キー
  "Key": String,
  // 値のリスト
  "Values": List
}

ResponseHeaderConfig プロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

Key

String

いいえ

はい

ヘッダーフィールドのキー。

  • キーは 1~40 文字である必要があります。

  • a~z の英字、数字、ハイフン (-)、アンダースコア (_) を使用できます。

  • Cookie および Host はサポートされていません。

Values

List

いいえ

はい

ヘッダーフィールドの値。

  • 値は 1~128 文字である必要があります。

  • ASCII 値が 32~126 の印刷可能文字、小文字、アスタリスク (*) および疑問符 (?) のワイルドカード文字を含めることができます。

  • 値の先頭または末尾にスペースを含めることはできません。

SourceIpConfig 構文

"SourceIpConfig": {
 "Values": List
}

SourceIpConfig のプロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

Values

リスト

いいえ

はい

1 つ以上の IP アドレスまたは CIDR ブロック。

転送ルールには最大 5 つの IP アドレスを含めることができます。

MethodConfig 構文

"MethodConfig": {
  "Values": List // 値のリスト
}

MethodConfig のプロパティ

プロパティ

必須

更新可能

説明

制約

Values

リスト

いいえ

はい

リクエストメソッド。

有効な値:

  • HEAD

  • GET

  • POST

  • OPTIONS

  • PUT

  • PATCH

  • DELETE

PathConfig 構文

"PathConfig": {
  "Values": List
}

PathConfig のプロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

Values

リスト

いいえ

はい

転送パス。

パスは 1~128 文字である必要があります。パスはスラッシュ (/) で始まり、英字、数字、アスタリスク (*)、疑問符 (?)、および次の特殊文字を含めることができます:$-_.+/&~@:。次の文字を含めることはできません:%#;!()[]^,"。パスでは大文字と小文字が区別されます。

QueryStringConfig 構文

"QueryStringConfig": {
  "Values": List
}

QueryStringConfig のプロパティ

プロパティ

必須

更新可能

説明

制約

Values

リスト

いいえ

はい

クエリ文字列。

なし

HostConfig 構文

"HostConfig": {
  "Values": List
}

HostConfig のプロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

Values

リスト

いいえ

はい

ホスト名。

値は次の要件を満たす必要があります:

  • 転送ルール条件には 1 つのホスト名のみを含めることができ、値を繰り返すことはできません。

  • ホスト名には少なくとも 1 つのピリオド (.) を含める必要があります。ピリオドを先頭または末尾の文字にすることはできません。

  • 右端のドメインラベルには、英字とワイルドカード文字のみを含めることができます。数字やハイフン (-) を含めることはできません。

  • ハイフン (-) をドメインラベルの先頭または末尾の文字にすることはできません。アスタリスク (*) または疑問符 (?) は、ドメインラベルの任意の位置に表示できます。

CookieConfig 構文

"CookieConfig": {
  "Values": List
}

CookieConfig のプロパティ

プロパティ

必須

更新可能

説明

制約

Values

リスト

いいえ

はい

Cookie 値のリスト。

なし

HeaderConfig 構文

"HeaderConfig": {
  "Values": List, // 値のリスト
  "Key": String // キーの文字列
}

HeaderConfig プロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

Key

String

いいえ

はい

ヘッダーフィールドのキー。

キーは 1~40 文字である必要があります。小文字、数字、ハイフン (-)、アンダースコア (_) を使用できます。Cookie と Host はサポートされていません。

Values

List

いいえ

はい

ヘッダーフィールドの値。

ヘッダーフィールドの値は、同じ転送ルール条件内で一意である必要があります。値は 1~128 文字で、ASCII 値が 32~126 の印刷可能文字、アスタリスク (*)、疑問符 (?) を含めることができます。値の先頭または末尾にスペースを含めることはできません。

TrafficMirrorConfig 構文

"TrafficMirrorConfig": {
 "MirrorGroupConfig": Map, // ミラーグループ設定
 "TargetType": String // ターゲットタイプ
}

TrafficMirrorConfig プロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

MirrorGroupConfig

マップ

いいえ

はい

vServer グループ設定。

詳細については、「MirrorGroupConfig のプロパティ」をご参照ください。

TargetType

文字列

いいえ

はい

ミラーリング先のタイプ。

有効な値:

  • ForwardGroupMirror:トラフィックを vServer グループにミラーリングします。

  • SlsMirror:トラフィックを Simple Log Service にミラーリングします。

MirrorGroupConfig 構文

"MirrorGroupConfig": {
 // ミラーグループ設定
 "ServerGroupTuples": List // サーバーグループタプル
}

MirrorGroupConfig のプロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

ServerGroupTuples

リスト

はい

はい

vServer グループのリスト。

なし

TrafficLimitConfig 構文

"TrafficLimitConfig": {
 "PerIpQps": Integer, // 1 IP あたりの QPS
  "QPS": Integer // QPS
}

TrafficLimitConfig プロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

PerIpQps

Integer

いいえ

はい

単一 IP アドレスの 1 秒あたりのクエリ数 (QPS)。

有効な値: 1 ~ 100000。

QPS

Integer

いいえ

はい

1 秒あたりの合計クエリ数 (QPS)。

有効な値: 1 ~ 100000。

説明

QPS と PerIpQps の両方を設定する場合、PerIpQps の値は QPS の値より小さくする必要があります。

RemoveHeaderConfig 構文

"RemoveHeaderConfig": {
 "Key": String // 削除するヘッダーのキー
}

RemoveHeaderConfig のプロパティ

プロパティ

必須

更新可能

説明

制約

Key

String

いいえ

はい

ヘッダーフィールドのキー。

なし

CorsConfig 構文

"CorsConfig": {
  "AllowMethods": List, // 許可されるメソッド
  "AllowHeaders": List, // 許可されるヘッダー
  "AllowOrigin": List, // 許可されるオリジン
  "MaxAge": Integer, // 最大経過時間
  "AllowCredentials": String, // 資格情報の許可
  "ExposeHeaders": List // 公開されるヘッダー
}

CorsConfig プロパティ

プロパティ

タイプ

必須

更新可能

説明

制約

AllowMethods

リスト

いいえ

はい

クロスドメインリクエストで許可される HTTP メソッド。

クロスドメインアクセスで許可される HTTP メソッド。有効値:

  • GET

  • POST

  • PUT

  • DELETE

  • HEAD

  • OPTIONS

  • PATCH

AllowHeaders

リスト

いいえ

はい

クロスドメインリクエストで許可されるヘッダーのリスト。

* ワイルドカード文字または 1 つ以上の値を指定します。複数の値をコンマ (,) で区切ります。各値には、大文字、小文字、数字を含めることができます。値の先頭または末尾にアンダースコア (_) またはハイフン (-) を使用することはできません。値の長さは最大 32 文字です。

AllowOrigin

リスト

いいえ

はい

許可されたオリジンのリスト。

1 つ以上の値、または * ワイルドカード文字のみを指定します。

  • 各値は http:// または https:// で始まり、その後に有効なドメイン名またはトップレベルのワイルドカードドメイン名が続く必要があります。例:http://*.test.abc.example.com

  • ポートを指定できます。有効なポート:165535

AllowCredentials

文字列

いいえ

はい

クレデンシャルを携帯するかどうかを指定します。

有効値:

  • on:はい。

  • off:いいえ。

ExposeHeaders

リスト

いいえ

はい

公開できるヘッダーのリスト。

* ワイルドカード文字または 1 つ以上の値を指定します。複数の値をコンマ (,) で区切ります。各値には、大文字、小文字、数字を含めることができます。値の先頭または末尾にアンダースコア (_) またはハイフン (-) を使用することはできません。値の長さは最大 32 文字です。

MaxAge

整数

いいえ

はい

ブラウザでのプリフライトリクエストの最大キャッシュ期間。

単位:秒。有効値:-1172800

戻り値

Fn::GetAtt

  • RuleId:転送ルールの ID。

  • ListenerId:リスナーの ID。

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ListenerId:
    Type: String
    Description: |-
      Application Load Balancer (ALB)
      インスタンスに設定されているリスナーの ID。
    Default: lsn-5tl4x9oav95yeb****
Resources:
  Rule:
    Type: ALIYUN::ALB::Rule
    Properties:
      RuleActions:
        - FixedResponseConfig:
            Content: dssacav
            ContentType: text/plain
            HttpCode: '200'
          ForwardGroupConfig:
            ServerGroupTuples:
              - ServerGroupId: sgp-46ndzg2wz4v5mp****
          InsertHeaderConfig:
            Key: key
            Value: ClientSrcPort
            ValueType: SystemDefined
          Order: 1
          RedirectConfig:
            Host: ${host}
            HttpCode: '301'
            Path: /test
            Port: '10'
            Protocol: HTTP
            Query: quert
          RewriteConfig:
            Host: example.com
            Path: /tsdf
            Query: quedsa
          Type: ForwardGroup
      Priority: 10
      RuleConditions:
        - CookieConfig:
            Values:
              - Key: test
                Value: test
          HeaderConfig:
            Key: port
            Values:
              - '5006'
          HostConfig:
            Values:
              - www.example.com
          MethodConfig:
            Values:
              - PUT
          PathConfig:
            Values:
              - /test
          QueryStringConfig:
            Values:
              - Key: test
                Value: test
          Type: Host
      RuleName: MyTestRule
      ListenerId:
        Ref: ListenerId
Outputs:
  RuleId:
    Description: 転送ルールの ID。
    Value:
      Fn::GetAtt:
        - Rule
        - RuleId                
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "ListenerId": {
      "Type": "String",
      "Description": "Application Load Balancer (ALB)\nインスタンスに設定されているリスナーの ID。",
      "Default": "lsn-5tl4x9oav95yeb****"
    }
  },
  "Resources": {
    "Rule": {
      "Type": "ALIYUN::ALB::Rule",
      "Properties": {
        "RuleActions": [
          {
            "FixedResponseConfig": {
              "Content": "dssacav",
              "ContentType": "text/plain",
              "HttpCode": "200"
            },
            "ForwardGroupConfig": {
              "ServerGroupTuples": [
                {
                  "ServerGroupId": "sgp-46ndzg2wz4v5mp****"
                }
              ]
            },
            "InsertHeaderConfig": {
              "Key": "key",
              "Value": "ClientSrcPort",
              "ValueType": "SystemDefined"
            },
            "Order": 1,
            "RedirectConfig": {
              "Host": "${host}",
              "HttpCode": "301",
              "Path": "/test",
              "Port": "10",
              "Protocol": "HTTP",
              "Query": "quert"
            },
            "RewriteConfig": {
              "Host": "example.com",
              "Path": "/tsdf",
              "Query": "quedsa"
            },
            "Type": "ForwardGroup"
          }
        ],
        "Priority": 10,
        "RuleConditions": [
          {
            "CookieConfig": {
              "Values": [
                {
                  "Key": "test",
                  "Value": "test"
                }
              ]
            },
            "HeaderConfig": {
              "Key": "port",
              "Values": [
                "5006"
              ]
            },
            "HostConfig": {
              "Values": [
                "www.example.com"
              ]
            },
            "MethodConfig": {
              "Values": [
                "PUT"
              ]
            },
            "PathConfig": {
              "Values": [
                "/test"
              ]
            },
            "QueryStringConfig": {
              "Values": [
                {
                  "Key": "test",
                  "Value": "test"
                }
              ]
            },
            "Type": "Host"
          }
        ],
        "RuleName": "MyTestRule",
        "ListenerId": {
          "Ref": "ListenerId"
        }
      }
    }
  },
  "Outputs": {
    "RuleId": {
      "Description": "転送ルールの ID。",
      "Value": {
        "Fn::GetAtt": [
          "Rule",
          "RuleId"
        ]
      }
    }
  }
}