ステップガイド生成プロセスの調査方法
これはなに?
ステップガイドの作成時にエラーが発生した場合、そのエラーを解決するために必要な情報を収集する方法を説明します。
ステップガイド作成の構成要素
- create step images for step guide (Lambda function)
- 個々のステップ画像を作成します
- Quden Transcoder
- ステップガイド作成処理を実行します
NOTE
ステップガイドの実装概要についてはこちらを参照してください
調査するポイント
ステップガイド作成処理において、以下のポイントを調査することで、エラーの原因を特定することができます。
- 1: ECS でホスティングされている Transcoder 内でジョブが正しく実行されているか
- 2: ステップガイドの作成に必要なステップ画像 (step item) はすべて正しく作成されているか
以下にそれぞれ、より詳細に調査する方法を記載します。
1: ECS でホスティングされている Transcoder 内でジョブが正しく実行されているか
ステップガイドの作成は、ECS でホスティングされている Transcoder で行われます。そのため、まずは Transcoder 内でジョブが正しく実行されているかを確認します。
NOTE
動画変換処理プロセスの詳細はこちらを参照してください
下記に流れを示します。
- mongoDB を参照し、調査対象の itemId に紐づいている、ステップガイド作成 job の jobId を取得します
- ECS 内のログ確認画面、または CloudWatch で、jobId に紐づいているログを確認します
- エラーを確認します
ここで確認できるエラーの候補として、以下のようなものがあります。
- 入力となるファイルが不正である、存在しない
- こちらであることが多い
- 調査ポイントの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) 作成の再実行
ステップアイテムの作成を再実行するには、以下の手順を実行します。
- Lambda 関数 (
create-step-images-for-step-guide) にアクセスし、テストイベントを作成します - 関数が正常に終了したことを確認し、S3 に該当の画像が保存されていることを確認します
イベント JSON 例:
json
{
"itemId": "6620e8dd4271979ee5703cda",
"stepIds": [
"6620e8ed4271979ee5703cee",
"6620e8f44271979ee5703d00",
"6620e92b1b9f1702d14f830f"
]
}ステップガイド作成の再実行
ステップガイドの作成を再実行するには、以下の手順を実行します。
- mongoDB を参照し、再実行対象の jobId を持つ document の
statusをQUEUEDに変更します - SQS (
quden-prod-queue-for-transcoder) にアクセスし、ジョブを作成します - 実行したら
statusがCOMPLETEになること、また動画が作成されていることを確認します
ジョブ 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"
}
}