0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Apigee】KeyValueMapから値取る方法

Last updated at Posted at 2021-12-22

Apigeeの仕様については、公式のドキュメントやYoutubeにアップされている説明動画がたくさんあるのでありがたいです。
ただ謎に細かいところでつまずいたりしたので一応メモ。

KVM (KeyValueMap) とは

キーと値のセット。
Apigee内で使用可能なConfig値のようなイメージ。
認証情報やターゲットURLなど、プログラムの変更とは関わらない変更が生じる場合に使用。

環境毎に別の値を設定可能。例えば同じ名称のKVMをprodとtestに作成しておけば、APIプロキシがデプロイされている環境のKVMをApigeeは取得してくれる。
※公式の説明動画

KVMの設定

サイドバーの [Admin] ⇒ [Environment] ⇒ [Key Value Maps]
に現在設定済みのKVMが一覧表示される。
※UIは頻繁に変わってるっぽい
image.png

###手順(画面ポチポチ)
KeyValueMapは、こんなイメージ↓で作成される。

KVM1
 |_ key:value
 |_ key:value

KVM2
 |_ key:value
 |_ key:value
 |_ key:value
  1. 画面右上の「+ Key value map」押下で出るダイアログで作成するKVMの名前を入力
  2. 暗号化するかどうか選択(チェックボックス)して、Add
  3. 作ったKVMを選択
  4. keyとvalueの組み合わせを入力していく

KVMの取得

  1. ポリシー「Key Value Map Operations」を選択
  2. 取得対象のKVM名を指定
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-GetConfig" mapIdentifier="Config">
~~~~~~中略~~~~~~~
    <Get assignTo="private.httpTargetUrl">
        <Key>
            <Parameter>HTTPTargetUrl</Parameter>
        </Key>
    </Get>

・KeyValueMapOperationsタグのmapIdentifier属性で、KVM名を指定
・Keyタグ内で対象のkey文字列を指定
・GetタグのassignTo属性で、取得した値を格納する変数名を指定
※この際、暗号化済みの値を取得する場合は「private.」を使用する必要があります(上記の例)。

これで、後続のポリシー内でKVM値が参照可能になります。
上記の例だと「private.httpTargetUrl」を指定することで取得できます。

context.getVariable("private.httpTargetUrl")

※KeyValueMapOperationsポリシーで使う各種属性の詳細はこちら(公式サイト)

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?