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.

내가 세전 이익의 역할에 대한 권리 권한을 추가, 나는 어쩌면 윈도우 (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 테이블이 작성되므로 DynamoDB 테이블이 작성되지 않은 cron.yaml 파일이없는 경우 생성됩니다. 나중에 파일이 나타나고 cron 작업이 스케줄되면 테이블이 작성되지 않았으므로 실패합니다.

내 응용 프로그램 루트에 해골 cron.yaml을 넣어서이 문제를 해결했습니다. 유효한 크론 작업 (한 달에 한 번 내 헬스 체크 URL에 딱)이 있어야하지만, 필요한 작업만으로 파일을 재설정 할 수있는 사용자 정의 명령 이후에 작업 등록이 발생하므로 예약되지 않습니다.

이것은 정확한 문제는 아니지만, DynamoDB 테이블이 생성되지 않을 때 오류가 발생하는 것처럼 보이기를 바랍니다.