ALIYUN::GA::ForwardingRules は、転送ルールを作成するために使用されます。
構文
{
"Type": "ALIYUN::GA::ForwardingRules",
"Properties": {
"AcceleratorId": String,
"ForwardingRules": List,
"ListenerId": String
}
}プロパティ
プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
AcceleratorId | String | はい | いいえ | Global Accelerator (GA) インスタンスの ID。 | なし。 |
ForwardingRules | List | はい | いいえ | 転送ルールの構成。 | 詳細については、このトピックの「ForwardingRules プロパティ」セクションをご参照ください。 |
ListenerId | String | はい | いいえ | リスナー ID。 | なし。 |
ForwardingRules 構文
"ForwardingRules": [
{
"RuleActions": List,
"Priority": Integer,
"ForwardingRuleName": String,
"RuleConditions": List,
"RuleDirection": String
}
]ForwardingRules プロパティ
プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
RuleActions | List | はい | いいえ | 転送アクションの構成。 | 詳細については、このトピックの「RuleActions プロパティ」セクションをご参照ください。 |
RuleConditions | List | はい | いいえ | 転送条件の構成。 | 詳細については、このトピックの「RuleConditions プロパティ」セクションをご参照ください。 |
ForwardingRuleName | String | いいえ | いいえ | 転送ルール名。 | 名前は 2 ~ 128 文字で、英字、数字、ピリオド(.)、アンダースコア(_)、ハイフン(-)を含めることができます。英字で始める必要があります。 |
Priority | Integer | いいえ | いいえ | 転送ルールの優先順位。 | 有効値: 1 ~ 10000。値が小さいほど、優先順位が高くなります。 |
RuleDirection | String | いいえ | いいえ | 転送ルールが有効になる方向。 | デフォルトでは、このプロパティは request に設定されています。 request の値は、転送ルールがリクエストに有効であることを指定します。 |
RuleActions 構文
"RuleActions": [
{
"RuleActionType": String,
"Order": Integer,
"RuleActionValue": String
}
]RuleActions プロパティ
プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
Order | Integer | はい | いいえ | 転送の優先順位。 | なし。 |
RuleActionType | String | はい | いいえ | 転送アクションのタイプ。 | 有効値:
|
RuleActionValue | String | いいえ | いいえ | 転送アクションの値。 | RuleActionType の値に基づいて異なる JSON 文字列を指定する必要があります。 転送ルールには、タイプが ForwardGroup、Redirect、または FixResponse の転送アクションを 1 つだけ含めることができます。タイプが ForwardGroup の転送アクションの前に、タイプが Rewrite、AddHeader、または RemoveHeader の転送アクションを指定する必要があります。
|
RuleConditions 構文
"RuleConditions": [
{
"RuleConditionType": String,
"RuleConditionValue": String
}
]RuleConditions プロパティ
プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
RuleConditionType | String | いいえ | いいえ | 転送条件のタイプ。 | 有効値:
|
RuleConditionValue | String | いいえ | いいえ | 転送条件の値。 | RuleConditionType の値に基づいて異なる JSON 文字列を指定する必要があります。
|
戻り値
Fn::GetAtt
ForwardingRuleIds: 転送ルールの ID。
例
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
AcceleratorId:
Type: String
Description:
ja: GA インスタンスの ID。
Required: true
ForwardingRules:
AssociationPropertyMetadata:
Parameter:
AssociationPropertyMetadata:
Parameters:
RuleActions:
AssociationPropertyMetadata:
Parameters:
RuleActionType:
Type: String
Description:
ja: |
転送アクションのタイプ。有効値:
* ForwardGroup: リクエストを転送します。
* Redirect: リクエストをリダイレクトします。
* FixResponse: 固定レスポンスを返します。
* Rewrite: リクエストを書き換えます。
* AddHeader: リクエストにヘッダーを追加します。
* RemoveHeaderConfig: リクエストからヘッダーを削除します。
AllowedValues:
- ForwardGroup
- Redirect
- FixResponseRewrite
- AddHeaderRemoveHeaderConfig
Required: true
Order:
Type: Number
Description:
ja: 転送の優先順位。
Required: true
RuleActionValue:
Type: String
Description:
ja: |-
転送アクションタイプの値。RuleActionType パラメーターに基づいて異なる JSON 文字列を指定する必要があります。転送ルールには、タイプが ForwardGroup、Redirect、または FixResponse の転送アクションを 1 つだけ含めることができます。タイプが ForwardGroup の転送アクションの前に、タイプが Rewrite、AddHeader、または RemoveHeader の転送アクションを指定する必要があります。
* RuleActionType が ForwardGroup に設定されている場合、このパラメーターは仮想エンドポイントグループの情報を指定します。リクエストは 1 つの仮想エンドポイントグループにのみ転送できます。例: {"type":"endpointgroup", "value":"epg-bp1enpdcrqhl78g6r****"}。
* type: このパラメーターを endpointgroup に設定します。
* value: このパラメーターを仮想エンドポイントグループの ID に設定します。
* RuleActionType が Redirect に設定されている場合、このパラメーターはリダイレクト構成を指定します。タイプが Redirect の転送アクションの場合、次のすべてのパラメーターを空にするか、これらのすべてのパラメーターをデフォルト値を使用するように構成することはできません: protocol、domain、port、path、query。例: {"protocol":"HTTP", "domain":"www.example.com", "port":"80", "path":"/a","query":"value1", "code":"301" }。
* protocol: リクエストがリダイレクトされた後のリクエストのプロトコル。有効値: ${protocol} (デフォルト)、HTTP、HTTPS。
* domain: リクエストのリダイレクト先ドメイン名。デフォルト値: ${host}。ドメイン名を入力することもできます。ドメイン名は 3 ~ 128 文字で、英字、数字、および次の特殊文字のみを含めることができます: . - ? = ~ _ - + / ^ * ! $ & | ( ) [ ]。
* port: リクエストのリダイレクト先ポート。デフォルト値: ${port}。1 ~ 63335 のポート番号を入力できます。
* path: リクエストのリダイレクト先パス。デフォルト値: ${path}。パスは 1 ~ 128 文字である必要があります。正規表現を使用するには、パスに英字、数字、および次の特殊文字を含めることができます: . - _ / = ? ~ ^ * $ : ( ) [ ] + |。パスはチルダ (~) で始める必要があります。正規表現を使用しない場合、パスには英字、数字、および次の特殊文字を含めることができます: . - _ / = ? :。パスはスラッシュ (/) で始める必要があります。
* query: リダイレクトされるリクエストのクエリ文字列。デフォルト値: ${query}。クエリ文字列を指定することもできます。クエリ文字列は 1 ~ 128 文字で、ASCII 値が 32 以上 127 未満の印刷可能文字を含めることができます。クエリ文字列には、大文字、スペース文字、または次の特殊文字を含めることはできません: [ ] { } < > # | &。
* code: リダイレクトコード。有効値: 301、302、303、307、308。
* RuleActionType が FixResponse に設定されている場合、このパラメーターは固定レスポンスを指定します。例: {"code":"200", "type":"text/plain", "content":"dssacav" }。
* code: 返す HTTP ステータスコード。レスポンスステータスコードは、次のいずれかの数値文字列である必要があります: 2xx、4xx、5xx。文字 x は 0 ~ 9 の数字を示します。
* type: レスポンスコンテンツのタイプ。有効値: text/plain、text/css、text/html、application/javascript、application/json。
* content: レスポンスコンテンツ。レスポンスコンテンツは 1,000 文字を超えることはできず、中国語はサポートされていません。
* RuleActionType が AddHeader に設定されている場合、このパラメーターは追加する HTTP ヘッダーを指定します。転送ルールにタイプが AddHeader の転送アクションが含まれている場合は、タイプが ForwardGroup の別の転送アクションを指定する必要があります。例: [{"name":"header1","type":"userdefined", "value":"value"}]。
* name: HTTP ヘッダーの名前。名前は 1 ~ 40 文字で、英字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。AddHeader で指定された HTTP ヘッダーの名前は一意である必要があり、RemoveHeader で指定された HTTP ヘッダーの名前と同じにすることはできません。
* type: HTTP ヘッダーのコンテンツタイプ。有効値: user-defined、ref、system-defined。
* value: HTTP ヘッダーのコンテンツ。このパラメーターを空にすることはできません。type を user-defined に設定した場合、コンテンツは 1 ~ 128 文字で、ASCII 値が 32 以上 127 未満の印刷可能文字を含めることができます。コンテンツには、英字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。コンテンツはスペース文字で始めることも終わることもできません。type を ref に設定した場合、コンテンツは 1 ~ 128 文字で、英字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。コンテンツはスペース文字で始めることも終わることもできません。type を system-defined に設定した場合、ClientSrcIp のみがサポートされます。
* RuleActionType が RemoveHeader に設定されている場合、このパラメーターは削除する HTTP ヘッダーを指定します。転送ルールにタイプが RemoveHeader の転送アクションが含まれている場合は、タイプが ForwardGroup の別の転送アクションを指定する必要があります。ヘッダーは 1 ~ 40 文字で、英字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。例: ["header1"]。
* RuleActionType が Rewrite に設定されている場合、このパラメーターは書き換え構成を指定します。転送ルールにタイプが Rewrite の転送アクションが含まれている場合は、タイプが ForwardGroup の別の転送アクションを指定する必要があります。例: {"domain":"value1", "path":"value2", "query":"value3"}。
* domain: リクエストのリダイレクト先ドメイン名。デフォルト値: ${host}。ドメイン名を入力することもできます。ドメイン名は 3 ~ 128 文字で、小文字、数字、および次の特殊文字のみを含めることができます: . - ? = ~ _ - + / ^ * ! $ & | ( ) [ ]。
* path: リクエストのリダイレクト先パス。デフォルト値: ${path}。パスは 1 ~ 128 文字である必要があります。正規表現を使用するには、パスに英字、数字、および次の特殊文字を含めることができます: . - _ / = ? ~ ^ * $ : ( ) [ ] + |。パスはチルダ (~) で始める必要があります。正規表現を使用しない場合、パスには英字、数字、および次の特殊文字を含めることができます: . - _ / = ? :。パスはスラッシュ (/) で始める必要があります。
* query: リダイレクトされるリクエストのクエリ文字列。デフォルト値: ${query}。クエリ文字列を指定することもできます。クエリ文字列は 1 ~ 128 文字で、ASCII 値が 32 以上 127 未満の印刷可能文字を含めることができます。クエリ文字列には、大文字、スペース文字、または次の特殊文字を含めることはできません: [ ] { } < > # | &。
Required: false
AssociationProperty: List[Parameters]
Type: Json
Description:
ja: 転送アクション。
Required: true
MinLength: 1
MaxLength: 100
Priority:
Type: Number
Description:
ja: 転送ルールの優先順位。有効値: 1 ~ 10000。値が小さいほど優先順位が高くなります。
Required: false
MinValue: 1
MaxValue: 10000
ForwardingRuleName:
Type: String
Description:
ja: 転送ルール名。名前は 2 ~ 128 文字で、英字、数字、ピリオド(.)、アンダースコア(_)、ハイフン(-)を含めることができます。名前は英字で始める必要があります。
Required: false
MinLength: 2
MaxLength: 128
RuleConditions:
AssociationPropertyMetadata:
Parameters:
RuleConditionType:
Type: String
Description:
ja: |-
転送条件のタイプ。有効値:
* Host: ドメイン名
* Path: パス
* RequestHeader: HTTP ヘッダー
* Query: クエリ文字列
* Method: HTTP メソッド
* Cookie: Cookie
* SourceIP: ソース IP アドレス
AllowedValues:
- Host
- Path
- RequestHeader
- Query
- Method
- Cookie
- SourceIP
Required: false
RuleConditionValue:
Type: String
Description:
ja: リスナーポートにマップされているエンドポイントポート。
Required: false
AssociationProperty: List[Parameters]
Type: Json
Description:
ja: 転送条件。
Required: true
MinLength: 1
MaxLength: 100
RuleDirection:
Type: String
Description:
ja: ルールが有効になる方向。このパラメーターを設定する必要はありません。デフォルトでは、このパラメーターは request に設定されており、ルールがリクエストに有効であることを示します。
AllowedValues:
- request
Required: false
Type: Json
Required: false
AssociationProperty: List[Parameter]
Type: Json
Description:
ja: 転送ルールに関する詳細。
Required: true
MinLength: 1
MaxLength: 200
ListenerId:
Type: String
Description:
ja: リスナーの ID。
Required: true
Resources:
ExtensionResource:
Type: ALIYUN::GA::ForwardingRules
Properties:
AcceleratorId:
Ref: AcceleratorId
ForwardingRules:
Ref: ForwardingRules
ListenerId:
Ref: ListenerId
Outputs:
ForwardingRuleIds:
Description: エンドポイントグループの ID。
Value:
Fn::GetAtt:
- ExtensionResource
- ForwardingRuleIds
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"AcceleratorId": {
"Type": "String",
"Description": {
"ja": "GA インスタンスの ID。"
},
"Required": true
},
"ForwardingRules": {
"AssociationPropertyMetadata": {
"Parameter": {
"AssociationPropertyMetadata": {
"Parameters": {
"RuleActions": {
"AssociationPropertyMetadata": {
"Parameters": {
"RuleActionType": {
"Type": "String",
"Description": {
"ja": "転送アクションのタイプ。有効値:\n* ForwardGroup: リクエストを転送します。\n* Redirect: リクエストをリダイレクトします。\n* FixResponse: 固定レスポンスを返します。\n* Rewrite: リクエストを書き換えます。\n* AddHeader: リクエストにヘッダーを追加します。\n* RemoveHeaderConfig: リクエストからヘッダーを削除します。\n"
},
"AllowedValues": [
"ForwardGroup",
"Redirect",
"FixResponseRewrite",
"AddHeaderRemoveHeaderConfig"
],
"Required": true
},
"Order": {
"Type": "Number",
"Description": {
"ja": "転送の優先順位。"
},
"Required": true
},
"RuleActionValue": {
"Type": "String",
"Description": {
"ja": "転送アクションタイプの値。RuleActionType パラメーターに基づいて異なる JSON 文字列を指定する必要があります。転送ルールには、タイプが ForwardGroup、Redirect、または FixResponse の転送アクションを 1 つだけ含めることができます。タイプが ForwardGroup の転送アクションの前に、タイプが Rewrite、AddHeader、または RemoveHeader の転送アクションを指定する必要があります。\n* RuleActionType が ForwardGroup に設定されている場合、このパラメーターは仮想エンドポイントグループの情報を指定します。リクエストは 1 つの仮想エンドポイントグループにのみ転送できます。例: {\"type\":\"endpointgroup\", \"value\":\"epg-bp1enpdcrqhl78g6r****\"}。\n * type: このパラメーターを endpointgroup に設定します。\n * value: このパラメーターを仮想エンドポイントグループの ID に設定します。\n* RuleActionType が Redirect に設定されている場合、このパラメーターはリダイレクト構成を指定します。タイプが Redirect の転送アクションの場合、次のすべてのパラメーターを空にするか、これらのすべてのパラメーターをデフォルト値を使用するように構成することはできません: protocol、domain、port、path、query。例: {\"protocol\":\"HTTP\", \"domain\":\"www.example.com\", \"port\":\"80\", \"path\":\"/a\",\"query\":\"value1\", \"code\":\"301\" }。\n * protocol: リクエストがリダイレクトされた後のリクエストのプロトコル。有効値: ${protocol} (デフォルト)、HTTP、HTTPS。\n * domain: リクエストのリダイレクト先ドメイン名。デフォルト値: ${host}。ドメイン名を入力することもできます。ドメイン名は 3 ~ 128 文字で、英字、数字、および次の特殊文字のみを含めることができます: . - ? = ~ _ - + / ^ * ! $ & | ( ) [ ]。\n * port: リクエストのリダイレクト先ポート。デフォルト値: ${port}。1 ~ 63335 のポート番号を入力できます。\n * path: リクエストのリダイレクト先パス。デフォルト値: ${path}。パスは 1 ~ 128 文字である必要があります。正規表現を使用するには、パスに英字、数字、および次の特殊文字を含めることができます: . - _ / = ? ~ ^ * $ : ( ) [ ] + |。パスはチルダ (~) で始める必要があります。正規表現を使用しない場合、パスには英字、数字、および次の特殊文字を含めることができます: . - _ / = ? :。パスはスラッシュ (/) で始める必要があります。\n * query: リダイレクトされるリクエストのクエリ文字列。デフォルト値: ${query}。クエリ文字列を指定することもできます。クエリ文字列は 1 ~ 128 文字で、ASCII 値が 32 以上 127 未満の印刷可能文字を含めることができます。クエリ文字列には、大文字、スペース文字、または次の特殊文字を含めることはできません: [ ] { } < > # | &。\n * code: リダイレクトコード。有効値: 301、302、303、307、308。\n* RuleActionType が FixResponse に設定されている場合、このパラメーターは固定レスポンスを指定します。例: {\"code\":\"200\", \"type\":\"text/plain\", \"content\":\"dssacav\" }。\n * code: 返す HTTP ステータスコード。レスポンスステータスコードは、次のいずれかの数値文字列である必要があります: 2xx、4xx、5xx。文字 x は 0 ~ 9 の数字を示します。\n * type: レスポンスコンテンツのタイプ。有効値: text/plain、text/css、text/html、application/javascript、application/json。\n * content: レスポンスコンテンツ。レスポンスコンテンツは 1,000 文字を超えることはできず、中国語はサポートされていません。\n* RuleActionType が AddHeader に設定されている場合、このパラメーターは追加する HTTP ヘッダーを指定します。転送ルールにタイプが AddHeader の転送アクションが含まれている場合は、タイプが ForwardGroup の別の転送アクションを指定する必要があります。例: [{\"name\":\"header1\",\"type\":\"userdefined\", \"value\":\"value\"}].\n * name: HTTP ヘッダーの名前。名前は 1 ~ 40 文字で、英字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。AddHeader で指定された HTTP ヘッダーの名前は一意である必要があり、RemoveHeader で指定された HTTP ヘッダーの名前と同じにすることはできません。\n * type: HTTP ヘッダーのコンテンツタイプ。有効値: user-defined、ref、system-defined。\n * value: HTTP ヘッダーのコンテンツ。このパラメーターを空にすることはできません。type を user-defined に設定した場合、コンテンツは 1 ~ 128 文字で、ASCII 値が 32 以上 127 未満の印刷可能文字を含めることができます。コンテンツには、英字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。コンテンツはスペース文字で始めることも終わることもできません。type を ref に設定した場合、コンテンツは 1 ~ 128 文字で、英字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。コンテンツはスペース文字で始めることも終わることもできません。type を system-defined に設定した場合、ClientSrcIp のみがサポートされます。\n* RuleActionType が RemoveHeader に設定されている場合、このパラメーターは削除する HTTP ヘッダーを指定します。転送ルールにタイプが RemoveHeader の転送アクションが含まれている場合は、タイプが ForwardGroup の別の転送アクションを指定する必要があります。ヘッダーは 1 ~ 40 文字で、英字、数字、ハイフン (-)、アンダースコア (_) を含めることができます。例: [\"header1\"]。\n* RuleActionType が Rewrite に設定されている場合、このパラメーターは書き換え構成を指定します。転送ルールにタイプが Rewrite の転送アクションが含まれている場合は、タイプが ForwardGroup の別の転送アクションを指定する必要があります。例: {\"domain\":\"value1\", \"path\":\"value2\", \"query\":\"value3\"}。\n * domain: リクエストのリダイレクト先ドメイン名。デフォルト値: ${host}。ドメイン名を入力することもできます。ドメイン名は 3 ~ 128 文字で、小文字、数字、および次の特殊文字のみを含めることができます: . - ? = ~ _ - + / ^ * ! $ & | ( ) [ ]。\n * path: リクエストのリダイレクト先パス。デフォルト値: ${path}。パスは 1 ~ 128 文字である必要があります。正規表現を使用するには、パスに英字、数字、および次の特殊文字を含めることができます: . - _ / = ? ~ ^ * $ : ( ) [ ] + |。パスはチルダ (~) で始める必要があります。正規表現を使用しない場合、パスには英字、数字、および次の特殊文字を含めることができます: . - _ / = ? :。パスはスラッシュ (/) で始める必要があります。\n * query: リダイレクトされるリクエストのクエリ文字列。デフォルト値: ${query}。クエリ文字列を指定することもできます。クエリ文字列は 1 ~ 128 文字で、ASCII 値が 32 以上 127 未満の印刷可能文字を含めることができます。クエリ文字列には、大文字、スペース文字、または次の特殊文字を含めることはできません: [ ] { } < > # | &。"
},
"Required": false
}
}
},
"AssociationProperty": "List[Parameters]",
"Type": "Json",
"Description": {
"ja": "転送アクション。"
},
"Required": true,
"MinLength": 1,
"MaxLength": 100
},
"Priority": {
"Type": "Number",
"Description": {
"ja": "転送ルールの優先順位。有効値: 1 ~ 10000。値が小さいほど優先順位が高くなります。"
},
"Required": false,
"MinValue": 1,
"MaxValue": 10000
},
"ForwardingRuleName": {
"Type": "String",
"Description": {
"ja": "転送ルール名。名前は 2 ~ 128 文字で、英字、数字、ピリオド(.)、アンダースコア(_)、ハイフン(-)を含めることができます。名前は英字で始める必要があります。"
},
"Required": false,
"MinLength": 2,
"MaxLength": 128
},
"RuleConditions": {
"AssociationPropertyMetadata": {
"Parameters": {
"RuleConditionType": {
"Type": "String",
"Description": {
"ja": "転送条件のタイプ。有効値:\n* Host: ドメイン名\n* Path: パス\n* RequestHeader: HTTP ヘッダー\n* Query: クエリ文字列\n* Method: HTTP メソッド\n* Cookie: Cookie\n* SourceIP: ソース IP アドレス"
},
"AllowedValues": [
"Host",
"Path",
"RequestHeader",
"Query",
"Method",
"Cookie",
"SourceIP"
],
"Required": false
},
"RuleConditionValue": {
"Type": "String",
"Description": {
"ja": "リスナーポートにマップされているエンドポイントポート。"
},
"Required": false
}
}
},
"AssociationProperty": "List[Parameters]",
"Type": "Json",
"Description": {
"ja": "転送条件。"
},
"Required": true,
"MinLength": 1,
"MaxLength": 100
},
"RuleDirection": {
"Type": "String",
"Description": {
"ja": "ルールが有効になる方向。このパラメーターを設定する必要はありません。デフォルトでは、このパラメーターは request に設定されており、ルールがリクエストに有効であることを示します。"
},
"AllowedValues": [
"request"
],
"Required": false
}
}
},
"Type": "Json",
"Required": false
}
},
"AssociationProperty": "List[Parameter]",
"Type": "Json",
"Description": {
"ja": "転送ルールに関する詳細。"
},
"Required": true,
"MinLength": 1,
"MaxLength": 200
},
"ListenerId": {
"Type": "String",
"Description": {
"ja": "リスナーの ID。"
},
"Required": true
}
},
"Resources": {
"ExtensionResource": {
"Type": "ALIYUN::GA::ForwardingRules",
"Properties": {
"AcceleratorId": {
"Ref": "AcceleratorId"
},
"ForwardingRules": {
"Ref": "ForwardingRules"
},
"ListenerId": {
"Ref": "ListenerId"
}
}
}
},
"Outputs": {
"ForwardingRuleIds": {
"Description": "エンドポイントグループの ID。",
"Value": {
"Fn::GetAtt": [
"ExtensionResource",
"ForwardingRuleIds"
]
}
}
}
}