このページは 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>
エラーコード
This section describes the fault codes, error messages, and the fault variables set by Apigee when this policy triggers an error. This information is essential if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause |
|---|---|---|
steps.setintegrationrequest.EmptyParameterArray |
500 |
This error occurs when the |
steps.setintegrationrequest.EmptyParameterArrayValue |
500 |
This error occurs when the |
steps.setintegrationrequest.InvalidResolvedFlowVariable |
500 |
This error occurs when the flow variable specified in the
|
steps.setintegrationrequest.MismatchedTypeAndResolvedRef |
500 |
This error occurs when the flow variable specified in
the |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray |
500 |
This error occurs when the flow variable specified in
the |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue |
500 |
This error occurs when the flow variable specified in
the |
steps.setintegrationrequest.RequestVariableNotMessageType |
500 |
This error occurs when the flow variable specified by the Request element
is not of message type. |
steps.setintegrationrequest.RequestVariableNotRequestMessageType |
500 |
This error occurs when the flow variable specified by the Request element
is not of Request message type. |
steps.setintegrationrequest.UnresolvedVariable |
500 |
This error occurs when Apigee can't resolve the flow variables specified in the
|
Fault variables
Whenever there are execution errors in a policy, Apigee generates error messages. You can view these error messages in the error response. Many a time, system generated error messages might not be relevant in the context of your product. You might want to customize the error messages based on the type of error to make the messages more meaningful.
To customize the error messages, you can use either fault rules or the RaiseFault policy. For
information about differences between fault rules and the RaiseFault policy, see
FaultRules vs. the RaiseFault policy.
You must check for conditions using the Condition element in both the fault rules and the RaiseFault policy.
Apigee provides fault variables unique to each policy and the values of the fault variables are set when a policy triggers runtime errors.
By using these variables, you can check for specific error conditions and take appropriate actions. For more information about checking error
conditions, see Building conditions.
The following table describes the fault variables specific to this policy.
| Variables | Where | Example |
|---|---|---|
fault.name |
The fault.name can match to any of the faults listed in the Runtime errors table.
The fault name is the last part of the fault code. |
fault.name Matches "UnresolvedVariable" |
SetIntegrationRequest.POLICY_NAME.failed |
POLICY_NAME is the user-specified name of the policy that threw the fault. | SetIntegrationRequest.set-integration-request-1.failed = true |
関連トピック
Application Integration 機能の詳細については、Application Integration の概要をご覧ください。