[update] AWS Elemental Linkでデバイスごとに名前を割り当てられるようになりました!
はじめに
清水です。本エントリでお届けするアップデートはこちら!AWS Elemental Linkでデバイスごとに名前を割り当てられるようになりました!(2020/11/11にポストされたアップデート情報のうちの1つを本エントリにて取り上げます。)
これまでAWSアカウント、リージョン内に複数のLinkデバイスが存在していた場合、それらを区別するためにはデバイスIDを確認する必要がありました。このデバイスID、hd-
から始まり24文字のランダムな英数字から構成されているようです。イメージとしてはEC2のインスタンスIDが近いかと思います。昔々の8文字のインスタンスIDの時代ならまだしも?、24文字の文字列で区別するのは難しいですよね。特にLinkデバイスが標準で冗長化構成に対応したことからも、1つのAWSアカウント内に複数のデバイスが並ぶことが予想されます。(もちろん、区別しやすいようにAWSアカウントを分けることも可能になりましたが。)そんな中、小さいながらも強力なアップデートです、Linkデバイスごとに名前の割り当てができるようになりました!IDと同様にEC2で例えればNameタグに該当するイメージでしょうか。(ただし、EC2インスタンスのようにTag情報として持っているわけではないのでご注意ください。)
本エントリではこのアップデートについて、実際に試してみたのでまとめてみます。
マネジメントコンソールからLinkデバイスに名前を割り当てる
まずはマネジメントコンソールから確認してみます。Devices一覧だと以下のような表示になります。この段階で2台のLinkデバイスを区別する方法としては、やはりデバイスIDしかありません。(入力している映像なども活用できなくはないですが。)
Device詳細画面に移動し、右上の[Edit]ボタンを押下しましょう。
Input deviceの編集ダイアログが現れます。Name
の項目を編集し、わかりやすい名称をつけましょう。
Elemental Link
からCM-ElementalLink-1
にしてみました。[Update]ボタンを押下して反映させます。
変更後、デバイス一覧画面では以下のように表示され、デバイスIDとあわせてName情報によりデバイスの区別が可能となります。
デバイスの詳細画面ではMetadataの欄にName情報がありますね。
AWS CLIからLinkデバイスに名前を割り当てる
続いてAWS CLIでもLinkデバイスへの名前の割り当て機能を確認してみたいと思います。AWS CLI v2の現時点での最新版を使って確認しています。具体的には以下の環境となります。
% aws --version aws-cli/2.1.4 Python/3.7.4 Darwin/19.6.0 exe/x86_64
まずはaws medialive describe-input-device
コマンドでデバイスの情報を確認してみましょう。引数として--input-device-id
でデバイスIDを指定します。
% aws medialive describe-input-device \ --input-device-id hd-XXXXXXXXXXXXXXXXXXXXc0z8 \ --region us-west-2 { "Arn": "arn:aws:medialive:us-west-2:123456789012:inputDevice:hd-XXXXXXXXXXXXXXXXXXXXc0z8", "ConnectionState": "CONNECTED", "DeviceSettingsSyncState": "SYNCED", "DeviceUpdateStatus": "UP_TO_DATE", "HdDeviceSettings": { "ActiveInput": "HDMI", "ConfiguredInput": "AUTO", "DeviceState": "IDLE", "Framerate": "60.0", "Height": 1080, "MaxBitrate": 9000000, "ScanType": "PROGRESSIVE", "Width": 1920 }, "Id": "hd-XXXXXXXXXXXXXXXXXXXXc0z8", "MacAddress": "XX:XX:XX:XX:XX:2D", "Name": "CM-ElementalLink-1", "NetworkSettings": { "DnsAddresses": [ "0.0.0.0" ], "Gateway": "192.168.1.1", "IpAddress": "192.168.1.28", "IpScheme": "DHCP", "SubnetMask": "255.255.255.0" }, "SerialNumber": "XXXXXXXXXXXX", "Type": "HD" }
Name
に対応する値として、先ほど指定したCM-ElementalLink-1
が格納されていますね。 *1
続いて、aws medialive update-input-device
コマンドを使ってName情報を更新してみましょう。引数として指定する--name
オプションでName情報の書き換えが行えます。実行時には--input-devide-id
でデバイスIDの情報も必要です。
% aws medialive update-input-device \ --input-device-id hd-XXXXXXXXXXXXXXXXXXXXc0z8 \ --name classmethod-elemental-link-001 \ --region us-west-2 { "Arn": "arn:aws:medialive:us-west-2:123456789012:inputDevice:hd-XXXXXXXXXXXXXXXXXXXXc0z8", "ConnectionState": "CONNECTED", "DeviceSettingsSyncState": "SYNCED", "DeviceUpdateStatus": "UP_TO_DATE", "HdDeviceSettings": { "ActiveInput": "HDMI", "ConfiguredInput": "AUTO", "DeviceState": "IDLE", "Framerate": "60.0", "Height": 1080, "MaxBitrate": 9000000, "ScanType": "PROGRESSIVE", "Width": 1920 }, "Id": "hd-XXXXXXXXXXXXXXXXXXXXc0z8", "MacAddress": "XX:XX:XX:XX:XX:2D", "Name": "classmethod-elemental-link-001", "NetworkSettings": { "DnsAddresses": [ "0.0.0.0" ], "Gateway": "192.168.1.1", "IpAddress": "192.168.1.28", "IpScheme": "DHCP", "SubnetMask": "255.255.255.0" }, "SerialNumber": "XXXXXXXXXXXX", "Type": "HD" }
返り値となるJSONデータから、Name情報が書き換えられていることがわかりますね。マネジメントコンソールでも以下のように書き換わっていました。
まとめ
AWS Elemental MediaLive用のセットアップ済みライブエンコーダデバイスとして動作するAWS Elemental Linkの機能アップデートの1つ、デバイスに対する名前の割り当てについて確認してみました。実際のLinkデバイスの動作には直結はしないアップデートではありますが、LinkデバイスをそのデバイスIDではなく、1号機、2号機といったようにナンバリングして管理したい、という需要はあるのではないでしょうか。(物理的にテプラで作ったシールをデバイスに貼る、Linkデバイスを社外などに持ち出す際にその番号で管理する、など。)機能的には小さなアップデートかもしれませんが、とっても重要なアップデートだなと思いました。
脚注
- ちなみに、まだName情報が割り当てられない頃にAWS CLIで確認した結果をみてみたところ、NameというKey自体は存在していたようでした。ただし値は空("")、変更するAPIも提供されていなかったようです。AWS Elemental LinkをAWS CLIから操作してみた | Developers.IO ↩