Boto, AWS(Amazon Web Services) arayüzü için bir Python kütüphanesi. Fotoğraftaki seçenekler ve alt başlıkları için fazlasıyla modül içeriyor. Bana stajımda EC2( Elastic Compute Cloud ) kısmı lazım olmuştu. Bağlantı kurup instance_id kısmı ile birkaç işlem yapacaktım.
Krulumu oldukça basit:
$ pip install boto
ya da kaynak kodu yerelimize çekersek:
$ git clone git://github.com/boto/boto.git
$ cd boto
$ python setup.py install
Yapılandırma:
Bunun için AWS'de hesabımız olmalı çünkü API Key ve Secret Access Key bilgileri gerekiyor. Boto sırasıyla şu dosyalara bakıyor:
* /etc/boto.cfg
* ~/.boto
* ~/.aws/credentials
* /etc/boto.cfg
* ~/.boto
* ~/.aws/credentials
1. "~/.aws/credentials", "~/.boto" ve "/etc/boto.cfg" dosyalarını oluşturup, API Key ve Secret Access Key bilgileri vereceğiz. Burada fazladan region(alan) tanımı var. Belirtmek zorunda değiliz ama Amazon Servisleri'nin hangi alanına bağlanmak istediğimizi yazabiliriz.
[default]
aws_access_key_id =*******************
aws_secret_access_key = ********** ******************************
# Optional, to define default region for this profile.
# region=eu-west-1
2. "export AWS_AWS_CREDENTIAL_FILE=/path/to/aws-credentials.txt" ve
"export BOTO_CONFIG=/path/to/.boto" diyerek
dosya yollarını çevresel değişkenlerde belirtmeliyiz. "$ set" komutu ile kontrol edebilirsiniz.
Bağlantı kurma kısmı:
ipython ile oldukça hızlı şekilde deneyebilirsiniz.
>> import boto.ec2
>> regions = boto.ec2.regions () ,
>> regions
[RegionInfo:us-east-1,
RegionInfo:cn-north-1,
RegionInfo:ap-northeast-1,
RegionInfo:eu-west-1,
RegionInfo:ap-southeast-1,
RegionInfo:ap-southeast-2,
RegionInfo:us-west-2,
RegionInfo:us-gov-west-1,
RegionInfo:us-west-1,
RegionInfo:sa-east-1]
>> eu = regions[3]
>> eu_conn = eu.connect()
Kütüphaneyi ekledikten sonra, ilk satırda ec2 bağlantı alanlarının listesini regions değişkeninde tutuyoruz. 3. satırda, regions[3] teki alanı, bağlanmak için bir değişkene atıyoruz. Son satırda ise connect() ile bağlantı gerçekleşiyor.
ipython'da tab tuşu ile fazlasıyla modül olduğunu görebilirsiniz. Örneğin benim işime yarayanlardan biri get_all_instances modülüydü. Alt satırda; i_id değişkeni, bağlandığı alandaki makinalardan birisine ait mi diye kontrol yapılabiliyor.
eu_conn.get_all_instances(filters={'instance-id' : i_id})
Kısaca Boto'nun ana işlevi böyle. Tabiki daha çok karıştırmak gerektiğini düşünüyorum. Şimdilik görüşmek üzere..
ipython'da tab tuşu ile fazlasıyla modül olduğunu görebilirsiniz. Örneğin benim işime yarayanlardan biri get_all_instances modülüydü. Alt satırda; i_id değişkeni, bağlandığı alandaki makinalardan birisine ait mi diye kontrol yapılabiliyor.
eu_conn.get_all_instances(filters={'instance-id' : i_id})
Kısaca Boto'nun ana işlevi böyle. Tabiki daha çok karıştırmak gerektiğini düşünüyorum. Şimdilik görüşmek üzere..
Hiç yorum yok:
Yorum Gönder