2014-05-21 8 views
14

मैं awscli के साथ aws ec2 सेवा का उपयोग कर रहा हूँ। अब मैं कंसोल में टाइप किए गए सभी आदेशों को एक पायथन लिपि में रखना चाहता हूं। मैं देखता हूं कि अगर मैं एक पाइथन लिपि के अंदर import awscli लिखता हूं तो यह ठीक काम करता है लेकिन मुझे समझ में नहीं आता कि स्क्रिप्ट के अंदर इसका उपयोग कैसे किया जाए। उदाहरण के लिए import awscli के बाद पायथन स्क्रिप्ट के अंदर मैं aws ec2 run-instances <arguments> आदेश कैसे निष्पादित करूं? बस इसे स्पष्ट करना, मैं os.system('aws ec2 run-instances <arguments>') की तरह एक समाधान के लिए नहीं देख रहा हूँ, मैं की तरहपायथन लिपि के अंदर awscli का उपयोग कैसे करें?

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

उत्तर

9

कुछ के लिए देख रहा हूँ CLI हैं सुरक्षा प्रॉम्प्ट के लिए ज्यादा सटीक, एक बेहतर अजगर एपीआई के लिए, जाँच बोटो लाइब्रेरी। यह उदाहरण दिखाता है कि एक उदाहरण कैसे लॉन्च करें: http://boto.readthedocs.org/en/latest/ec2_tut.html

+1

Boto3 त्वरित प्रारंभ: http://boto3.readthedocs.io/en/latest/guide/quickstart.html – skoll

10

आप इसे शानदार sh पैकेज के साथ कर सकते हैं। आप अपने लिए shing wrapping के साथ अजगर पैकेज की नकल कर सकते हैं।

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

'sh' पैकेज निश्चित रूप से दिलचस्प है। सूचक के लिए धन्यवाद। लेकिन यह [विंडोज़ के लिए नहीं] (http://amoffat.github.io/sh/sections/faq.html?highlight=windows#will-windows-be-supported) हालांकि (मेरे * निक्स प्लेटफ़ॉर्म के लिए पैकेज का उपयोग करेगा) –

3

Boto3 सब कुछ CLI ताकि आप एक नीला चाँद में एक बार एक स्क्रिप्ट में CLI से कुछ का उपयोग करने के लिए हो सकता है किया गया है नहीं है। मुझे boto3 में धक्का तैनात करने के लिए एनालॉग नहीं मिल रहा है उदाहरण के लिए यहां है कि मैं एक पायथन लिपि से क्ली के साथ s3 को कैसे दबाता हूं। यद्यपि जूलियो के बिंदु पर, मैं सब कुछ के लिए बोटो का उपयोग करता हूं।

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 
संबंधित मुद्दे