このページは Apigee と Apigee ハイブリッドに適用されます。
Apigee Edge のドキュメントを表示する。
 
Apigee では、ポリシーを使用することにより、コードを記述することなく API の動作をプログラムできます。ポリシーは、特定の限定的な管理機能を実装するモジュールに似ています。ポリシーは、一般的な管理機能を API に効率的かつ確実に追加できるように設計されています。
ポリシーには、セキュリティ、レート制限、変換、メディエーションなどの機能が備わっているため、コードを独自に作成して維持する必要はありません。Apigee が提供する一連のポリシータイプのだけに限定されません。API プロキシの機能を拡張し、Apigee のポリシーが対応する基本的な管理機能を基にイノベーションを実現するカスタム スクリプトとコード(JavaScript アプリケーションなど)を作成することもできます。
以降のセクションで説明するように、Cloud Code の Apigee を使用して、API プロキシと共有フローにポリシーを作成して接続します。ポリシーの種類によっては、リソースの管理の説明に沿って、リソースを作成する必要がある場合があります。Apigee ワークスペースでのフォルダとファイルの管理もご覧ください。
ポリシーの作成
Apigee in Cloud Code を使用してポリシーを作成するには:
- Apigee ワークスペースで、ポリシーの適用場所に応じて、次のいずれかの操作を行います。 - 適用先 - アクション - API プロキシ - 次のいずれかの操作を行います。 - 次のいずれかのフォルダにカーソルを合わせて、[ ] をクリックし、[ポリシーを作成] を選択します。 ] をクリックし、[ポリシーを作成] を選択します。- apiproxy-nameプロキシ バンドル
- apiproxy-name/apiproxy
 
- API プロキシの apiproxy-name/apiproxy/policiesフォルダにカーソルを合わせ、[ ] をクリックします。 ] をクリックします。
 - 共有フロー - 次のいずれかの操作を行います。 - 次のいずれかのフォルダにカーソルを合わせて、[ ] をクリックし、[ポリシーを作成] を選択します。 ] をクリックし、[ポリシーを作成] を選択します。- sharedflow-name共有フローバンドル
- sharedflow-name/sharedflowbundle
 
- 共有フローの sharedflow-name/sharedflowbundle/policiesフォルダにカーソルを合わせて、[ ] をクリックします。 ] をクリックします。
 
- 次のいずれかのフォルダにカーソルを合わせて、[
[Create policy] ウィザードが開きます。
- リストから、作成するポリシーのカテゴリを選択します。 ポリシーのカテゴリについては、ポリシー リファレンスの概要をご覧ください。 
- ポリシーの一意の名前を入力して、Enter キーを押します。[Apigee] セクションで API プロキシまたは共有フローの - /policiesフォルダにポリシーが追加され、エディタで開きます。
- 必要に応じてファイルを編集し、[File] > [Save] を選択するか ⌘+S キーを押して、編集内容を保存します。 ポリシーの構成の詳細については、ポリシー リファレンスの概要をご覧ください。 
- リソースの管理で説明されているとおり、ポリシータイプによって必要な場合は、リソースを作成します。 
フローにポリシーを接続する
ポリシーは、フローに接続されるまで実行されません。以下のトピックで説明しているように、ProxyEndpoint 構成または TargetEndpoint 構成で、適切なリクエスト フロー要素またはレスポンス フロー要素に <Step> 要素を追加することで、ポリシーをフローに接続できます。
たとえば、次の構成では、QuotaPolicy を ProxyEndpoint の <PreFlow> に接続し、API プロキシで一定期間内に許可されるリクエスト メッセージの数を構成します。
<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>QuotaPolicy</Name></Step>
    </Request>
  </PreFlow>
  <HTTPProxyConnection>
    <BasePath>/weather</BasePath>
  </HTTPProxyConnection>
  <RouteRule name="default">
    <TargetEndpoint>default</TargetEndpoint>
  </RouteRule>
</ProxyEndpoint>