---
schema_version: "1"
id: 1cd38c69817a1d79b18638ad53493bd2b2b0d3e455e7aa58aacb1bc1079457a4
title: ポリシーのメタデータへのアクセス
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/pdk/1.2/policies-pdk-configure-features-metadata.md
canonical_url: https://docs.mulesoft.com/jp/pdk/1.2/policies-pdk-configure-features-metadata
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 3cec2281fa6e70c9aab8e8a2fae765534925fd3902f45ae26a27c85888d39b90
description: MuleSoft Documentation Site
release: "1.2"
latest: false
---
# ポリシーのメタデータへのアクセス

PDK は、ポリシー、Flex インスタンス、API インスタンス、および Anypoint Organization に関するメタデータを提供する ​`Metadata`​ Injectable を提供します。​`Metadata`​ 構造体は次のようになります。

```Rust
pub struct Metadata {
    pub flex_metadata: FlexMetadata,
    pub policy_metadata: PolicyMetadata,
    pub api_metadata: ApiMetadata,
    pub platform_metadata: PlatformMetadata,
}
```

`Metadata`​ 構造体は、以下の構造体を参照しています。

- `FlexMetadata`​:
    
    ```Rust
    pub struct FlexMetadata {
        pub flex_name: String,
        pub flex_version: String,
    }
    ```
- `PolicyMetadata`​:
    
    ```Rust
    pub struct PolicyMetadata {
        pub policy_name: String,
        pub policy_namespace: String,
    }
    ```
- `ApiMetadata`​:
    
    ```Rust
    pub struct ApiMetadata {
        pub id: Option<String>,
        pub name: Option<String>,
        pub version: Option<String>,
        pub slas: Option<Vec<ApiSla>>, // API SLA tiers in the platform
    }
    
    // Each ApiSla contains the limits for each SLA.
    pub struct ApiSla {
        pub id: String,
        pub tiers: Vec<Tier>, // Limits within an API SLA tier in the platform
    }
    ```
- `PlatformMetadata`​:
    
    ```Rust
    pub struct PlatformMetadata {
        pub organization_id: String,
        pub environment_id: String,
        pub root_organization_id: String,
    }
    ```

## [](#entrypoint-へのメタデータの挿入)#\[entrypoint\] へのメタデータの挿入

メタデータを ​`#[entrypoint]`​ 設定関数に挿入するには、以下のコードスニペットを参照してください。

```Rust
#[entrypoint]
async fn configure(launcher: Launcher, metadata: Metadata) -> Result<()> {
    logger::info!("Flex instance name is: {}", metadata.flex_metadata.flex_name.to_string());

    launcher
        .launch(on_request(filter))
        .await?;
    Ok(())
}
```

## [](#ラップされた関数へのメタデータの挿入)ラップされた関数へのメタデータの挿入

ラップされた関数にメタデータを直接挿入することはできません。ラップされた関数でメタデータを使用するには、まず ​`#[entrypoint]`​ 関数にデータを挿入してから、ラップされた関数にデータを挿入します。

```Rust
#[entrypoint]
async fn configure(launcher: Launcher, metadata: Metadata) -> Result<()> {
    launcher
        .launch(on_request(|r| request_filter(r, &metadata)))
        .await?;
    Ok(())
}

async fn request_filter(_: RequestState, metadata: &Metadata) -> Flow<()> {
    let mut vec = Vec::new();
    let headers = &mut vec;
    headers.push((
        "flex_name".to_string(),
        metadata.flex_metadata.flex_name.to_string(),
    ));
    headers.push((
        "policy_name".to_string(),
        metadata.policy_metadata.policy_name.to_string(),
    ));

    Flow::Break(Response::new(201).with_headers(vec))
}
```

## [](#関連情報)関連情報

- [パラメーターの挿入](https://docs.mulesoft.com/jp/pdk/1.2/policies-pdk-configure-features-inject-parameters)