自動動画変換

Option では AWS Lambda を用いて S3 に動画ファイルがアップロードされたら自動で HLS 変換を行うようにします arch5-o


■ API エンドポイントの確認

  • マネージメントコンソールより MediaConvert にアクセス
  • メニューのアカウントから「API エンドポイント」をメモ

screenshot5-o-1

■ Lambda実行用の IAM Role を作成

  • IAM のメニューからポリシー を選択
  • ポリシーを作成を選択
  • 上部にある JSON のタブを選択
  • 以下の設定をポリシーに貼り付けて、「ポリシーの確認」を選択
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "mediaconvert:CreateJob",
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "logs:PutLogEvents",
                "iam:PassRole"
            ],
            "Resource": "*"
        }
    ]
}
  • ポリシー名を「 LambdaCustomPolicy 」として作成

screenshot5-o-2

  • IAM のメニューからロールの作成を選択
  • AWS サービスの項目で Lambda を選択し「次のステップ:アクセス権限」をクリック

screenshot5-o-3

  • 作成したポリシーを選択
    • 検索窓に先程作成した「LambdaCustomPolicy」を入力し、該当のポリシーにチェックを付ける

screenshot5-o-4

  • 「次のステップ: タグ」をクリック
  • そのまま「次のステップ: 確認」をクリック
  • ロール名に「lambda-role-{ユーザ名}」を入力し「ロールの作成」をクリック

■ Lambda関数を設定

  • マネージメントコンソールより Lambda を選択
  • 関数の作成」をクリック
  • 以下の通りに設定
    • 関数名:
      • function-{自分の名前}  例)function-user1
    • ランタイム:
      • Python3.8
    • 実行ロール:
      • 既存のロールを使用する
      • 既存のロール一覧から先程作成した「lambda-role-{自身の名前}」を選択

screenshot5-o-5

  • 「関数の作成」をクリック

次に、Designer で S3 に動画がアップロードされたら Lambda 関数が実行されるようにトリガーを設定する

  • 「トリガーを追加」を選択

screenshot5-o-6

  • 設定を以下の通りに指定
    • トリガー:
      • S3
    • バケット:
      • demo-archive-{自分の名前}  例)demo-archive-user1
    • サフィックス:
      • .mp4
    • トリガーの有効化にチェック

screenshot5-o-7

  • 「追加」をクリック

指定したS3バケットにmp4の拡張子のファイルがアップロードされたら実行するというトリガーの設定としています

  • 関数コード内のコードエントリタイプで「.zip ファイルでアップロード」を選択

  • アセットの「lambda_function.zip」をダウンロードして選択

  • 環境変数内に以下の通り設定を追加

  • 設定が完了したら画面上部にある保存をクリック


■ 自動変換の動作確認

Step2 の時と同様、動画ファイルをアップロードしてみましょう
数秒後にarchiveと同じ階層に「output」というフォルダが作成され HLSファイルが作成されています