

文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# MediaPackage AWS SDKs的程式碼範例
<a name="mediapackage_code_examples"></a>

下列程式碼範例示範如何使用 AWS Elemental MediaPackage 搭配 AWS 軟體開發套件 (SDK)。

*Actions* 是大型程式的程式碼摘錄，必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數，但您可以在其相關情境中查看內容中的動作。

**其他資源**
+  **[MediaPackage 使用者指南](https://docs.aws.amazon.com/mediapackage/latest/ug/what-is.html)** – MediaPackage 的詳細資訊。
+ **[MediaPackage API 參考](https://docs.aws.amazon.com/mediapackage/latest/apireference/what-is.html)** – 所有可用 MediaPackage 動作的詳細資訊。
+ **[AWS 開發人員中心](https://aws.amazon.com/developer/code-examples/?awsf.sdk-code-examples-product=product%23elemental-mediapackage)** – 您可以依類別或全文搜尋篩選的程式碼範例。
+ **[AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples)** – GitHub 儲存庫使用慣用語言的完整程式碼。包含設定和執行程式碼的指示。

**Contents**
+ [基本概念](mediapackage_code_examples_basics.md)
  + [動作](mediapackage_code_examples_actions.md)
    + [`ListChannels`](mediapackage_example_mediapackage_ListChannels_section.md)
    + [`ListOriginEndpoints`](mediapackage_example_mediapackage_ListOriginEndpoints_section.md)

# MediaPackage AWS SDKs的基本範例
<a name="mediapackage_code_examples_basics"></a>

下列程式碼範例示範如何 AWS Elemental MediaPackage 搭配 AWS SDKs 使用 的基本概念。

**Contents**
+ [動作](mediapackage_code_examples_actions.md)
  + [`ListChannels`](mediapackage_example_mediapackage_ListChannels_section.md)
  + [`ListOriginEndpoints`](mediapackage_example_mediapackage_ListOriginEndpoints_section.md)

# MediaPackage AWS SDKs的動作
<a name="mediapackage_code_examples_actions"></a>

下列程式碼範例示範如何使用 AWS SDKs 執行個別 MediaPackage 動作。每個範例均包含 GitHub 的連結，您可以在連結中找到設定和執行程式碼的相關說明。

 下列範例僅包含最常使用的動作。如需完整清單，請參閱《[AWS Elemental MediaPackage API 參考](https://docs.aws.amazon.com/mediapackage/latest/apireference/what-is.html)》。

**Topics**
+ [`ListChannels`](mediapackage_example_mediapackage_ListChannels_section.md)
+ [`ListOriginEndpoints`](mediapackage_example_mediapackage_ListOriginEndpoints_section.md)

# `ListChannels` 搭配 AWS SDK 或 CLI 使用
<a name="mediapackage_example_mediapackage_ListChannels_section"></a>

下列程式碼範例示範如何使用 `ListChannels`。

------
#### [ CLI ]

**AWS CLI**  
**列出所有頻道**  
下列`list-channels`命令會列出目前 AWS 帳戶上設定的所有頻道。  

```
aws mediapackage list-channels
```
輸出：  

```
{
    "Channels": [
        {
            "Arn": "arn:aws:mediapackage:us-west-2:111222333:channels/584797f1740548c389a273585dd22a63",
            "HlsIngest": {
                "IngestEndpoints": [
                    {
                        "Id": "584797f1740548c389a273585dd22a63",
                        "Password": "webdavgeneratedpassword1",
                        "Url": "https://9be9c4405c474882.mediapackage.us-west-2.amazonaws.com/in/v2/584797f1740548c389a273585dd22a63/584797f1740548c389a273585dd22a63/channel",
                        "Username": "webdavgeneratedusername1"
                    },
                    {
                        "Id": "7d187c8616fd455f88aaa5a9fcf74442",
                        "Password": "webdavgeneratedpassword2",
                        "Url": "https://7bf454c57220328d.mediapackage.us-west-2.amazonaws.com/in/v2/584797f1740548c389a273585dd22a63/7d187c8616fd455f88aaa5a9fcf74442/channel",
                        "Username": "webdavgeneratedusername2"
                    }
                ]
            },
            "Id": "test",
            "Tags": {}
        }
    ]
}
```
如需詳細資訊，請參閱《AWS Elemental MediaPackage 使用者指南》**中的[檢視頻道詳細資訊](https://docs.aws.amazon.com/mediapackage/latest/ug/channels-view.html)。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ListChannels](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage/list-channels.html)。

------
#### [ Rust ]

**適用於 Rust 的 SDK**  
 GitHub 上提供更多範例。尋找完整範例，並了解如何在 [AWS 程式碼範例儲存庫](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/mediapackage#code-examples)中設定和執行。
列出頻道 ARN和描述。  

```
async fn show_channels(client: &Client) -> Result<(), Error> {
    let list_channels = client.list_channels().send().await?;

    println!("Channels:");

    for c in list_channels.channels() {
        let description = c.description().unwrap_or_default();
        let arn = c.arn().unwrap_or_default();

        println!("  Description : {}", description);
        println!("  ARN :         {}", arn);
        println!();
    }

    Ok(())
}
```
+  如需 API 詳細資訊，請參閱《AWS SDK for Rust API 參考》**中的 [ListChannels](https://docs.rs/aws-sdk-mediapackage/latest/aws_sdk_mediapackage/client/struct.Client.html#method.list_channels)。

------

# `ListOriginEndpoints` 搭配 AWS SDK 或 CLI 使用
<a name="mediapackage_example_mediapackage_ListOriginEndpoints_section"></a>

下列程式碼範例示範如何使用 `ListOriginEndpoints`。

------
#### [ CLI ]

**AWS CLI**  
**列出頻道上的所有來源端點**  
下列 `list-origin-endpoints` 命令會列出在名為 `test` 之頻道上設定的所有來源端點。  

```
aws mediapackage list-origin-endpoints \
    --channel-id test
```
輸出：  

```
{
    "OriginEndpoints": [
        {
            "Arn": "arn:aws:mediapackage:us-west-2:111222333:origin_endpoints/247cff871f2845d3805129be22f2c0a2",
            "ChannelId": "test",
            "DashPackage": {
                "ManifestLayout": "FULL",
                "ManifestWindowSeconds": 60,
                "MinBufferTimeSeconds": 30,
                "MinUpdatePeriodSeconds": 15,
                "PeriodTriggers": [],
                "Profile": "NONE",
                "SegmentDurationSeconds": 2,
                "SegmentTemplateFormat": "NUMBER_WITH_TIMELINE",
                "StreamSelection": {
                    "MaxVideoBitsPerSecond": 2147483647,
                    "MinVideoBitsPerSecond": 0,
                    "StreamOrder": "ORIGINAL"
                },
                "SuggestedPresentationDelaySeconds": 25
            },
            "Id": "tester2",
            "ManifestName": "index",
            "StartoverWindowSeconds": 0,
            "Tags": {},
            "TimeDelaySeconds": 0,
            "Url": "https://8343f7014c0ea438.mediapackage.us-west-2.amazonaws.com/out/v1/247cff871f2845d3805129be22f2c0a2/index.mpd",
            "Whitelist": []
        },
        {
            "Arn": "arn:aws:mediapackage:us-west-2:111222333:origin_endpoints/869e237f851549e9bcf10e3bc2830839",
            "ChannelId": "test",
            "HlsPackage": {
                "AdMarkers": "NONE",
                "IncludeIframeOnlyStream": false,
                "PlaylistType": "EVENT",
                "PlaylistWindowSeconds": 60,
                "ProgramDateTimeIntervalSeconds": 0,
                "SegmentDurationSeconds": 6,
                "StreamSelection": {
                    "MaxVideoBitsPerSecond": 2147483647,
                    "MinVideoBitsPerSecond": 0,
                    "StreamOrder": "ORIGINAL"
                },
                "UseAudioRenditionGroup": false
            },
            "Id": "tester",
            "ManifestName": "index",
            "StartoverWindowSeconds": 0,
            "Tags": {},
            "TimeDelaySeconds": 0,
            "Url": "https://8343f7014c0ea438.mediapackage.us-west-2.amazonaws.com/out/v1/869e237f851549e9bcf10e3bc2830839/index.m3u8",
            "Whitelist": []
        }
    ]
}
```
如需詳細資訊，請參閱《AWS Elemental MediaPackage 使用者指南》**中的[檢視與頻道相關聯的所有端點](https://docs.aws.amazon.com/mediapackage/latest/ug/endpoints-view-all.html)。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ListOriginEndpoints](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage/list-origin-endpoints.html)。

------
#### [ Rust ]

**適用於 Rust 的 SDK**  
 GitHub 上提供更多範例。尋找完整範例，並了解如何在 [AWS 程式碼範例儲存庫](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/mediapackage#code-examples)中設定和執行。
列出您的端點描述和 URL。  

```
async fn show_endpoints(client: &Client) -> Result<(), Error> {
    let or_endpoints = client.list_origin_endpoints().send().await?;

    println!("Endpoints:");

    for e in or_endpoints.origin_endpoints() {
        let endpoint_url = e.url().unwrap_or_default();
        let endpoint_description = e.description().unwrap_or_default();
        println!("  Description: {}", endpoint_description);
        println!("  URL :        {}", endpoint_url);
        println!();
    }

    Ok(())
}
```
+  如需 API 詳細資訊，請參閱《AWS SDK for Rust API 參考》**中的 [ListOriginEndpoints](https://docs.rs/aws-sdk-mediapackage/latest/aws_sdk_mediapackage/client/struct.Client.html#method.list_origin_endpoints)。

------