2014-05-21 3 views
14

awsli에서 aws ec2 서비스를 사용하고 있습니다. 이제 콘솔에 입력 한 모든 명령을 파이썬 스크립트에 넣으 려합니다. 파이썬 스크립트 안에 import awscli을 쓰면 잘 동작하지만 스크립트에서 사용하는 방법을 모르겠다. 예를 들어 뒤에 파이썬 스크립트 내에서 aws ec2 run-instances <arguments> 명령을 어떻게 실행합니까? 그냥 내가 os.system('aws ec2 run-instances <arguments>') 같은 해결책을 찾는 게 아니에요, 그것은 명확하게하기 위해, 나는 CLI는 쉘 프롬프트에 더 적합 할awscli를 python 스크립트 안에서 사용하는 방법?

import awscli 
awscli.ec2_run-instances(<arguments>) 

답변

9

처럼 뭔가를 할 찾고 있어요, 더 나은 파이썬 API를 들어,을 확인 boto 라이브러리. 이 예는 인스턴스를 시작하는 방법을 보여줍니다. http://boto.readthedocs.org/en/latest/ec2_tut.html

+1

Boto3 빠른 시작 : http://boto3.readthedocs.io/en/latest/guide/quickstart.html – skoll

10

화려한 sh 패키지로 수행 할 수 있습니다. sh를 사용하여 파이썬 패키지를 모방 할 수 있습니다.

import sh 
s3 = sh.bash.bake("aws s3") 
s3.put("file","s3n://bucket/file") 
+0

은'sh' 패키지는 확실히 재미있다. 포인터 주셔서 감사. 그러나 그것은 (Windows 용은 아닙니다.) (http://amoffat.github.io/sh/sections/faq.html?highlight=windows#will-windows-be-supported) (내 * nix 플랫폼 용 패키지를 사용합니다.) –

3

Boto3은 CLI가 그래서 당신은 파란색 달에 한 번 스크립트에서 CLI에서 뭔가를 사용해야 할 수도 있습니다 모든 것을 가지고 있지 않습니다. 예를 들어 boto3에서 aws deploy push에 대한 아날로그를 찾을 수 없으므로 여기서 python 스크립트에서 cli로 s3으로 푸시하는 방법을 설명합니다. 훌리오의 관점까지는, 나는 그 밖의 모든 것에 대해 boto를 사용합니다.

import subprocess 

cmd='aws deploy push --application-name SomeApp --s3-location s3://bucket/Deploy/db_schema.zip --ignore-hidden-files' 
push=subprocess.Popen(cmd, shell=True, stdout = subprocess.PIPE) 
print push.returncode 
관련 문제