Skip to content

ステップガイド生成プロセスの調査方法

これはなに?

ステップガイドの作成時にエラーが発生した場合、そのエラーを解決するために必要な情報を収集する方法を説明します。

ステップガイド作成の構成要素

NOTE

ステップガイドの実装概要についてはこちらを参照してください

調査するポイント

ステップガイド作成処理において、以下のポイントを調査することで、エラーの原因を特定することができます。

  • 1: ECS でホスティングされている Transcoder 内でジョブが正しく実行されているか
  • 2: ステップガイドの作成に必要なステップ画像 (step item) はすべて正しく作成されているか

以下にそれぞれ、より詳細に調査する方法を記載します。

1: ECS でホスティングされている Transcoder 内でジョブが正しく実行されているか

ステップガイドの作成は、ECS でホスティングされている Transcoder で行われます。そのため、まずは Transcoder 内でジョブが正しく実行されているかを確認します。

NOTE

動画変換処理プロセスの詳細はこちらを参照してください

下記に流れを示します。

  1. mongoDB を参照し、調査対象の itemId に紐づいている、ステップガイド作成 job の jobId を取得します
  2. ECS 内のログ確認画面、または CloudWatch で、jobId に紐づいているログを確認します
  3. エラーを確認します

ここで確認できるエラーの候補として、以下のようなものがあります。

  • 入力となるファイルが不正である、存在しない
    • こちらであることが多い
    • 調査ポイントの2に繋がります
  • CPU やメモリ不足によるジョブの停止
    • こちらはほぼ発生していない

2: ステップガイドの作成に必要なステップ画像 (step item) はすべて正しく作成されているか

ステップガイドは、SQS にジョブを投げること作成が行われます。取得した jobId に紐づく mongoDB document を参照し、ジョブの内容を確認します。

properties.message に、ステップガイドの作成に必要な情報が格納されています。

例:

jsonc
// properties.message
{
  "jobType": "stepGuide",
  "itemId": "6620e8dd4271979ee5703cda",
  "jobId": "66210e171b9f1702d15c0a47",
  "objectKeyMap": {
    // 入力となる画像の S3 Object key
    "stepImages": [
      "raw-data/6604e54f58396b8bc2544b32/6620e8dd4271979ee5703cda/edited/66210b1b4271979ee57acb72/6620e8ed4271979ee5703cee.png",
      "raw-data/6604e54f58396b8bc2544b32/6620e8dd4271979ee5703cda/edited/66210b1b4271979ee57acb72/6620e8f44271979ee5703d00.png",
      "raw-data/6604e54f58396b8bc2544b32/6620e8dd4271979ee5703cda/edited/66210b1b4271979ee57acb72/6620e92b1b9f1702d14f830f.png"
    ],
    // 生成される動画の出力先
    "mp4": "raw-data/6604e54f58396b8bc2544b32/6620e8dd4271979ee5703cda/edited/66210e171b9f1702d15c0a47/6620e8dd4271979ee5703cda-full.mp4",
    // 生成される GIF サムネイルの出力先
    "gifThumbnail": "thumbnail/6604e54f58396b8bc2544b32/6620e8dd4271979ee5703cda/edited/66210e171b9f1702d15c0a47/6620e8dd4271979ee5703cda-thumbnail.gif"
  }
}

この stepImages に格納されている S3 Object key に対応する画像が、S3 に存在するかを確認します。 存在していない、または不正な画像が存在する場合、ステップガイドの作成が失敗します。

ジョブの再実行方法

ステップアイテム (step item) 作成の再実行

ステップアイテムの作成を再実行するには、以下の手順を実行します。

  1. Lambda 関数 (create-step-images-for-step-guide) にアクセスし、テストイベントを作成します
  2. 関数が正常に終了したことを確認し、S3 に該当の画像が保存されていることを確認します

イベント JSON 例:

json
{
  "itemId": "6620e8dd4271979ee5703cda",
  "stepIds": [
    "6620e8ed4271979ee5703cee",
    "6620e8f44271979ee5703d00",
    "6620e92b1b9f1702d14f830f"
  ]
}

ステップガイド作成の再実行

ステップガイドの作成を再実行するには、以下の手順を実行します。

  1. mongoDB を参照し、再実行対象の jobId を持つ document の statusQUEUED に変更します
  2. SQS (quden-prod-queue-for-transcoder) にアクセスし、ジョブを作成します
  3. 実行したら statusCOMPLETE になること、また動画が作成されていることを確認します

ジョブ JSON 例:

json
{
  "jobType": "stepGuide",
  "itemId": "6620e8dd4271979ee5703cda",
  "jobId": "66210e171b9f1702d15c0a47",
  "objectKeyMap": {
    // 入力となる画像の S3 Object key
    "stepImages": [
      "raw-data/6604e54f58396b8bc2544b32/6620e8dd4271979ee5703cda/edited/66210b1b4271979ee57acb72/6620e8ed4271979ee5703cee.png",
      "raw-data/6604e54f58396b8bc2544b32/6620e8dd4271979ee5703cda/edited/66210b1b4271979ee57acb72/6620e8f44271979ee5703d00.png",
      "raw-data/6604e54f58396b8bc2544b32/6620e8dd4271979ee5703cda/edited/66210b1b4271979ee57acb72/6620e92b1b9f1702d14f830f.png"
    ],
    // 生成される動画の出力先
    "mp4": "raw-data/6604e54f58396b8bc2544b32/6620e8dd4271979ee5703cda/edited/66210e171b9f1702d15c0a47/6620e8dd4271979ee5703cda-full.mp4",
    // 生成される GIF サムネイルの出力先
    "gifThumbnail": "thumbnail/6604e54f58396b8bc2544b32/6620e8dd4271979ee5703cda/edited/66210e171b9f1702d15c0a47/6620e8dd4271979ee5703cda-thumbnail.gif"
  }
}