2014-12-07 6 views
0

snap-ci.com의 CD 파이프 라인의 일부로 응용 프로그램을 배포하기 전에 AWS opsworks 스택에서 인스턴스를 시작하고 싶습니다.쉘 스크립트에서 AWS CLI를 폴링하는 방법은 무엇입니까?

시작 호스트가 (이미 명령이 반환 된 후) 일정 시간이 걸리므로 AWS CLI에서 describe-instances 명령을 사용하여 실행중인 인스턴스를 폴링해야합니다. 이 명령은 필드 중 하나에 인스턴스 상태 (예 : "실행 중")가 포함 된 전체 JSON 응답을 반환합니다.

필자는 쉘 스크립팅 및 AWS CLI에 익숙하지 않으며 몇 가지 정보를 얻을 수 있습니다. 나는 또한 AWS SDK를 사용하여 java에서 프로그래밍 할 수 있다는 것을 알고 있지만 복잡한 프로그램에도 우선적으로 해당 프로그램을 snap-ci 호스트에 배포해야합니다.

+0

어떤 AWS cli 도구를 사용하고 있습니까? 파이썬은 파이썬에서 쉽게 사용할 수 있으므로 json 결과 객체를 쉽게 조작 할 수 있습니다. AWS cli 도구를 도구로 사용하는 경우에도 파이썬으로 그 작업을 수행 할 수 있습니다 (출력을 파이썬 또는 기타로 파이핑 한 다음 json에서 작동 시킴). –

+0

AWS CLI와 쉘 스크립트를 사용하고 있습니다. 주요 문제는 사용중인 CLI 도구와 독립적이어야하는 AWS 호출의 동작입니다. – monohusche

답변

4

AWS CLI는 wait 명령을 지원하며 인스턴스가 준비 될 때까지 대기하는 등 지정한 조건을 차단하고 대기합니다.

Advanced Usage of the AWS CLI Re : Invent 2014는 웨이터 (18:55), 쿼리, 프로필 및 CLI 사용에 대한 기타 팁을 사용하는 방법을 보여줍니다.

+0

Thx. 유일한 문제점은 실행중인 인스턴스를 폴링하기 위해 ec2 wait 명령을 사용할 때 서버가 아직 실행 중이 아닐지라도 명령이 리턴한다는 것입니다. 또한 마지막 단계에서 InvalidInstanceID를 throw하는 다음 스크립트를 작성했습니다. 어떤 생각? aws opsworks --region us-east-1 시작 스택 -stack-id 9e1b0534-5b38-4fa5-b30c-f849dda8f46b instance_id = $ (aws opsworks --region us-east-1 describe-instances --stack -id 9e1b0534-5b38-4fa5-b30c-f849dda8f46b --query "Instances []. Ec2InstanceId"- 출력 텍스트) aws ec2 대기 - 영역 ap-southeast-1 인스턴스 실행 --instance-ids $ instance_id – monohusche

+0

미안 왜곡 된 메시지의 경우 답변에 댓글을 추가하는 것이 가장 사용자 친화적 인 기능이 아닙니다. – monohusche

관련 문제