Boto Python Amazon EC2

Amazon web services API for python, Boto 2.6.0, 2.9.5 and 2.9.6 for Python 2.7

 First, a sample boto python 2.7 script tested on Dreamhost with their installed boto 2.6 as well as boto 2.9.5 and 2.9.6 on Heroku. The Amazon keys are imported from our custom made cred2 module, which you will make yourself for your keys.

#!/usr/bin/python

import boto.ec2
import cred2

conn = boto.ec2.connect_to_region("us-east-1", \
    aws_access_key_id=cred2.awsaki(), aws_secret_access_key=cred2.awssak() )

# conn.start_instances('i-59999x2x')

reservations = conn.get_all_instances()
print reservations
for res in reservations:
  for isx in res.instances:
    print isx

substitute what the python 2.7 functions return with your keys

Your amazon keys can be found in your Amazon Web Services account

#!/usr/bin/python

def awsaki():
  return 'AKXXXXXXXXXXXXXXXXXX'

def awssak():
  return 'vvv999ccc888xxx777zzz666lll555kkk444z/'

We used awsaki which means Amazon Web Services Access Key ID or A.W.S.A.K.I. which is the best terminology to use in search engines to find information on digging this out of your account

Google this

Amazon Web Services Access Key ID

We used awssak which means Amazon Web Services Secret Access Key or A.W.S.S.A.K. which is good terminology to use in search engines to find information on digging this out of your account

Google this

Amazon Web Services Secret Access Key

Python 2.7 script to start an AWS instance that is stopped

#!/usr/bin/python

import boto.ec2
import cred2

conn = boto.ec2.connect_to_region("us-east-1", \
    aws_access_key_id=cred2.awsaki(), aws_secret_access_key=cred2.awssak() )

reservations = conn.get_all_instances()
rsx = reservations[0]
hsx = rsx.instances[0].start()

This works great if you have an AWS account with one instance, which is the one you want to start. So we aren’t creating an instance here, we are just starting an instance that has been stopped.

Now a minimal example in flask to pass boto results to the jinja template rendering modules

@app.route('/aws')
def awshm():
 x = zzcode.botoclass(); cvx = x.botofunc()
 return render_template('aws.html',navigation=navfunc(), contentVar=cvx )

Here we use boto in the class

class botoclass:
 def botofunc(self):
  import boto.ec2
  import credec2
  conn = boto.ec2.connect_to_region("us-east-1", \
    aws_access_key_id=credec2.awsaki(), aws_secret_access_key=credec2.awssak())
  reservations = conn.get_all_instances()
  cvx = list()
  for rsx in reservations:
   for isx in rsx.instances:
    cvx.append({'reservation': str(isx), 'status': str(isx.state), \
              'dns': str(isx.public_dns_name), 'ip': str(isx.ip_address) })
  return cvx

In the midst of a template in the templates directory named aws.html is this table

<TABLE>
<TR><TH>Reservation </TH><TH>Status </TH><TH>Domain </TH><TH>ip </TH></TR>
{% for item in contentVar %}
<TR>
 <TD>{{ item.reservation }}</TD>
 <TD>{{ item.status    }}</TD>
 <TD>{{ item.dns      }}</TD>
 <TD>{{ item.ip       }}</TD>
</TR>
{% endfor %}
              </TABLE>

Zoho Invoice

MSinc

Billing and Accounts Receivable, Cloud Invoice

For a small business, we a have just looked at Zoho Invoice. Zoho Invoice is a cloud based accounting system much like QuickBooks OnLine for small business invoicing. We are really impressed with the user interface. The initial sign up phase for a thirty day trial required e-mail verification, so it actually was several days ago that we first considered doing a review for Zoho accounting. But this morning, after digging through my e-mail for the verification links, we completed the process and began to evaluate the invoicing process for a simple time billing scenario such as a consultant would use.

First, we looked for a way to create an invoice. Zoho could not have made the link to begin creating an invoice any easier to pick out of the computer screen. This is a sharp contrast to QuickBooks which, even with it’s navigation screen, leaves us sometimes staring at all the things we can do and wondering where we went to do invoices.

Next, we know that there is really no such thing as an invoicing system without a customer file. And we had no customers entered into the system. Zoho could not have made this step easier. Just below the customer drop down box is a link to create a new customer. And upon adding a new customer, also a little easier than QB, was an option to save the customer and continue entering the invoice we had started.

Very smooth and intuitive, within three minutes, we had created an invoice for a customer, This left me wondering how I could e-mail and print the invoice. With a little glancing around, on the right side of the screen are options to email and print the invoice. Viola!

Having consulted for dozens of companies for 25 years, I wish I had this resource years ago. We will have more information on Zoho invoicing and accounts receivable coming up.