2

私はElasticbeanstalkにデプロイされたアプリケーションを持っており、労働者として実行し、私はそれぞれの時間を実行する定期的なタスクのTIを追加したいので、私はこれのconfとcron.yamlを作成します。AWS Elasticbeanstalk cron.yaml労働者の問題

version: 1 
cron: 
    - name: "task1" 
    url: "/task" 
    schedule: "00 * * * *" 

しかし、私はいつもこのエラーを得た展開中:

[Instance: i-a072e41d] Command failed on instance. Return code: 1 Output: missing required parameter params[:table_name] - (ArgumentError). Hook /opt/elasticbeanstalk/addons/sqsd/hooks/start/02-start-sqsd.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.

私はEBTの役割に右許可を追加し、私は多分それは、Windows(CR/LF)用にフォーマットcron.yamlを検証し、常に同じエラーが発生しました。

missing required parameter params[:table_name] DynamoDBのテーブル名が見当たりません。どこで定義できますか? 、

どのように私はそれを修正することができます任意のアイデア。 ありがとう!

答えて

0

yamlの書式設定がオフになっているようです。それはここでの問題かもしれません。

version: 1 
cron: 
    - name: "task1" 
    url: "/task" 
    schedule: "00 * * * *" 

フォーマットはYamlでは非常に重要です。少なくともこれを試してみてください。

+0

Georgeさん、ありがとうございました。正しいcron.yamlファイル(誤って最初のバージョンでコピーします)を置くように私の投稿を編集しました。私はあなたの提案と同じフォーマットを使用しています。それでも同じエラーが発生します。 –

1

まあ私はこの問題の解決策を見つけられなかったので、CloudWatchイベントを使用してルールタイプを作成する別のアプローチに移行しました。スケジュールを作成し、ターゲットをSQSキュー(ワーカーで設定されたもの)として選択します。 完璧に動作します!

0

私はアプリケーションのルートに既に持っているのではなく、コンテナコマンドでcron.yamlファイルを動的に生成していたときにこの同じエラーが発生しました。

任意のカスタムコードが実行される前に発生するPreInitStageでcronのDynamoDBテーブルが作成されるため、cron.yamlファイルがなくてもDynamoDBテーブルが作成されない場合に発生します。後でファイルが表示され、cronジョブがスケジュールされているときは、テーブルが作成されなかったため失敗します。

アプリケーションルートにスケルトンcron.yamlを設定することでこの問題を解決しました。それは有効なcronジョブを持っている必要があります(私はちょうど1ヶ月に1回自分のヘルスチェックURLをヒットしました)が必要です。あなたが必要とするジョブだけでファイルをリセットできるカスタムコマンドの後にジョブ登録が行われるのでスケジュールされません。

これはあなたの正確な問題ではないかもしれませんが、うまくいけば、DynamoDBテーブルが作成されないときにエラーが発生したように見えます。

関連する問題