こんにちは、広野です。
最近、AWS Lambda 関数から AWS Elemental MediaConvert の API を呼び出そうとしたときに気付いたことを話します。API エンドポイントが変わっていました。いつから変わっていたのかわからないのですが。
そもそも MediaConvert って?
ひとことで言うと、動画をエンコードしてくれるサービスです。動画処理ソフトウェアができることに近いです。私は MP4 のデータをストリーミング可能な形式 HLS に変換する目的で使用しています。ユーザがアプリ UI からアップロードした動画データを自動的にエンコードするのに便利です。
変更点
本題です。
今現在の AWS Elemental MediaConvert のマネジメントコンソール画面です。左側のメニュー、矢印の位置に「アカウント」という設定があったのですが、無くなっていました。
実はこのアカウントの設定には、アカウントかつリージョン固有の MediaConvert API エンドポイントの URL が表示されており、API を呼び出すときにはその URL を使用しなければならない、という仕様がありました。
例えば AWS Lambda 関数 (Python) では、以下のようにエンドポイントを打ち込んでいました。
client = boto3.client('mediaconvert', region_name='ap-northeast-1', endpoint_url='https://xxxxxxxx.mediaconvert.ap-northeast-1.amazonaws.com')
マネジメントコンソールからアカウントの設定が無くなったことを受けて AWS ドキュメントを確認したところ、以下のように DescribeEndpoints は不要になったと書いてありました。これがアカウントかつリージョン固有の API エンドポイントだったはず。
Note that DescribeEndpoints is no longer required. We recommend that you send your requests directly to the regional endpoint instead.
結論
試してみたら、AWS Lambda 関数からの MediaConvert API 呼出は API エンドポイント指定なしで動きました。
client = boto3.client('mediaconvert')
従来の方法で作成済みの AWS Lambda 関数が動くかは未確認です。過去に作成していたリソースを削除してしまったため。ですが互換性維持のため、動くのではないかと想像します。
まとめ
いかがでしたでしょうか?
この変更についてアナウンスがあったのかわからず、変更に気付いたときは戸惑いました。
短いですが、本記事が皆様のお役に立てれば幸いです。