[新機能] AWS Elemental MediaLiveでチャンネル設定を変更できるようになりました! | Developers.IO

[新機能] AWS Elemental MediaLiveでチャンネル設定を変更できるようになりました!

はじめに

清水です。先日待望の東京リージョンでも利用可能となったAWS Elemental MediaLive、機能アップデートの発表も続いているのですが、さらにもうひとつ、チャンネル設定の変更といううれしいアップデートがありました。

AWS Elemental MediaLiveの出力先や出力動画設定を行っているチャンネルですが、実はこれまで一度作成したら変更することができませんでした。そのため作成後に変更する必要があればチャンネルごと作り直し、というちょっと大変な作業になっていました。今回のアップデートでこの点も改善され、変更しやすい構成となりました。本エントリではこの新機能を使い、実際にチャンネル設定を変更してみたのでまとめてみます。

AWS Elementa MediaLiveのチャンネル設定を変更してみる

AWS マネージメントコンソールからの変更

まずはAWS マネージメントコンソールからChannelの項目を確認してみます。以下の通り[Edit]ボタンが追加されており、チャンネルを選択すると[Edit]ボタンが押下できるようになります。

Editボタンを押下するとEdit channelのページに遷移します。今回はHLS出力のABR設定を変更して、ビットレート/解像度の一番低いOutput 3(_240p30)を削除してみます。

「X」ボタンで削除後に、[Update channel]ボタンを押下、その後チャンネル設定を確認してみると以下のように、Output 3が削除されています。

AWS CLIからの変更

AWS CLIについては以下のmedialive update-channelコマンドが追加されています。

こちらを使ってチャンネルの変更をしてみます。作業の前にAWS CLIを最新バージョンにアップデートしておきましょう。

$ sudo pip install awscli -U

本エントリでは以下の環境で検証を行いました。

 $ aws --version
aws-cli/1.14.35 Python/2.7.10 Darwin/16.7.0 botocore/1.8.39

チャンネルについて、以下のようにチャンネル名が「MediaLiveChannel0208 - clone」となってしまいました。(既存のチャンネルからClone機能で複製して作成した場合、またJSONからImportした場合のデフォルトがこのようになりますね。)

 $ aws medialive describe-channel --channel-id XXXXXXX --query "Name"
"MediaLiveChannel0208 - clone"

チャンネル名を別の「MediaLiveChannel0209」とする場合、update-channelコマンドに--nameオプションを付けて以下のように実行します。

 $ aws medialive update-channel --channel-id XXXXXXX --name "MediaLiveChannel0209"

コマンド実行後、JSONが返されます。(長いので割愛します。)

その後、チャンネル名を確認します。無事に意図したチャンネル名に変更されていますね。

 $ aws medialive describe-channel --channel-id XXXXXXX --query "Name"
"MediaLiveChannel0209"

チャンネル設定が変更できないタイミング

チャンネル設定の変更ですが、チャンネルのStateがIdleの状態では実行できましたが、Start後のRunnnig状態では下記の通り、[Edit]ボタンがグレーアウトして設定変更ができませんでした。

AWS CLIでも以下のように、Stateが"RUNNING"の状態ではエラーが発生し、updateできない旨が返りました。

 $ aws medialive describe-channel --channel-id 5165779 --query "[Name,State]"
[
    "MediaLiveChannel0209",
    "RUNNING"
]
 $ aws medialive update-channel --channel-id 5165779 --name "MediaLiveChannel0210"

An error occurred (ConflictException) when calling the UpdateChannel operation: Cannot update a channel that is in RUNNING

まとめ

AWS Elemental MediaLiveの機能アップデート、チャンネル設定の変更機能を試してみました。これまでチャンネル作成後の設定変更ができず、既存チャンネルをCloneするなどしての対応が必要でしたが、今回のアップデートでこれまでよりも容易に設定変更ができるようになりました。チャンネル状態がRunnigの場合などには設定変更ができませんので、その点には注意しましょう。

おまけ: チャンネル設定が変更できなかったときのMediaLiveを振り返る

おまけとして、チャンネル設定ができなかったころのMediaLiveを振り返っておきましょう。以下はAWS Elemental MediaLiveリリース直後の12月上旬に書いたエントリからのスクリーンショットのキャプチャです。たしかに[Start]/[Stop]/[Clone]/[Delete]のメニューはあっても[Edit]のメニューはありませんね。

AWS CLIについてもAWS Media Servicesリリース当日に公開された中山(順)のエントリを確認すると、medialive update-channelコマンドがないことがわかります。

また、AWS CLIのバージョンが古いと、下記のように「medialive update-channelコマンドがない」とエラーとなってしまい、チャンネル更新機能がなかったことがわかります。

$ aws --version
aws-cli/1.14.17 Python/2.7.10 Darwin/16.7.0 botocore/1.8.21

$ aws medialive update-channel
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: argument operation: Invalid choice, valid choices are:

create-channel                           | create-input                         
create-input-security-group              | delete-channel                       
delete-input                             | delete-input-security-group          
describe-channel                         | describe-input                       
describe-input-security-group            | list-channels                        
list-input-security-groups               | list-inputs                          
start-channel                            | stop-channel                         
help