このページの内容は Apigee と Apigee ハイブリッドに該当します。
Apigee Edge のドキュメントを表示する。
概要
SetIntegrationRequest ポリシーを使用すると、実行する統合のリクエスト オブジェクトを作成できます。ポリシーでは、統合を実行するために必要な API トリガーの詳細と入力パラメータを構成する必要があります。SetIntegrationRequest ポリシーを実行すると、リクエスト オブジェクトが作成され、フロー変数に保存されます。リクエスト オブジェクトには、統合の実行に必要な情報がすべて含まれます。この段階では、統合はまだ実行されていません。統合を実行するには、IntegrationCallout ポリシーを呼び出すか、IntegrationEndpoint を設定する必要があります。IntegrationCallout ポリシーと IntegrationEndpoint のどちらにも、統合を実行するリクエスト オブジェクトが必要です。
このポリシーは拡張可能なポリシーです。Apigee ライセンスによっては、このポリシーの使用によって費用や使用量に影響する場合があります。ポリシータイプと使用量への影響については、ポリシータイプをご覧ください。
<SetIntegrationRequest>
SetIntegrationRequest ポリシーを指定します。
デフォルト値 | なし |
必須かどうか | 必須 |
型 | 複合型 |
親要素 | なし |
子要素 |
<ApiTrigger> <DisplayName> <IntegrationName> <IntegrationRegion> <Parameters> <ProjectId> <Request> <ScheduleTime> |
次の表に、<SetIntegrationRequest>
要素の子要素の概要を示します。
子要素 | 必須かどうか | 説明 |
---|---|---|
<ApiTrigger> |
必須 | 統合で呼び出す API トリガーの名前。 |
<DisplayName> |
省略可 | ポリシーのカスタム名。 |
<IntegrationName> |
省略可 | 実行する統合の名前。 |
<IntegrationRegion> |
必須 | 統合が存在するリージョンの名前。 |
<Parameters> |
省略可 | 統合の入力パラメータ。 |
<ProjectId> |
省略可 | 実行する統合がある Google Cloud プロジェクトの名前。 |
<Request> |
省略可 | リクエスト オブジェクトを保存するフロー変数の名前。 |
<ScheduleTime> |
省略可 | 統合を実行する時刻。 |
SetIntegrationRequest ポリシーでは次の構文を使用します。
構文
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <SetIntegrationRequest continueOnError="[true|false]" enabled="[true|false]" name="Set-Integration-Request"> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> <ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId> <IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName> <IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion> <ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger> <ScheduleTime>PARAMETER_VALUE</ScheduleTime> <Parameters> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Parameter> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME> <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value> </ParameterArray> </Parameters> <Request>FLOW_VARIABLE_NAME</Request> </SetIntegrationRequest>
例
次の例では、SetIntegrationRequest ポリシーの定義を示します。
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <SetIntegrationRequest continueOnError="false" enabled="true" name="Set-Integration-Request"> <DisplayName>Set Integration Request Policy</DisplayName> <ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId> <IntegrationName ref="my_integration_ref">integration_1</IntegrationName> <IntegrationRegion ref="my_integration_ref">asia-east1</IntegrationRegion> <ApiTrigger ref="my_api_trigger_ref">API-Trigger-2</ApiTrigger> <ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime> <Parameters> <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter> <ParameterArray name="my_array_param" type="integer" ref="flow_var_2"> <Value ref="flow_var_3">1</Value> <Value ref="flow_var_4">2</Value> <Value ref="flow_var_5">3</Value> </ParameterArray> </Parameters> <Request>my_request_var</Request> </SetIntegrationRequest>
この要素には、すべてのポリシーに共通する次の属性があります。
属性 | デフォルト | 必須かどうか | 説明 |
---|---|---|---|
name |
なし | 必須 |
ポリシーの内部名。 管理 UI プロキシ エディタで |
continueOnError |
false | 省略可 | ポリシーが失敗したときにエラーを返す場合は、false に設定します。これは、ほとんどのポリシーで想定される動作です。ポリシーが失敗した後もフローの実行を続行する場合は、true に設定します。関連情報:
|
enabled |
true | 省略可 | ポリシーを適用するには、true に設定します。ポリシーを無効にするには、false に設定します。ポリシーがフローに接続されている場合でも適用されません。 |
async |
false | 非推奨 | この属性は非推奨となりました。 |
子要素のリファレンス
このセクションでは、<SetIntegrationRequest>
の子要素について説明します。
<DisplayName>
name
属性に加えて、管理 UI プロキシ エディタでポリシーを別の、より自然な響きの名前でラベル付けするために使います。
<DisplayName>
要素はすべてのポリシーに共通です。
デフォルト値 | なし |
必須かどうか | 省略可。<DisplayName> を省略した場合、ポリシーの name 属性の値が使用されます。 |
型 | 文字列 |
親要素 | <PolicyElement> |
子要素 | なし |
<DisplayName>
要素の構文は次のとおりです。
構文
<PolicyElement> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> ... </PolicyElement>
例
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
<DisplayName>
要素に属性や子要素はありません。
<ProjectId>
Google Cloud プロジェクトの名前を指定します。
この要素に指定した値が、Apigee によって integration.project.id
フロー変数に割り当てられます。
デフォルト値 | なし |
必須かどうか | 省略可 |
型 | 文字列 |
親要素 |
<SetIntegrationRequest> |
子要素 | なし |
<ProjectId>
要素の構文は次のとおりです。
構文
<ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>
例
次の例では、my_projectid_var
フロー変数を使用してプロジェクト ID を取得するようにポリシーを構成し、ランタイム時にフロー変数を解決できない場合は、apigee_staging_1
をプロジェクト ID として使用します。
<ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>
次の表に、<ProjectId>
要素の属性を示します。
属性 | 必須かどうか | 種類 | 説明 |
---|---|---|---|
ref |
省略可 | 文字列 | Apigee が Google Cloud プロジェクト ID を読み取るフロー変数を指定します。<ProjectId> 要素は、次のいずれかの方法で設定できます。
|
<IntegrationName>
実行する統合を指定します。
この要素に指定した値が、Apigee によって integration.name
フロー変数に割り当てられます。
統合名は次の命名規則を満たす必要があります。
- 先頭と末尾は英字または数字にする必要があります。
- スペースは使用できません。
- 連続する 2 つのダッシュやアンダースコアは使用できません。
デフォルト値 | なし |
必須かどうか | 省略可 |
型 | 文字列 |
親要素 |
<SetIntegrationRequest> |
子要素 | なし |
<IntegrationName>
要素の構文は次のとおりです。
構文
<IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>
例
次の例では、my_integration_ref
フロー変数を使用して統合名を取得するようにポリシーを構成し、ランタイム時にフロー変数を解決できない場合は、integration_1
を統合名として使用します。
<IntegrationName ref="my_integration_ref">integration_1</IntegrationName>
次の表に、<IntegrationName>
要素の属性を示します。
属性 | 必須かどうか | 種類 | 説明 |
---|---|---|---|
ref |
省略可 | 文字列 | Apigee が統合名を読み取るフロー変数を指定します。<IntegrationName> 要素は、次のいずれかの方法で設定できます。
|
<IntegrationRegion>
統合が存在するリージョンを指定します。
Apigee はランタイムに要素の値を integration.region
フロー変数に割り当て、リージョンベースのターゲット URL を作成し、作成した URL を integration.target.url
フロー変数に保存します。
リージョン ベースのターゲット URL は https://integration.region-integrations.googleapis.com
の形式になります。
統合リージョンは、Application Integration でサポートされている必要があります。Application Integration のサポート対象リージョンについては、サポートされているリージョンをご覧ください。
デフォルト値 | なし |
必須かどうか | 必須 |
型 | 文字列 |
親要素 |
<SetIntegrationRequest> |
子要素 | なし |
<IntegrationRegion>
要素の構文は次のとおりです。
構文
<IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>
例
次の例では、my_integration_region_ref
フロー変数を使用して統合リージョンを取得するようにポリシーを構成し、実行時にフロー変数を解決できない場合は、統合のリージョンとして asia-east1
が使用されます。
<IntegrationRegion ref="my_integration_region_ref">asia-east1</IntegrationRegion>
次の表に、<IntegrationRegion>
要素の属性を示します。
属性 | 必須かどうか | 種類 | 説明 |
---|---|---|---|
ref |
省略可 | 文字列 | Apigee が統合リージョンを読み取るフロー変数を指定します。<IntegrationRegion> 要素は、次のいずれかの方法で設定できます。
|
<ApiTrigger>
実行する API トリガーを指定します。
API トリガー名は api_trigger/API_TRIGGER_NAME
の形式で指定する必要があります。
この要素に指定した値が、Apigee によって integration.api.trigger
フロー変数に割り当てられます。
<IntegrationName>
を指定した場合は、その統合の API トリガーのみが実行されます。ただし、<IntegrationName>
を指定していない場合は、指定された API トリガーを持つすべての統合が実行されます。
デフォルト値 | なし |
必須かどうか | 必須 |
型 | 文字列 |
親要素 |
<SetIntegrationRequest> |
子要素 | なし |
<ApiTrigger>
要素の構文は次のとおりです。
構文
<ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>
例
次の例では、my_api_trigger_ref
フロー変数を使用して API トリガー名を取得するようにポリシーを構成し、ランタイム時にフロー変数を解決できない場合は、api_trigger/API-Trigger-2
を API トリガー名として使用します。
<ApiTrigger ref="my_api_trigger_ref">api_trigger/API-Trigger-2</ApiTrigger>
次の表に、<ApiTrigger>
要素の属性を示します。
属性 | 必須かどうか | 種類 | 説明 |
---|---|---|---|
ref |
省略可 | 文字列 | Apigee が API トリガー名を読み取るフロー変数を指定します。<ApiTrigger> 要素は、次のいずれかの方法で設定できます。
|
<ScheduleTime>
統合を実行する時刻を指定します。
時刻が現在の時刻と等しいか、それより前である場合は、すぐに統合が実行されます。時刻は yyyy-mm-ddThh:mm:ssZ
形式で指定する必要があります。ここで、Z は UTC タイムゾーンです。たとえば、2022-01-15T01:30:15Z
を指定した場合、統合は 2022 年 1 月 15 日 1 時 30 分 15 秒(UTC)に実行されるようにスケジュールされます。UTC からのオフセットを使用してタイムゾーンを指定することもできます。たとえば、2022-01-15T01:30:15-08:00
を指定した場合、統合は 2022 年 1 月 15 日 1 時 30 分 15 秒(PST)に実行されるようにスケジュールされます。時刻の形式の詳細については、組み合わせた日時の表現をご覧ください。
デフォルト値 | なし |
必須かどうか | 省略可 |
型 | 文字列 |
親要素 |
<SetIntegrationRequest> |
子要素 | なし |
<ScheduleTime>
要素の構文は次のとおりです。
構文
<ScheduleTime>PARAMETER_VALUE</ScheduleTime>
例
次の例では、2022-01-15T01:30:15Z
に統合を実行するようにスケジュールします。
<ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime>
<Parameters>
統合の実行に必要な入力パラメータを指定します。
個々のパラメータまたはパラメータ配列を指定できます。
- 個々のパラメータを指定するには、
<Parameter>
要素を使用します。 - パラメータ配列を指定するには、
<ParameterArray>
要素を使用します。
デフォルト値 | なし |
必須かどうか | 省略可 |
型 | 複合型 |
親要素 |
<SetIntegrationRequest> |
子要素 |
<Parameter> <ParameterArray> |
次の表に、<Parameters>
の属性を示します。
属性 | 必須かどうか | 種類 | 説明 |
---|---|---|---|
substitutionVariableChar |
省略可 | 文字列 | <Parameter> 子要素でカスタム区切り文字を設定して、フロー変数の値をテンプレート引数として渡すことができます。
|
<Parameters>
要素の構文は次のとおりです。
構文
<Parameters substitutionVariableChar="SUBSTITUTION_CHAR"> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME" >PARAMETER_VALUE</Parameter> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">SUBSTITUTION_CHAR FLOW_VARIABLE_NAME SUBSTITUTION_CHAR</Parameter> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE ref="FLOW_VARIABLE_NAME""> <Value>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> </ParameterArray> </Parameters>
例
次の例では、my_str_param
パラメータと my_array_param
パラメータ配列を初期化します。
<Parameters substitutionVariableChar="#"> <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter> <Parameter name="strVar" type="string">#flowvar1#</Parameter> <ParameterArray name="my_array_param" type="integer" ref="flow_var_2"> <Value>1</Value> <Value ref="flow_var_3"/> <Value ref="flow_var_4">3</Value> </ParameterArray> </Parameters>
Apigee は、空の <Parameter>
要素と <ParameterArray>
要素を null
値として扱います。たとえば、<Parameter></Parameter>
や <ParameterArray></ParameterArray>
などの宣言は null
値として処理されます。
<Parameter>
入力パラメータを指定します。
デフォルト値 | なし |
必須かどうか | 省略可 |
型 | 文字列 |
親要素 |
<Parameters> |
子要素 | なし |
パラメータ値は次の方法で指定できます。
- <Parameter name="my_param" type="string">val</Parameter>: パラメータ値として val を使用します。val が無効な場合、Apigee は例外を報告します。
- <Parameter name="my_param" type="string" ref="refval"/>: ランタイム時に refval フロー変数を解決し、その値を使用します。解決された refval の値が無効か、refval が解決されない場合、Apigee は例外を報告します。
- <Parameter name="my_param" type="string" ref="refval">val</Parameter>: 実行時に refval フロー変数を解決し、その値を使用します。解決された refval の値が無効である場合、Apigee は例外を報告します。refval が解決されない場合、Apigee はパラメータ値として val を使用します。
- <Parameter name="my_param" type="json">{"name":"$#flowval#$"}</Parameter>:
$#FLOW_VARIABLE_NAME#$
を使用してフロー変数の値をパラメータのテンプレート引数として渡します。Apigee は実行時に flowval フロー変数を解決し、その値を使用します。解決された flowval 値が無効な場合は、例外が報告されます。 - <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR flowval SUBSTITUTION_CHAR"}</Parameter>: ここで SUBSTITUTION_CHAR は
<Parameters>
親要素のsubstitutionVariableChar
属性に指定された値です。Apigee は実行時に flowval フロー変数を解決し、その値を使用します。解決された flowval 値が無効な場合は、例外が報告されます。
<Parameter>
要素の構文は次のとおりです。
構文
<Parameters substitutionVariableChar="SUBSTITUTION_CHAR"> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">PARAMETER_VALUE</Parameter> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME"/> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Parameter> <Parameter name="PARAMETER_NAME" type="json">$#FLOW_VARIABLE_NAME#$</Parameter> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">SUBSTITUTION_CHAR FLOW_VARIABLE_NAME SUBSTITUTION_CHAR</Parameter> </Parameters>
例 1
次の例では、my_str_param
パラメータを文字列として宣言し、値を someText
に設定します。
<Parameters> <Parameter name="my_str_param" type="string">someText</Parameter> </Parameters>
例 2
次の例では、my_double_param
パラメータを double として宣言し、flow_var
フロー変数の値をパラメータに割り当てています。
<Parameters> <Parameter name="my_double_param" type="double" ref="flow_var"/> </Parameters>
例 3
次の例では、my_int_param_1
整数パラメータに値を設定しています。
<Parameters> <Parameter name="my_int_param_1" type="integer" ref="flow_var_1">96</Parameter> </Parameters>
この例では、flow_var_1
フロー変数が正常に解決されると、my_int_param_1
がフロー変数の値に設定されます。ただし、flow_var_1
を解決できない場合、my_int_param_1
は 96
に設定されます。
例 4
次の例では、my_json_param_1
と my_json_param_2
の JSON パラメータの値を設定します。
<Parameters> <Parameter name="my_json_param_1" type="json" ref="flow_var_1">{name:"Apple", color:"Red"}</Parameter> <Parameter name="my_json_param_2" type="json">{name:"Banana", color:"Yellow"}</Parameter> </Parameters>
この例では、flow_var_1
フロー変数が正常に解決されると、my_json_param_1
が flow_var_1
フロー変数の値に設定されます。flow_var_1
が解決されなかった場合、my_json_param_1
は {name:"Apple", color:"Red"}
に設定されます。ref
属性が指定されていないため、my_json_param_2
パラメータが {name:"Banana", color:"Yellow"}
に設定されています。
例 5
次の例では、デフォルト テンプレートで渡されたフロー変数の値を使用して、template_json_param
JSON パラメータの値を設定します。
<Parameters> <Parameter name="template_json_param" type="json">{"name":"$#flow_var_1#$"}</Parameter> </Parameters>
この例では、flow_var_1
フロー変数が正常に解決されると、template_json_param
が flow_var_1
フロー変数の値に設定されます。flow_var_1
を解決できない場合、Apigee は例外をスローします。
例 6
次の例では、substitutionVariableChar 属性を使用して template_json_param
JSON パラメータの値を設定しています。
<Parameters substitutionVariableChar="#"> <Parameter name="template_json_param" type="json">{"name":"#flow_var_1#"}</Parameter> </Parameters>
この例では、flow_var_1
フロー変数が正常に解決されると、template_json_param
が flow_var_1
フロー変数の値に設定されます。flow_var_1
を解決できない場合、Apigee は例外をスローします。
次の表に、<Parameter>
要素の属性を示します。
属性 | 必須かどうか | 種類 | 説明 |
---|---|---|---|
name |
必須 | 文字列 | パラメータの名前。 |
type |
必須 | 文字列 | パラメータのデータ型。サポートされている型は integer 、string 、boolean 、double 、json です。 |
ref |
省略可 | 文字列 | Apigee がパラメータ値を読み取るフロー変数を指定します。Apigee は次の基準でパラメータ値を設定します。
|
<ParameterArray>
入力パラメータの配列を指定します。
デフォルト値 | なし |
必須かどうか | 省略可 |
型 | 複合型 |
親要素 |
<Parameters> |
子要素 |
<Value> |
<Parameters>
要素内に複数の <ParameterArray>
要素を含めることができます。パラメータ配列には、実際の値を指定するか、ref
属性でフロー変数を指定することで、配列要素の値を設定できます。フロー変数を指定すると、配列要素がフロー変数の値に設定されます。このセクションの例では、<ParameterArray>
要素を構成するさまざまな方法について説明します。
<ParameterArray>
要素の構文は次のとおりです。
構文
<Parameters> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> <Value>PARAMETER_VALUE</Value> </ParameterArray> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"/> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE"> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> <Value>PARAMETER_VALUE</Value> </ParameterArray> <Parameters/>
例 1
次の例では、my_array_param
を整数配列として宣言し、配列要素の値を 1
、2
、3
に設定します。
<Parameters> <ParameterArray name="my_array_param" type="integer"> <Value>1</Value> <Value>2</Value> <Value>3</Value> </ParameterArray> <Parameters/>
例 2
次の例では、my_array_param
を double 配列として宣言しています。
- 最初の要素は、
flow_var_1
フロー変数の値に設定されます。 - 2 番目の要素は
3.0
に設定されます。
<Parameters> <ParameterArray name="my_array_param" type="double"> <Value ref="flow_var_1"/> <Value>3.0</Value> </ParameterArray> <Parameters/>
例 3
次の例では、my_array_param
をブール値配列として宣言し、flow_var_1
フロー変数の値に設定します。
<Parameters> <ParameterArray name="my_array_param" type="boolean" ref="flow_var_1"> <Value>true</Value> <Value>false</Value> <Value>false</Value> </ParameterArray> <Parameters/>
この例では、flow_var_1
が正常に解決されると、my_array_param
は flow_var_1
配列の値に設定されます。flow_var_1
が解決されなかった場合、my_array_param
配列は Value
要素の値に設定されます。
例 4
次の例では、my_array_param
を JSON 配列として宣言し、flow_var_1
フロー変数の値に設定します。
<Parameters> <ParameterArray name="my_array_param" type="json" ref="flow_var_1"/> <Parameters/>
この例では、flow_var_1
が正常に解決されると、my_array_param
は flow_var_1
配列の値に設定されます。ただし、flow_var_1
を解決できない場合、Apigee は例外をスローします。
例 5
次の例では、my_array_param
を文字列配列として宣言し、flow_var_1
フロー変数の値に設定します。
<Parameters> <ParameterArray name="my_array_param" type="string" ref="flow_var_1"> <Value ref="flow_var_2"/> <Value>test_string</Value> </ParameterArray> <Parameters/>
この例では、flow_var_1
が正常に解決されると、my_array_param
は flow_var_1
配列の値に設定されます。flow_var_1
が解決されなかった場合にのみ、my_array_param
は <Value>
要素で指定された値に設定されます。
次の表に、<ParameterArray>
要素の属性を示します。
属性 | 必須かどうか | 種類 | 説明 |
---|---|---|---|
name |
必須 | 文字列 | パラメータ配列の名前。 |
type |
必須 | 文字列 | パラメータ配列のデータ型。サポートされている型は、integer 、string 、boolean 、double です。 |
ref |
省略可 | 文字列 | Apigee が配列値を読み取るフロー変数を指定します。Apigee は次の基準でパラメータ値を設定します。
|
<Value>
配列要素の値を指定します。
デフォルト値 | なし |
必須かどうか | 省略可 |
型 | 文字列 |
親要素 |
<ParameterArray> |
子要素 | なし |
配列の各要素は、個別の <Value>
要素にする必要があります。この値は次の方法で指定できます。
- <Value>val</Value>: 要素の値として val を使用します。val が無効な場合、Apigee は例外を報告します。
- <Value ref="refval"/>: ランタイム時に refval フロー変数を解決し、その値を使用します。解決された refval の値が無効か、refval が解決されない場合、Apigee は例外を報告します。
- <Value ref="refval">val</Value>: 実行時に refval フロー変数を解決し、その値を使用します。解決された refval の値が無効である場合、Apigee は例外を報告します。refval が解決されない場合、Apigee は val を要素の値として使用します。
- <Value>val1 $#flowval#$</Value>:
$#FLOW_VARIABLE_NAME#$
を使用して、フロー変数の値を [Value] のテンプレート引数として渡します。Apigee は実行時に flowval フロー変数を解決し、その値を使用します。解決された flowval 値が無効な場合は、例外が報告されます。
<Value>
要素の構文は次のとおりです。
構文
<ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"> <Value>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> </ParameterArray>
例 1
次の例では、値が 1
、2
、3
の整数パラメータ配列として my_array_param
を宣言しています。
<ParameterArray name="my_array_param" type="integer"> <Value>1</Value> <Value>2</Value> <Value>3</Value> </ParameterArray>
例 2
次の例では、flow_var_1
と flow_var_2
のフロー変数の値の文字列パラメータ配列として my_array_param
を宣言しています。
<ParameterArray name="my_array_param" type="string"> <Value ref="flow_var_1"/> <Value ref="flow_var_2"/> </ParameterArray>
例 3
次の例では、my_array_param
を文字列パラメータ配列として宣言しています。
<ParameterArray name="my_array_param" type="string"> <Value ref="flow_var_1">string_1</Value> <Value ref="flow_var_2">string_2</Value> </ParameterArray>
この例では、フロー変数が正常に解決されると、配列要素の値が flow_var_1
フロー変数の値に設定されます。ただし、flow_var_1
を解決できない場合、配列要素の値は string_1
に設定されます。
例 4
次の例では、テンプレートで渡されたフロー変数の値を使用して、template_strArray_param
文字列配列パラメータの値を設定します。
<Parameters> <ParameterArray name="template_strArray_param" type="string"> <Value>apple $#flow_var_1#$</Value> </ParameterArray> </Parameters>
この例では、フロー変数が正常に解決されると、配列要素の値が flow_var_1
フロー変数の値に設定されます。flow_var_1
を解決できない場合、Apigee は例外をスローします。
次の表に、<Value>
要素の属性を示します。
属性 | 必須かどうか | 種類 | 説明 |
---|---|---|---|
ref |
省略可 | 文字列 | Apigee がパラメータ値を読み取るフロー変数を指定します。Apigee は次の基準でパラメータ値を設定します。
|
<Request>
リクエストを保存するフロー変数の名前を指定します。
ポリシーを実行すると、新しいリクエスト メッセージ オブジェクトが作成され、リクエストを読み取るためにクエリを実行できる FLOW_VARIABLE_NAME
変数にそのオブジェクトが保存されます。
フロー変数名を指定しない場合、ポリシーはリクエスト メッセージにリクエストを保存します。存在する場合は、既存のリクエスト メッセージをオーバーライドします。
デフォルト値 | リクエスト |
必須かどうか | 省略可 |
型 | 文字列 |
親要素 |
<SetIntegrationRequest> |
子要素 | なし |
<Request>
要素の構文は次のとおりです。
構文
<Request>FLOW_VARIABLE_NAME</Request>
例
次の例では、リクエスト オブジェクトを my_request_var
フロー変数に保存します。
<Request>my_request_var</Request>
エラーコード
このセクションでは、このポリシーでエラーがトリガーされたときに Apigee が設定する障害コード、エラー メッセージ、障害変数について説明します。これは、障害に対処する障害ルールを作成する場合に重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
障害コード | HTTP ステータス | 原因 |
---|---|---|
steps.setintegrationrequest.EmptyParameterArray |
500 |
このエラーは、 |
steps.setintegrationrequest.EmptyParameterArrayValue |
500 |
このエラーは、 |
steps.setintegrationrequest.InvalidResolvedFlowVariable |
500 |
このエラーは、要素の
|
steps.setintegrationrequest.MismatchedTypeAndResolvedRef |
500 |
このエラーは、 |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray |
500 |
このエラーは、 |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue |
500 |
このエラーは、 |
steps.setintegrationrequest.RequestVariableNotMessageType |
500 |
このエラーは、Request 要素で指定されたフロー変数がメッセージ型でない場合に発生します。 |
steps.setintegrationrequest.RequestVariableNotRequestMessageType |
500 |
このエラーは、Request 要素で指定されたフロー変数がリクエスト メッセージ型でない場合に発生します。 |
steps.setintegrationrequest.UnresolvedVariable |
500 |
このエラーは、Apigee が |
障害変数
ポリシーで実行エラーが発生すると、Apigee によってエラー メッセージが生成されます。これらのエラー メッセージはエラー レスポンスで確認できます。多くの場合、システムによって生成されたエラー メッセージは、製品のコンテキストとは関係ありません。エラーのタイプに基づいてエラー メッセージをカスタマイズして、より有用なメッセージにすることができます。
エラー メッセージをカスタマイズするには、障害ルールまたは RaiseFault ポリシーを使用します。障害ルールと RaiseFault ポリシーの違いについては、FaultRule ポリシーと RaiseFault ポリシーをご覧ください。障害ルールと RaiseFault ポリシーの両方で Condition
要素を使用して条件を確認する必要があります。Apigee では、各ポリシーに固有の障害変数が用意されています。障害変数の値は、ポリシーがランタイム エラーをトリガーするときに設定されます。これらの変数を使用することで、特定のエラー条件を確認し、適切なアクションを実行できます。エラー条件の確認について詳しくは、条件の作成をご覧ください。
次の表に、このポリシーに固有の障害変数を示します。
変数 | 説明 | 例 |
---|---|---|
fault.name |
fault.name は、ランタイム エラーの表にある障害のいずれかに一致します。障害名は、障害コードの最後の部分です。 |
fault.name Matches "UnresolvedVariable" |
SetIntegrationRequest.POLICY_NAME.failed |
POLICY_NAME は、障害が発生したポリシーのユーザー指定の名前です。 | SetIntegrationRequest.set-integration-request-1.failed = true |
関連トピック
Application Integration 機能の詳細については、Application Integration の概要をご覧ください。