このページの内容は Apigee と Apigee ハイブリッドに該当します。
Apigee Edge のドキュメントを表示する。
プロパティ セットは、データを格納する Key-Value ペアのカスタム コレクションです。API プロキシは、実行時にこのデータを取得できます。
プロパティ セットを使用する理由
通常、プロパティ セットを使用して、API プロキシ ロジックにハードコードすべきでない無期限のデータを格納するために使用します。フロー変数にアクセスできるプロキシ内の任意の場所で、プロパティ セットのデータにアクセスできます。
プロパティ セットの一般的なユースケースは、環境ごとに関連する値を提供することです。たとえば、テスト環境で動作しているプロキシに固有の構成値で、環境をスコープとしたプロパティ セットを作成し、本番環境用に別のプロパティ セットを作成できます。
次に例を示します。
prod-env.properties
プロパティ セットにはプロパティlog-level=error
が含まれています。test-env.properties
プロパティ セットにはプロパティlog-level=debug
が含まれています。
同様に、環境固有のルーティング情報を保存することもできます。
test-env.properties
プロパティ セットにはプロパティdb-url=mydomain.test.datasource.com
が含まれています。prod-env.properties
プロパティ セットにはプロパティdb-url=mydomain.prod.datasource.com
が含まれています。
プロパティ セットのスコープ
プロパティ セットの作成時に、プロパティ セットのスコープを API プロキシ リビジョンまたは環境に設定できます。プロパティ セットのスコープを組織に設定することはできません。
次の表は、API プロキシと組織スコープでのプロパティ セットの動作と管理方法を示しています。
スコープ | ランタイムの動作 | 管理 |
---|---|---|
API プロキシ | プロパティを使用できるのは、プロパティ セットのリソースが含まれる API プロキシのリビジョンだけです。同じプロキシの他の API プロキシやリビジョンは、その特定のプロパティ セットにアクセスできません。 | 管理者は、/resourcefiles Apigee API または UI を使用してプロパティ セットの作成や編集ができます。API プロキシを UI に保存すると、新しいリビジョンが作成され、変更されたプロパティ セットはそのリビジョンにのみ関連付けられます。 |
環境 | プロパティは、その環境内のすべての API プロキシのすべてのリビジョンで使用できます。他の環境内の API プロキシは、そのプロパティ セットにアクセスできません。 | 管理者は、環境スコープのプロパティ セットの作成、表示、更新、削除を行うには、/resourcefiles Apigee API を使用する必要があります。これらのプロパティ セットは Apigee UI には表示されないため、Apigee UI では編集できません。 |
プロパティ セットの上限
上限で説明されているように、Apigee はプロパティ セットに上限を設定しています。また、プロパティ セット ファイルでは Java プロパティ ファイルと同じ構文を使用する必要があります。ただし、プロパティ セット ファイルで中かっこ {}
は使用できません。
プロパティ セット ファイルを作成する
通常、名前と値のペアとしてプロパティ セットの値をファイルに格納します。プロパティ セット ファイルは、properties
タイプのリソース ファイルです。
プロパティ セット ファイルでは、Java プロパティ ファイルと同じ構文をサポートしています。たとえば、Unicode 値を含めることができ、#
または !
文字をコメント マーカーとして使用できます。ただし、プロパティ セット ファイルで中かっこ {}
は使用できません。
プロパティ ファイル名に接尾辞 .properties
を追加する必要があります。たとえば、myconfig.my_key.properties
は使用できますが、myconfig.my_key
は使用できません。
プロパティ セットの仕様は property_set_name.property_name.properties
です。プロパティ セット名とプロパティ名の中にピリオドは使用できません。たとえば、myconfig.my_key.properties
は使用できますが、myconfig.my.key.properties
や my.config.my_key.properties
は使用できません。
次の例は、複数のプロパティを定義する単純なプロパティ セット ファイルを示しています。
# myProps.properties file # General properties foo=bar baz=biff # Messages/notes/warnings message=This is a basic message. note_message=This is an important message. error_message=This is an error message. # Keys publickey=abc123 privatekey=splitwithsoundman
プロパティ セット ファイルを作成したら、UI または API のいずれかを使用してファイルを Apigee にアップロードします。
UI を使用してプロパティ セットを管理する
他のリソースを管理するのと同じ方法で、UI を使用して API プロキシ リビジョンをスコープとするプロパティ セットを管理します。詳細については、UI を使用してリソースを管理するをご覧ください。
API を使用してプロパティ セットを管理する
以降のセクションで説明するように、API を使用して、API プロキシ リビジョンまたは環境をスコープとするプロパティ セットを管理します。
API を使用してプロパティ セットを作成する
ここでは、API を使用して、API プロキシ リビジョンまたは環境をスコープとするプロパティ セットを作成する方法について説明します。
API を使用して API プロキシ リビジョンをスコープとするプロパティ セットを作成する
API を使用して API プロキシ リビジョンをスコープとするプロパティ セットを作成するには:
- プロパティ セットのファイルを作成します。
- プロパティ セットのファイルを API プロキシ構成バンドルに追加します。
- Create API proxy API または Update API proxy revision API を使用して、バンドルをアップロードします。
API を使用して環境をスコープとするプロパティ セットを作成する
API を使用して環境をスコープとするプロパティ セットを追加するには、プロパティ セットのファイルを作成し、リソース https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles
に POST
リクエストを送信することで組織の環境にアップロードします。
リクエストには次の情報を含めます。
name
クエリ パラメータにプロパティ セットの名前を設定します。type
クエリ パラメータをproperties
に設定します。- プロパティ セットのファイルの内容を
application/octet-stream
またはmultipart/form-data
として渡します。
次の例では、MyPropSet
という名前のプロパティ セットを /Users/myhome/myprops.properties
ファイルからインポートしています。
curl -X POST "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles?name=MyPropSet&type=properties"
-H "Authorization: Bearer $TOKEN" \
-H "Content-type: multipart/form-data" \
-F file=@/Users/myhome/myprops.properties
OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN
は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl
オプションの詳細については、curl の使用をご覧ください。
レスポンスの例を次に示します。
{
"name": "MyPropSet",
"type": "properties"
}
詳細については、Create resource file API をご覧ください。
API を使用してプロパティ セットを表示する
ここでは、API を使用して環境をスコープとするプロパティ セットを表示する方法について説明します。
API を使用して環境をスコープとするプロパティ セットをすべて表示する
API を使用して環境をスコープとするプロパティ セットをすべて表示するには、https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/properties
に GET
リクエストを送信します。
次の例では、テスト環境のプロパティ セットをすべて一覧表示しています。
curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties" \
-H "Authorization: Bearer $TOKEN"
OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN
は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl
オプションの詳細については、curl の使用をご覧ください。
レスポンスの例を次に示します。
{
"resourceFile": [
{
"name": "MyPropSet",
"type": "properties"
}
]
}
詳細については、List environment resource files API をご覧ください。
API を使用して環境をスコープとするプロパティ セットの内容を表示する
API を使用して環境をスコープとするプロパティ セットの内容を表示するには、https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/properties/name
に GET
リクエストを送信します。
次の例では、テスト環境に設定された MyPropSet
プロパティの内容を表示しています。
curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties/MyPropSet" \
-H "Authorization: Bearer $TOKEN"
OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN
は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl
オプションの詳細については、curl の使用をご覧ください。
レスポンスの例を次に示します。
# myProps.properties file
# General properties
foo=bar
baz=biff
# Messages/notes/warnings
message=This is a basic message.
note_message=This is an important message.
error_message=This is an error message.
# Keys
publickey=abc123
privatekey=splitwithsoundman
詳細については、List environment resource files API をご覧ください。
API を使用してプロパティ セットを更新する
ここでは、API を使用して API プロキシ リビジョンまたは環境をスコープとするプロパティ セットを更新する方法について説明します。
API を使用して API プロキシ リビジョンをスコープとするプロパティ セットを更新する
API を使用して API プロキシ リビジョンをスコープとするプロパティ セットを更新するには:
- プロパティ セット ファイルを更新します。
- Get API proxy revision API を使用して次のオプションを設定し、API プロキシ構成バンドルをダウンロードします。
format
クエリ パラメータをbundle
に設定します。Accept
ヘッダーをapplication/zip
に設定します。
- プロパティ セットのファイルを API プロキシ構成バンドルに追加します。
- Update API proxy revision API を使用して、API プロキシ構成バンドルをアップロードします。
API を使用して環境をスコープとするプロパティ セットを更新する
API を使用して環境をスコープとするプロパティ セットを更新するには、プロパティ セットのファイルを更新し、リソース https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}
に PUT
リクエストを送信することで組織の環境にアップロードします。
リクエストには次の情報を含めます。
- {type} を
properties
に設定する - {name} に更新するプロパティ セットの名前を設定します。
- プロパティ セットのファイルの内容を
application/octet-stream
またはmultipart/form-data
として渡します。
次の例では、/Users/myhome/myprops-revised.properties
ファイルの内容を使用して MyPropSet
プロパティ セットを更新しています。
curl -X PUT "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties/MyPropSet"
-H "Authorization: Bearer $TOKEN" \
-H "Content-type: multipart/form-data" \
-F file=@/Users/myhome/myprops-revised.properties
OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN
は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl
オプションの詳細については、curl の使用をご覧ください。
レスポンスの例を次に示します。
{
"name": "MyPropSet",
"type": "properties"
}
詳細については、Update resource file API をご覧ください。
API を使用してプロパティ セットを削除する
ここでは、API を使用して API プロキシ リビジョンまたは環境をスコープとするプロパティ セットを削除する方法について説明します。
API を使用して API プロキシ リビジョンをスコープとするプロパティ セットを削除する
API を使用して API プロキシ リビジョンをスコープとするプロパティ セットを削除するには:
- Get API proxy revision API を使用して次のオプションを設定し、API プロキシ構成バンドルをダウンロードします。
format
クエリ パラメータをbundle
に設定します。Accept
ヘッダーをapplication/zip
に設定します。
- API プロキシ構成バンドルからプロパティ セットファイルを削除します。
- Update API proxy revision API を使用して、API プロキシ構成バンドルをアップロードします。
API を使用して環境をスコープとするプロパティ セットを削除する
API を使用して環境をスコープとするプロパティ セットを削除するには、https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}
に DELETE
リクエストを送信します。
リクエストには次の情報を含めます。
- {type} を
properties
に設定する - {name} に削除するプロパティ セットの名前を設定します。
次の例では、MyPropSet
プロパティ セットを削除しています。
curl -X DELETE https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties/MyPropSet \ -H "Authorization: Bearer $TOKEN"
OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN
は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl
オプションの詳細については、curl の使用をご覧ください。
レスポンスの例を次に示します。
{
"name": "MyPropSet",
"type": "properties"
}
詳細については、Delete resource file API をご覧ください。
プロパティ セットの値にアクセスする
プロパティ セットの値へのアクセスは、フロー変数(ポリシー、フロー、JavaScript コードなど)にアクセスできる API プロキシの任意の場所で行います。
プロパティ セットの値にアクセスするには、次の構文を使用します。
propertyset.[property_set_name].[property_name]
ここで
- property_set_name は、定義済みのファイル名(UI を使用している場合)または
name
クエリ パラメータの値(API を使用している場合)です。 - property_name は、プロパティの名前です。たとえば、プロパティ セットに
foo=bar
が含まれている場合、foo
はプロパティの名前、bar
は値です。
たとえば、JavaScript ポリシーで、getVariable()
メソッドを使用してプロパティ セットから値を取得します。
context.getVariable('propertyset.property_set_name.property_name);
次の例では、「MyPropSet」という名前のプロパティ セットの foo
プロパティの値を取得しています。
context.getVariable('propertyset.MyPropSet.foo);
次の例のように、ExtractVariables ポリシーを使用して、プロパティ セットからプロパティの値を取得し、別の変数に割り当てることができます。
<ExtractVariables name="ExtractVariables-1"> <DisplayName>Extract a portion of the url path</DisplayName> <Source>request</Source> <Variable name="propertyset.MyPropSet.foo"> <Pattern>{myVar}</Pattern> </Variable> <VariablePrefix>foobar</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
この例では、ポリシーが属性 name
から変数を読み取り、Pattern
要素の変数に値を割り当てます。
Assign Message ポリシーを使用してプロパティ セットキーの値を動的に割り当てる
Assign Message ポリシーを使用すると、プロパティ セットキーの値をフロー変数に動的に割り当てることができます。詳細については、Assign Message ポリシー リファレンスの PropertySetRef の説明をご覧ください。Apigee ハイブリッド ユーザーの場合
Apigee ハイブリッドを使用している場合は、次の点に注意してください。
- ハイブリッド管理プレーンがプロパティ セットを検証します。有効な場合、プロパティは管理プレーンに保存されます。
- Synchronizer がプロパティ セットのデータを取得し、ランタイム プレーンのローカルに保存します。
- Message Processor が、ダウンロードされたプロパティ セットを読み込み、プロキシを実行で使用できるようにします。