

# 使用 AWS CLI 的 MediaPackage VOD 示例
<a name="cli_mediapackage-vod_code_examples"></a>

以下代码示例演示如何通过将 AWS Command Line Interface与 MediaPackage VOD 结合使用，来执行操作和实现常见场景。

*操作是大型程序的代码摘录*，必须在上下文中运行。您可以通过操作了解如何调用单个服务函数，还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接，您可以从中找到有关如何在上下文中设置和运行代码的说明。

**Topics**
+ [操作](#actions)

## 操作
<a name="actions"></a>

### `create-asset`
<a name="mediapackage-vod_CreateAsset_cli_topic"></a>

以下代码示例演示了如何使用 `create-asset`。

**AWS CLI**  
**创建资产**  
以下 `create-asset` 示例在当前 AWS 账户中创建一个名为 `Chicken_Asset` 的资产。该资产将文件 `30sec_chicken.smil` 采集到 MediaPackage。  

```
aws mediapackage-vod create-asset \
    --id chicken_asset \
    --packaging-group-id hls_chicken_gp \
    --source-role-arn arn:aws:iam::111122223333:role/EMP_Vod \
    --source-arn arn:aws:s3::111122223333:video-bucket/A/30sec_chicken.smil
```
输出：  

```
{
    "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:assets/chicken_asset",
    "Id":"chicken_asset",
    "PackagingGroupId":"hls_chicken_gp",
    "SourceArn":"arn:aws:s3::111122223333:video-bucket/A/30sec_chicken.smil",
    "SourceRoleArn":"arn:aws:iam::111122223333:role/EMP_Vod",
    "EgressEndpoints":[
        {
            "PackagingConfigurationId":"New_config_1",
            "Url":"https://c75ea2668ab49d02bca7ae10ef31c59e.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/6644b55df1744261ab3732a8e5cdaf07/904b06a58c7645e08d57d40d064216ac/f5b2e633ff4942228095d164c10074f3/index.m3u8"
        },
        {
            "PackagingConfigurationId":"new_hls",
            "Url":" https://c75ea2668ab49d02bca7ae10ef31c59e.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/6644b55df1744261ab3732a8e5cdaf07/fe8f1f00a80e424cb4f8da4095835e9e/7370ec57432343af816332356d2bd5c6/string.m3u8"
        }
    ]
}
```
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[采集资产](https://docs.aws.amazon.com/mediapackage/latest/ug/asset-create.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》中的 [CreateAsset](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/create-asset.html)**。

### `create-packaging-configuration`
<a name="mediapackage-vod_CreatePackagingConfiguration_cli_topic"></a>

以下代码示例演示了如何使用 `create-packaging-configuration`。

**AWS CLI**  
**创建打包配置**  
以下 `create-packaging-configuration` 示例在名为 `hls_chicken` 的打包组中创建一个名为 `new_hls` 的打包配置。此示例使用磁盘上名为 `hls_pc.json` 的文件来提供详细信息。  

```
aws mediapackage-vod create-packaging-configuration \
    --id new_hls \
    --packaging-group-id hls_chicken \
    --hls-package file://hls_pc.json
```
 的内容`hls_pc.json`：  

```
{
    "HlsManifests":[
        {
            "AdMarkers":"NONE",
            "IncludeIframeOnlyStream":false,
            "ManifestName":"string",
            "ProgramDateTimeIntervalSeconds":60,
            "RepeatExtXKey":true,
            "StreamSelection":{
                "MaxVideoBitsPerSecond":1000,
                "MinVideoBitsPerSecond":0,
                "StreamOrder":"ORIGINAL"
            }
        }
    ],
    "SegmentDurationSeconds":6,
    "UseAudioRenditionGroup":false
}
```
输出：  

```
{
    "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/new_hls",
    "Id":"new_hls",
    "PackagingGroupId":"hls_chicken",
    "HlsManifests":{
        "SegmentDurationSeconds":6,
        "UseAudioRenditionGroup":false,
        "HlsMarkers":[
            {
                "AdMarkers":"NONE",
                "IncludeIframeOnlyStream":false,
                "ManifestName":"string",
                "ProgramDateTimeIntervalSeconds":60,
                "RepeatExtXKey":true,
                "StreamSelection":{
                    "MaxVideoBitsPerSecond":1000,
                    "MinVideoBitsPerSecond":0,
                    "StreamOrder":"ORIGINAL"
                }
            }
        ]
    }
}
```
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[创建打包配置](https://docs.aws.amazon.com/mediapackage/latest/ug/pkg-cfig-create.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [CreatePackagingConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/create-packaging-configuration.html)。

### `create-packaging-group`
<a name="mediapackage-vod_CreatePackagingGroup_cli_topic"></a>

以下代码示例演示了如何使用 `create-packaging-group`。

**AWS CLI**  
**创建打包组**  
以下 `create-packaging-group` 示例列出当前 AWS 账户中配置的所有打包组。  

```
aws mediapackage-vod create-packaging-group \
    --id hls_chicken
```
输出：  

```
{
    "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-groups/hls_chicken",
    "Id": "hls_chicken"
}
```
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[创建打包组](https://docs.aws.amazon.com/mediapackage/latest/ug/pkg-group-create.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [CreatePackagingGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/create-packaging-group.html)。

### `delete-asset`
<a name="mediapackage-vod_DeleteAsset_cli_topic"></a>

以下代码示例演示了如何使用 `delete-asset`。

**AWS CLI**  
**删除资产**  
以下 `delete-asset` 示例删除名为 `30sec_chicken` 的资产。  

```
aws mediapackage-vod delete-asset \
    --id 30sec_chicken
```
此命令不生成任何输出。  
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[删除资产](https://docs.aws.amazon.com/mediapackage/latest/ug/asset-delete.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》中的 [DeleteAsset](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/delete-asset.html)**。

### `delete-packaging-configuration`
<a name="mediapackage-vod_DeletePackagingConfiguration_cli_topic"></a>

以下代码示例演示了如何使用 `delete-packaging-configuration`。

**AWS CLI**  
**删除打包配置**  
以下 `delete-packaging-configuration` 示例删除名为 `CMAF` 的打包配置。  

```
aws mediapackage-vod delete-packaging-configuration \
    --id CMAF
```
此命令不生成任何输出。  
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[删除打包配置](https://docs.aws.amazon.com/mediapackage/latest/ug/pkg-cfig-delete.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DeletePackagingConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/delete-packaging-configuration.html)。

### `delete-packaging-group`
<a name="mediapackage-vod_DeletePackagingGroup_cli_topic"></a>

以下代码示例演示了如何使用 `delete-packaging-group`。

**AWS CLI**  
**删除打包组**  
以下 `delete-packaging-group` 示例删除名为 `Dash_widevine` 的打包组。  

```
aws mediapackage-vod delete-packaging-group \
    --id Dash_widevine
```
此命令不生成任何输出。  
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[删除打包组](https://docs.aws.amazon.com/mediapackage/latest/ug/pkg-group-delete.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DeletePackagingGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/delete-packaging-group.html)。

### `describe-asset`
<a name="mediapackage-vod_DescribeAsset_cli_topic"></a>

以下代码示例演示了如何使用 `describe-asset`。

**AWS CLI**  
**描述资产**  
以下 `describe-asset` 示例显示名为 `30sec_chicken` 的资产的所有详细信息。  

```
aws mediapackage-vod describe-asset \
    --id 30sec_chicken
```
输出：  

```
{
    "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:assets/30sec_chicken",
    "Id":"30sec_chicken",
    "PackagingGroupId":"Packaging_group_1",
    "SourceArn":"arn:aws:s3::111122223333:video-bucket/A/30sec_chicken.smil",
    "SourceRoleArn":"arn:aws:iam::111122223333:role/EMP_Vod",
    "EgressEndpoints":[
        {
            "PackagingConfigurationId":"DASH",
            "Url":"https://a5f46a44118ba3e3724ef39ef532e701.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/aad7962c569946119c2d5a691be5663c/66c25aff456d463aae0855172b3beb27/4ddfda6da17c4c279a1b8401cba31892/index.mpd"
        },
        {
            "PackagingConfigurationId":"HLS",
            "Url":"https://a5f46a44118ba3e3724ef39ef532e701.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/aad7962c569946119c2d5a691be5663c/6e5bf286a3414254a2bf0d22ae148d7e/06b5875b4d004c3cbdc4da2dc4d14638/index.m3u8"
        },
        {
            "PackagingConfigurationId":"CMAF",
            "Url":"https://a5f46a44118ba3e3724ef39ef532e701.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/aad7962c569946119c2d5a691be5663c/628fb5d8d89e4702958b020af27fde0e/05eb062214064238ad6330a443aff7f7/index.m3u8"
        }
    ]
}
```
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[查看资产详细信息](https://docs.aws.amazon.com/mediapackage/latest/ug/asset-view.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribeAsset](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/describe-asset.html)。

### `describe-packaging-configuration`
<a name="mediapackage-vod_DescribePackagingConfiguration_cli_topic"></a>

以下代码示例演示了如何使用 `describe-packaging-configuration`。

**AWS CLI**  
**描述打包配置**  
以下 `describe-packaging-configuration` 示例显示名为 `DASH` 的打包配置的所有详细信息。  

```
aws mediapackage-vod describe-packaging-configuration \
    --id DASH
```
输出：  

```
{
    "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/DASH",
    "Id":"DASH",
    "PackagingGroupId":"Packaging_group_1",
    "DashPackage":[
        {
            "SegmentDurationSeconds":"2"
        },
        {
            "DashManifests":{
                "ManifestName":"index",
                "MinBufferTimeSeconds":"30",
                "Profile":"NONE"
            }
        }
    ]
}
```
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[查看打包配置详细信息](https://docs.aws.amazon.com/mediapackage/latest/ug/pkg-cfig-view.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribePackagingConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/describe-packaging-configuration.html)。

### `describe-packaging-group`
<a name="mediapackage-vod_DescribePackagingGroup_cli_topic"></a>

以下代码示例演示了如何使用 `describe-packaging-group`。

**AWS CLI**  
**描述打包组**  
以下 `describe-packaging-group` 示例显示名为 `Packaging_group_1` 的打包组的所有详细信息。  

```
aws mediapackage-vod describe-packaging-group \
    --id Packaging_group_1
```
输出：  

```
{
    "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-groups/Packaging_group_1",
    "Id": "Packaging_group_1"
}
```
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[查看打包组详细信息](https://docs.aws.amazon.com/mediapackage/latest/ug/pkg-group-view.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribePackagingGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/describe-packaging-group.html)。

### `list-assets`
<a name="mediapackage-vod_ListAssets_cli_topic"></a>

以下代码示例演示了如何使用 `list-assets`。

**AWS CLI**  
**列出所有资产**  
以下 `list-assets` 示例列出当前 AWS 账户中配置的所有资产。  

```
aws mediapackage-vod list-assets
```
输出：  

```
{
    "Assets": [
        "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:assets/30sec_chicken",
        "Id": "30sec_chicken",
        "PackagingGroupId": "Packaging_group_1",
        "SourceArn": "arn:aws:s3::111122223333:video-bucket/A/30sec_chicken.smil",
        "SourceRoleArn": "arn:aws:iam::111122223333:role/EMP_Vod"
    ]
}
```
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[查看资产详细信息](https://docs.aws.amazon.com/mediapackage/latest/ug/asset-view.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》中的 [ListAssets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/list-assets.html)**。

### `list-packaging-configurations`
<a name="mediapackage-vod_ListPackagingConfigurations_cli_topic"></a>

以下代码示例演示了如何使用 `list-packaging-configurations`。

**AWS CLI**  
**列出所有打包配置**  
以下 `list-packaging-configurations` 示例列出名为 `Packaging_group_1` 的打包组上配置的所有打包配置。  

```
aws mediapackage-vod list-packaging-configurations \
    --packaging-group-id Packaging_group_1
```
输出：  

```
{
    "PackagingConfigurations":[
        {
            "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/CMAF",
            "Id":"CMAF",
            "PackagingGroupId":"Packaging_group_1",
            "CmafPackage":[
                {
                    "SegmentDurationSeconds":"2"
                },
                {
                    "HlsManifests":{
                        "AdMarkers":"NONE",
                        "RepeatExtXKey":"False",
                        "ManifestName":"index",
                        "ProgramDateTimeIntervalSeconds":"0",
                        "IncludeIframeOnlyStream":"False"
                    }
                }
            ]
        },
        {
            "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/DASH",
            "Id":"DASH",
            "PackagingGroupId":"Packaging_group_1",
            "DashPackage":[
                {
                    "SegmentDurationSeconds":"2"
                },
                {
                    "DashManifests":{
                        "ManifestName":"index",
                        "MinBufferTimeSeconds":"30",
                        "Profile":"NONE"
                    }
                }
            ]
        },
        {
            "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/HLS",
            "Id":"HLS",
            "PackagingGroupId":"Packaging_group_1",
            "HlsPackage":[
                {
                    "SegmentDurationSeconds":"6",
                    "UseAudioRenditionGroup":"False"
                },
                {
                    "HlsManifests":{
                        "AdMarkers":"NONE",
                        "RepeatExtXKey":"False",
                        "ManifestName":"index",
                        "ProgramDateTimeIntervalSeconds":"0",
                        "IncludeIframeOnlyStream":"False"
                    }
                }
            ]
        },
        {
            "Arn":"arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-configurations/New_config_0_copy",
            "Id":"New_config_0_copy",
            "PackagingGroupId":"Packaging_group_1",
            "HlsPackage":[
                {
                    "SegmentDurationSeconds":"6",
                    "UseAudioRenditionGroup":"False"
                },
                {
                    "Encryption":{
                        "EncryptionMethod":"AWS_128",
                        "SpekeKeyProvider":{
                           "RoleArn":"arn:aws:iam:111122223333::role/SPEKERole",
                            "Url":"https://lfgubdvs97.execute-api.us-west-2.amazonaws.com/EkeStage/copyProtection/",
                            "SystemIds":[
                                "81376844-f976-481e-a84e-cc25d39b0b33"
                            ]
                        }
                    }
                },
                {
                    "HlsManifests":{
                        "AdMarkers":"NONE",
                        "RepeatExtXKey":"False",
                        "ManifestName":"index",
                        "ProgramDateTimeIntervalSeconds":"0",
                        "IncludeIframeOnlyStream":"False"
                    }
                }
            ]
        }
    ]
}
```
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[查看打包配置详细信息](https://docs.aws.amazon.com/mediapackage/latest/ug/pkg-cfig-view.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListPackagingConfigurations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/list-packaging-configurations.html)。

### `list-packaging-groups`
<a name="mediapackage-vod_ListPackagingGroups_cli_topic"></a>

以下代码示例演示了如何使用 `list-packaging-groups`。

**AWS CLI**  
**列出所有打包组**  
以下 `list-packaging-groups` 示例列出当前 AWS 账户中配置的所有打包组。  

```
aws mediapackage-vod list-packaging-groups
```
输出：  

```
{
    "PackagingGroups": [
        {
            "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-groups/Dash_widevine",
            "Id": "Dash_widevine"
        },
        {
            "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-groups/Encrypted_HLS",
            "Id": "Encrypted_HLS"
        },
        {
            "Arn": "arn:aws:mediapackage-vod:us-west-2:111122223333:packaging-groups/Packaging_group_1",
            "Id": "Packaging_group_1"
        }
    ]
}
```
有关更多信息，请参阅《AWS Elemental MediaPackage 用户指南》**中的[查看打包组详细信息](https://docs.aws.amazon.com/mediapackage/latest/ug/pkg-group-view.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListPackagingGroups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mediapackage-vod/list-packaging-groups.html)。