

# AWS CLI를 사용한 MediaPackage VOD 예시
<a name="cli_mediapackage-vod_code_examples"></a>

다음 코드 예시는 MediaPackage VOD와 함께 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

*작업*은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

**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`이라는 자산을 생성합니다. 자산은 MediaPackage로 파일 `30sec_chicken.smil`을 수집합니다.  

```
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)를 참조하세요.