2013-10-21 2 views
4

AWS 인프라를 사용하는 더 넓은 웹 응용 프로그램을 작성하고 있습니다. SQS에서 작업을 읽고 결과를 RDS 데이터베이스에 쓰는 두 개의 '작업자'구성 요소가 있습니다. 이 중 하나는 Python이고 이미 Elastic Beanstalk 인스턴스 하나에서 작업하고 있습니다. 두 번째는 .NET을 사용하며 현재 배포 방법을 연구 중입니다. 프로덕션의 경우 둘 다 여러 인스턴스와 함께 신축성이 있습니다.Elastic Beanstalk을 사용하여 .NET 작업자 응용 프로그램 배포

이러한 처리 구성 요소는 웹 응용 프로그램이 아니므로 (즉, http 요청에 응답하지 않음) 명시 적으로 시작해야합니다. .NET 응용 프로그램과 함께

container_commands: 
    02-start-command: 
    command: "nohup python scannerapp.py > foo.out 2> foo.err < /dev/null &" 
    leader_only: false 

가 어떻게 같은 작업을 수행 할 수 있습니다 파이썬 예를 들어, 나는 .ebextensions 파일을 사용할 수 있습니까? 위의 Python/Linux 예제와 마찬가지로 Windows 구성 파일은 '명령'및 '컨테이너 명령'을 지원하지만 시작 프로그램 (예 : 설치 프로그램) 용입니다. 예. 명령이 종료 될 때까지 시작/설치가 완료되지 않습니다. nohup 명령은 Python의 문제점을 해결합니다. .NET 작업자 응용 프로그램에서이 작업을 수행하려면 어떻게해야합니까?

아니면 너무 어려워서 먼저 MONO로 이식하고 Linux 옵션 중 하나를 사용하는 것이 좋습니다. (MONO 실행 비용은 더 비용 효율적 일 것으로 예상되므로 앞으로는 할 일 목록에 이미 포함되어 있습니다.)

답변

6

.NET 컨테이너에서도 동일한 작업을 수행 할 수 있습니다. 작업자를 Windows 서비스로 설치해야합니다. 자세한 내용은 blog post을 확인하십시오. 높은 수준에서 다음을 포함하는 .ebextensions 파일을 가지고 있습니다.

sources: 
    c:/AppSupport/MyAppJanitor: http://s3.amazonaws.com/my-app-support/MyAppJanitor.zip 
commands: 
    install-janitor: 
    command: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\installutil MyAppJanitor.exe 
    cwd: c:/AppSupport/MyAppJanitor 
    waitForCompletion:0 
services: 
    windows: 
    MyAppJanitor: 
     enabled: true 
     ensureRunning: true 
     commands: install-janitor 
+0

감사합니다. 예 - 블로그 게시물 (및 2 부)이 유용합니다. 나는 AWS 문서가 열악한 사람을 찾은 유일한 사람이 아닙니다. 적어도 Amazon은 블로그에서이를 인식하고 있습니다. 수치스러운 Google은 색인 생성 작업을 잘 수행하지 못합니다! Windows 서비스의 작성을 연구하기 위해 (많은 변경이 필요하지는 않아야합니다.) 일단 모든 것을 제공하면 주중에 다시보고하겠습니다. – winwaed

+0

답변으로 표시하고 있습니다. 내 프로젝트를 서비스로 변경했다. (그것은 내 PC에서 로컬로 잘 돌아 간다.) EB로 배포 할 수도 있습니다. 내 업로드 파일은 .ebextensions 구성 정보가있는 zip 파일 일뿐입니다. 실제 서비스 exe, config, DLL 및 데이터 파일은 S3 호스트 zip으로 전달됩니다. 그러나 현재 주 처리 스레드 시작 부분에 "FileNotFound"예외가 발생합니다. 적어도 서비스가 시작되고 그 서비스가 지금까지 얻고 있습니다! 새로운 벽돌 벽을 치고 있지만 새로운 질문이 더 적절하다고 생각합니다. – winwaed

관련 문제