Img_9_lg

インタフェース・メソッド

このページでは Rackspace の CloudServers と CloudFiles サービスへインタフェースするためのメソッドを説明します。


Ruby メソッド

CloudFiles アクセスのための Ruby メソッドは、下記のリファレンスの cloudfiles gem に基づいています:
http://github.com/rackspace/ruby-cloudfiles

この gem は Control Plan Editor と一緒にパッケージされているので、これらの Ruby メソッドは、コントロールプランの Ruby タスクの中で使われるかも知れません。下記のサンプルは、データをリストしたり、プットやゲットするのに cloudfile メソッドをどのように使用するかを示します。

#
$: << './jrubylib/mime-types-1.16/lib'

$: << './jrubylib/rackspace-cloudfiles-1.4.0.0/lib'
$: << './jrubylib/jruby-openssl-0.5.2/lib'
$: << './jrubylib'
#
require 'rubygems'

require 'cloudfiles'
 
USERNAME='user'
API_KEY='apikey'
 
# Log into the Cloud Files system
cf = CloudFiles::Connection.new(USERNAME, API_KEY)

 
# Get a listing of all containers under this account
c = cf.containers
#  => ["backup", "Books", "cftest", "test", "video", "webpics"]

 
c.each { |x| puts "container=#{x}" }
 
# Access a specific container

container = cf.container('test_container')
 
# See how many objects are under this container
puts "Number of objects in test_container=#{container.count}"
 
# List the objects
objectname = nil

container.objects.each { |o|
    puts "object=#{o}"
    objectname = o

}
 
# Select an object
object = container.object(objectname)
 
# Get that object's data
puts "Object content\n"
puts object.data

 


Rackspace の CloudServer API は、ここで文書化されています。 Tap In は CloudServer を呼び出すために使用できる CloudServers パッケージを開発しました。
このパッケージは、a class="wiki_link_ext" href="http://www.tapinsystems.com/downloads/rackspace/TIS_CloudServers.rb" rel="nofollow" target="_blank">ここからダウンロードできます。 TIS_CloudServers.rb パッケージは Control Plan Editer の jrubylib ディレクトリの中にインストールされます。
下記のサンプル RS_flavor_list.xml は、サーバの種類(flavors)をリストするのに、このパッケージを使用します。
$: << './jrubylib/json_pure-1.1.9/lib'
$: << './jrubylib'
 
require 'TIS_CloudServers'
require 'json'

 
cf = Connection.new($USERNAME, $API_KEY)
path = "/flavors"
resp = cf.cfreq("GET",cf.servermgmthost,cf.servermgmtpath+path,cf.servermgmtport,cf.servermgmtscheme)

puts resp.body
$flavors = JSON.parse(resp.body)
$flavors['flavors'].each { |i|

    puts "Flavor #{i['name']}, #{i['id']}"
}
 
これは、コンソールへ下記のように出力します。

{"flavors":[{"id":1,"name":"256 server"},{"id":2,"name":"512 server"},{"id":3,"name":"1GB server"},

{"id":4,"name":"2GB server"},{"id":5,"name":"4GB server"},{"id":6,"name":"8GB server"},{"id":7,"name":"15.5GB server"}]} Flavor 256 server, 1 Flavor 512 server, 2 Flavor 1GB server, 3 Flavor 2GB server, 4 Flavor 4GB server, 5 Flavor 8GB server, 6 Flavor 15.5GB server, 7
 
Tap In クラウド管理サービス 特徴とメリット 活用事例 Tap In クラウドコントロールサービス
イベント管理アーキテクチャ 管理対象テクノロジー ビューア Amazon CloudWatch との統合 3tera Applogic との統合 GoGrid との統合 プロセス自動化
Tap In Systems について 経営 コンタクト
ドキュメント ダウンロード 技術論文 技術ウィッキサイト フォーラム