nifty-cloud-sdk 1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +112 -0
- data/Gemfile +4 -0
- data/INSTALL +30 -0
- data/LICENSE.txt +58 -0
- data/README.rdoc +375 -0
- data/Rakefile +61 -0
- data/lib/NIFTY.rb +405 -0
- data/lib/NIFTY/Cloud.rb +24 -0
- data/lib/NIFTY/Cloud/availability_zones.rb +23 -0
- data/lib/NIFTY/Cloud/certificates.rb +283 -0
- data/lib/NIFTY/Cloud/images.rb +134 -0
- data/lib/NIFTY/Cloud/instances.rb +372 -0
- data/lib/NIFTY/Cloud/keypairs.rb +76 -0
- data/lib/NIFTY/Cloud/load_balancers.rb +433 -0
- data/lib/NIFTY/Cloud/security_groups.rb +357 -0
- data/lib/NIFTY/Cloud/volumes.rb +140 -0
- data/lib/NIFTY/config.rb +41 -0
- data/lib/NIFTY/exceptions.rb +32 -0
- data/lib/NIFTY/responses.rb +19 -0
- data/lib/NIFTY/version.rb +3 -0
- data/nifty-cloud-sdk.gemspec +28 -0
- data/sample/availability_zones/describe-availability-zones.rb +37 -0
- data/sample/certificate/create-ssl-certificate.rb +41 -0
- data/sample/certificate/delete-ssl-certificate.rb +28 -0
- data/sample/certificate/describe-ssl-certificate-attribute.rb +58 -0
- data/sample/certificate/describe-ssl-certificates.rb +49 -0
- data/sample/certificate/download-ssl-certificate.rb +31 -0
- data/sample/certificate/modify-ssl-certificate-attribute.rb +29 -0
- data/sample/certificate/register-corporate-info-for-certificate.rb +57 -0
- data/sample/certificate/upload-ssl-certificate.rb +32 -0
- data/sample/images/create-image.rb +33 -0
- data/sample/images/delete-image.rb +26 -0
- data/sample/images/describe-images.rb +70 -0
- data/sample/images/modify-image-attribute.rb +33 -0
- data/sample/instances/cancel_copy_instances.rb +26 -0
- data/sample/instances/copy-instances.rb +41 -0
- data/sample/instances/describe-instance-attribute.rb +78 -0
- data/sample/instances/describe-instances.rb +100 -0
- data/sample/instances/modify-instance-attribute.rb +30 -0
- data/sample/instances/reboot-instances.rb +29 -0
- data/sample/instances/run-instances.rb +104 -0
- data/sample/instances/start-instances.rb +36 -0
- data/sample/instances/stop-instances.rb +35 -0
- data/sample/instances/terminate-instances.rb +34 -0
- data/sample/keypairs/create-key-pair.rb +31 -0
- data/sample/keypairs/delete-key-pair.rb +28 -0
- data/sample/keypairs/describe-key-pairs.rb +31 -0
- data/sample/load_balancers/configure-health-check.rb +41 -0
- data/sample/load_balancers/create-load-balancer.rb +35 -0
- data/sample/load_balancers/delete-load-balancer.rb +28 -0
- data/sample/load_balancers/deregister-instances-from-load-balancer.rb +35 -0
- data/sample/load_balancers/describe-instance-health.rb +36 -0
- data/sample/load_balancers/describe-load-balancers.rb +89 -0
- data/sample/load_balancers/register-instances-with-load-balancer.rb +33 -0
- data/sample/load_balancers/register-port-with-load-balancer.rb +37 -0
- data/sample/load_balancers/set-filter-for-load-balancer.rb +38 -0
- data/sample/load_balancers/update-load-balancer.rb +33 -0
- data/sample/security_groups/authorize-security-group-ingress.rb +36 -0
- data/sample/security_groups/create-security-group.rb +29 -0
- data/sample/security_groups/delete-security-group.rb +28 -0
- data/sample/security_groups/deregister-instances-from-security-group.rb +31 -0
- data/sample/security_groups/describe-security-activities.rb +33 -0
- data/sample/security_groups/describe-security-groups.rb +59 -0
- data/sample/security_groups/register-instances-with-security-group.rb +31 -0
- data/sample/security_groups/revoke-security-group-ingress.rb +36 -0
- data/sample/security_groups/update-security-group.rb +30 -0
- data/sample/volumes/attach-volumes.rb +34 -0
- data/sample/volumes/create-volume.rb +38 -0
- data/sample/volumes/delete-volume.rb +28 -0
- data/sample/volumes/describe-volumes.rb +44 -0
- data/sample/volumes/detach-volume.rb +35 -0
- data/test/test_Cloud.rb +186 -0
- data/test/test_Cloud_availability_zones.rb +50 -0
- data/test/test_Cloud_certificates.rb +627 -0
- data/test/test_Cloud_images.rb +284 -0
- data/test/test_Cloud_instances.rb +941 -0
- data/test/test_Cloud_keypairs.rb +177 -0
- data/test/test_Cloud_load_balancers.rb +1183 -0
- data/test/test_Cloud_responses.rb +43 -0
- data/test/test_Cloud_security_groups.rb +699 -0
- data/test/test_Cloud_volumes.rb +325 -0
- data/test/test_helper.rb +23 -0
- metadata +275 -0
data/CHANGELOG
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
-----------------------------
|
2
|
+
ニフティクラウド SDK for Ruby
|
3
|
+
-----------------------------
|
4
|
+
|
5
|
+
|
6
|
+
2011-07-31 SDK for Ruby Version.1.7
|
7
|
+
-------------------------------------------------------------------------------
|
8
|
+
* 新規リリース
|
9
|
+
- API Version 1.7 に対応
|
10
|
+
|
11
|
+
オリジナルからの変更点
|
12
|
+
|
13
|
+
* lib/NIFTY.rb
|
14
|
+
- ファイル名を"AWS.rb"から"NIFTY.rb"へ変更
|
15
|
+
- Baseクラスのinitializeオプションを追加
|
16
|
+
- pathlist、pathhashlistのバリデーションを追加
|
17
|
+
- pathlist、pathhashlistで、パラメータ値がnilまたは空の場合は除外する処理を追加
|
18
|
+
- pathkvlistを削除
|
19
|
+
- リクエストでタイムアウトが出た場合、リトライするよう変更
|
20
|
+
- 署名バージョン、署名生成に使用するアルゴリズムを選択できるよう変更
|
21
|
+
- サーバーからのエラー応答に対応するエラークラスを1つのクラスに統合
|
22
|
+
|
23
|
+
* lib/NIFTY
|
24
|
+
- ディレクトリ名を"AWS"から"NIFTY"へ変更
|
25
|
+
- Autoscaling/を削除
|
26
|
+
- Cloudwatch/を削除
|
27
|
+
- ELB/を削除
|
28
|
+
- RDS/を削除
|
29
|
+
- Autoscaling.rbを削除
|
30
|
+
- Cloudwatch.rbを削除
|
31
|
+
- ELB.rbを削除
|
32
|
+
- RDS.rbを削除
|
33
|
+
|
34
|
+
* lib/NIFTY/Cloud
|
35
|
+
- "AWS/EC2"の名前を"NIFTY/Cloud"へ変更
|
36
|
+
- console.rbを削除
|
37
|
+
- devpay.rbを削除
|
38
|
+
- elastic_ips.rbを削除
|
39
|
+
- image_attributes.rbを削除
|
40
|
+
- password.rbを削除
|
41
|
+
- products.rbを削除
|
42
|
+
- snapshots.rbを削除
|
43
|
+
- spot_instance_requests.rbを削除
|
44
|
+
- spot_prices.rbを削除
|
45
|
+
- subnets.rbを削除
|
46
|
+
- tags.rbを削除
|
47
|
+
|
48
|
+
* lib/NIFTY/Cloud.rb
|
49
|
+
- initializeでconfigの値をセットするよう変更
|
50
|
+
|
51
|
+
* lib/NIFTY/config.rb
|
52
|
+
- 新規作成(ユーザー定義値の設定)
|
53
|
+
|
54
|
+
* lib/NIFTY/exceptions.rb
|
55
|
+
- ConfigurationErrorを追加
|
56
|
+
- ResponseFormatErrorを追加
|
57
|
+
- ResponseErrorを追加(APIエラーレスポンスの共通エラークラス)
|
58
|
+
- エラー毎のエラークラスを削除
|
59
|
+
|
60
|
+
* lib/NIFTY/version.rb
|
61
|
+
- VERSIONを変更
|
62
|
+
|
63
|
+
* lib/NIFTY/Cloud/availability_zones
|
64
|
+
- 指定不可パラメータを除外できるよう変更
|
65
|
+
|
66
|
+
* lib/NIFTY/Cloud/certificates.rb
|
67
|
+
- 新規作成(SSL作成・削除など)
|
68
|
+
|
69
|
+
* lib/NIFTY/Cloud/images.rb
|
70
|
+
- バリデーションの追加
|
71
|
+
- 指定不可パラメータを除外できるよう変更
|
72
|
+
- deregister_imageを削除
|
73
|
+
- register_imageを削除
|
74
|
+
- modity_image_attributeを追加
|
75
|
+
|
76
|
+
* lib/NIFTY/Cloud/instances.rb
|
77
|
+
- バリデーションの追加
|
78
|
+
- 指定不可パラメータを除外できるよう変更
|
79
|
+
- reset_instance_attributeを削除
|
80
|
+
- monitor_instancesを削除
|
81
|
+
- unmonitor_instancesを削除
|
82
|
+
- describe_reserved_instancesを削除
|
83
|
+
- describe_reserved_instances_offeringsを削除
|
84
|
+
- purchase_reserved_instances_offeringを削除
|
85
|
+
|
86
|
+
* lib/NIFTY/Cloud/keypairs.rb
|
87
|
+
- バリデーションの追加
|
88
|
+
|
89
|
+
* lib/NIFTY/Cloud/load_balancers.rb
|
90
|
+
- AWS/ELB/load_balancers.rbから移動
|
91
|
+
- バリデーションの追加
|
92
|
+
- 指定不可パラメータを除外できるよう変更
|
93
|
+
- disable_availability_zones_for_load_balancerを削除
|
94
|
+
- enable_availability_zones_for_load_balancerを削除
|
95
|
+
- resister_port_with_load_balancerを追加
|
96
|
+
- update_load_balancerを追加
|
97
|
+
- set_filter_for_load_balancerを追加
|
98
|
+
|
99
|
+
* lib/NIFTY/Cloud/security_groups.rb
|
100
|
+
- バリデーションの追加
|
101
|
+
- 指定不可パラメータを除外できるよう変更
|
102
|
+
- deregister_instances_from_security_groupを追加
|
103
|
+
- register_instances_with_security_groupを追加
|
104
|
+
- describe_security_activitiesを追加
|
105
|
+
- update_security_groupを追加
|
106
|
+
|
107
|
+
* lib/NIFTY/Cloud/volumes.rb
|
108
|
+
- バリデーションの追加
|
109
|
+
- 指定不可パラメータを除外できるよう変更
|
110
|
+
|
111
|
+
|
112
|
+
Copyright 2011 NIFTY Corporation All Rights Reserved.
|
data/Gemfile
ADDED
data/INSTALL
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
-----------------------------
|
2
|
+
ニフティクラウド SDK for Ruby
|
3
|
+
-----------------------------
|
4
|
+
|
5
|
+
ニフティクラウド SDK for Ruby のインストールは、以下の手順で行います。
|
6
|
+
|
7
|
+
1. ソースアーカイブの解凍
|
8
|
+
|
9
|
+
% unzip NIFTY_Cloud_SDK_for_Ruby.zip
|
10
|
+
% cd NIFTY_Cloud_SDK_for_Ruby
|
11
|
+
|
12
|
+
2. 依存ライブラリの解決 ※bundlerがインストールされていること
|
13
|
+
|
14
|
+
% bundle install
|
15
|
+
|
16
|
+
3. テストコードの実行
|
17
|
+
|
18
|
+
% rake test
|
19
|
+
|
20
|
+
4. nifty-cloud-sdk のgemパッケージ作成
|
21
|
+
|
22
|
+
% rake build
|
23
|
+
|
24
|
+
5. nifty-cloud-sdk をインストール(gemへ登録)
|
25
|
+
|
26
|
+
% rake install
|
27
|
+
|
28
|
+
|
29
|
+
Copyright 2011 NIFTY Corporation All Rights Reserved.
|
30
|
+
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.co.jp>.
|
2
|
+
You can redistribute it and/or modify it under either the terms of the GPL
|
3
|
+
(see COPYING.txt file), or the conditions below:
|
4
|
+
|
5
|
+
1. You may make and give away verbatim copies of the source form of the
|
6
|
+
software without restriction, provided that you duplicate all of the
|
7
|
+
original copyright notices and associated disclaimers.
|
8
|
+
|
9
|
+
2. You may modify your copy of the software in any way, provided that
|
10
|
+
you do at least ONE of the following:
|
11
|
+
|
12
|
+
a) place your modifications in the Public Domain or otherwise
|
13
|
+
make them Freely Available, such as by posting said
|
14
|
+
modifications to Usenet or an equivalent medium, or by allowing
|
15
|
+
the author to include your modifications in the software.
|
16
|
+
|
17
|
+
b) use the modified software only within your corporation or
|
18
|
+
organization.
|
19
|
+
|
20
|
+
c) rename any non-standard executables so the names do not conflict
|
21
|
+
with standard executables, which must also be provided.
|
22
|
+
|
23
|
+
d) make other distribution arrangements with the author.
|
24
|
+
|
25
|
+
3. You may distribute the software in object code or executable
|
26
|
+
form, provided that you do at least ONE of the following:
|
27
|
+
|
28
|
+
a) distribute the executables and library files of the software,
|
29
|
+
together with instructions (in the manual page or equivalent)
|
30
|
+
on where to get the original distribution.
|
31
|
+
|
32
|
+
b) accompany the distribution with the machine-readable source of
|
33
|
+
the software.
|
34
|
+
|
35
|
+
c) give non-standard executables non-standard names, with
|
36
|
+
instructions on where to get the original software distribution.
|
37
|
+
|
38
|
+
d) make other distribution arrangements with the author.
|
39
|
+
|
40
|
+
4. You may modify and include the part of the software into any other
|
41
|
+
software (possibly commercial). But some files in the distribution
|
42
|
+
are not written by the author, so that they are not under this terms.
|
43
|
+
|
44
|
+
They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
|
45
|
+
files under the ./missing directory. See each file for the copying
|
46
|
+
condition.
|
47
|
+
|
48
|
+
5. The scripts and library files supplied as input to or produced as
|
49
|
+
output from the software do not automatically fall under the
|
50
|
+
copyright of the software, but belong to whomever generated them,
|
51
|
+
and may be sold commercially, and may be aggregated with this
|
52
|
+
software.
|
53
|
+
|
54
|
+
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
55
|
+
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
56
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
57
|
+
PURPOSE.
|
58
|
+
|
data/README.rdoc
ADDED
@@ -0,0 +1,375 @@
|
|
1
|
+
= ニフティクラウド SDK for Ruby
|
2
|
+
|
3
|
+
== 概要
|
4
|
+
|
5
|
+
ニフティクラウド SDK for Ruby は、サーバーの作成・起動・停止やステータス参照などの操作を可能にする Ruby API です。
|
6
|
+
この SDK を利用して、ニフティクラウド管理アプリケーションの開発、リソースコントロールの自動化などをより容易に実現することができます。
|
7
|
+
|
8
|
+
詳しくは、下記のページをご覧ください。
|
9
|
+
|
10
|
+
http://cloud.nifty.com/api/#ruby
|
11
|
+
|
12
|
+
== ニフティクラウド SDK for Ruby に含まれているもの
|
13
|
+
|
14
|
+
* ニフティクラウド Ruby ライブラリ
|
15
|
+
ニフティクラウドAPI(REST)との通信、処理を実装した Ruby API です。
|
16
|
+
RESTの知識がなくても、お使いの Ruby 環境を利用してアプリケーションの開発をすることが可能です。
|
17
|
+
|
18
|
+
* サンプルコード
|
19
|
+
アプリケーション開発のためのライブラリ利用例を内包しています。
|
20
|
+
|
21
|
+
* テストコード
|
22
|
+
テスト用のファイルを内包しています。
|
23
|
+
|
24
|
+
* ドキュメント
|
25
|
+
* README.rdoc
|
26
|
+
ニフティクラウド SDK for Ruby の説明を記述しています。
|
27
|
+
|
28
|
+
* INSTALL
|
29
|
+
インストール手順について記述しています。
|
30
|
+
|
31
|
+
* LICENSE.txt
|
32
|
+
Ruby License の内容になります。
|
33
|
+
|
34
|
+
* CHANGELOG
|
35
|
+
変更箇所について記述しています。
|
36
|
+
|
37
|
+
* パッケージ関連ファイル
|
38
|
+
* Gemfile
|
39
|
+
* Rakefile
|
40
|
+
* nifty-cloud-sdk.gempsec
|
41
|
+
|
42
|
+
== 動作環境
|
43
|
+
|
44
|
+
* Ruby 1.8.7
|
45
|
+
* RubyGems 1.7.2
|
46
|
+
* bundler 1.0.12
|
47
|
+
* xml-simple 1.0.12
|
48
|
+
* mocha 0.9.9
|
49
|
+
* test-unix 2.1.2
|
50
|
+
* test-spec 0.10.0
|
51
|
+
* rcov 0.9.9
|
52
|
+
* perftools 0.5.4
|
53
|
+
* yard 0.6.2
|
54
|
+
|
55
|
+
== 導入
|
56
|
+
|
57
|
+
=== API 認証キーの取得
|
58
|
+
|
59
|
+
ニフティクラウド SDK for Ruby を利用する前に、ニフティクラウドのアカウントを取得する必要があります。
|
60
|
+
|
61
|
+
詳しくは、下記のページをご覧ください。
|
62
|
+
|
63
|
+
http://cloud.nifty.com/api/#sdk
|
64
|
+
|
65
|
+
=== ニフティクラウド SDK for Ruby のインストール
|
66
|
+
|
67
|
+
INSTALL ファイルをご覧ください。
|
68
|
+
|
69
|
+
|
70
|
+
== 利用方法
|
71
|
+
|
72
|
+
ニフティクラウド SDK for Ruby を利用するためのインタフェースクラスは NIFTY::Cloud::Base です。
|
73
|
+
|
74
|
+
=== 準備
|
75
|
+
|
76
|
+
API認証キー(公開キー・秘密キー)は、事前に必ず設定してください。
|
77
|
+
※それ以外の設定できる値は、環境に合わせて変更してください。
|
78
|
+
|
79
|
+
設定方法は下記方法の何れかで設定できます。
|
80
|
+
|
81
|
+
* 環境変数
|
82
|
+
* 定義ファイル
|
83
|
+
* オブジェクト生成時の引数
|
84
|
+
|
85
|
+
すべての方法で設定した場合は、下記優先度に従い設定されます。
|
86
|
+
|
87
|
+
オブジェクト生成時の引数 > 環境変数 > 定義ファイル
|
88
|
+
|
89
|
+
認証バージョン・APIの認証ロジックで設定できる値は、APIリファレンスをご覧ください。
|
90
|
+
|
91
|
+
http://cloud.nifty.com/api/rest/
|
92
|
+
|
93
|
+
|
94
|
+
==== 環境変数での設定
|
95
|
+
|
96
|
+
[ NIFTY_CLOUD_ACCESS_KEY ] 公開キー
|
97
|
+
[ NIFTY_CLOUD_SECRET_KEY ] 秘密キー
|
98
|
+
[ NIFTY_CLOUD_ENDPOINT_URL ] エンドポイント
|
99
|
+
[ NIFTY_CLOUD_PROXY_SERVER ] プロキシサーバーURL
|
100
|
+
[ NIFTY_CLOUD_USER_AGENT ] ユーザーエージェント
|
101
|
+
[ NIFTY_CLOUD_MAX_RETRY ] 最大リトライ回数
|
102
|
+
[ NIFTY_CLOUD_CONNECTION_TIMEOUT ] 接続タイムアウト(秒)
|
103
|
+
[ NIFTY_CLOUD_SOCKET_TIMEOUT ] ソケットタイムアウト(秒)
|
104
|
+
[ NIFTY_CLOUD_SIGNATURE_VERSION ] 認証バージョン
|
105
|
+
[ NIFTY_CLOUD_SIGNATURE_METHOD ] APIの認証ロジック
|
106
|
+
|
107
|
+
環境変数の指定方法は下記のようになります。
|
108
|
+
|
109
|
+
例) 公開キーを環境変数で設定する場合(Linux)
|
110
|
+
% export NIFTY_CLOUD_ACCESS_KEY="<Your Access Key>"
|
111
|
+
|
112
|
+
==== 定義ファイルでの設定
|
113
|
+
|
114
|
+
定義ファイルは、lib/NIFTY/config.rb になります。
|
115
|
+
|
116
|
+
[ ACCESS_KEY ] 公開キー (default: '<default access key>')
|
117
|
+
[ SECRET_KEY ] 秘密キー (default: '<default secret key>')
|
118
|
+
[ ENDPOINT_URL ] エンドポイント (default: 'https://cp.cloud.nifty.com/api/1.7/')
|
119
|
+
[ PROXY_SERVER ] プロキシサーバーURL (default: nil)
|
120
|
+
[ USER_AGENT ] ユーザーエージェント (default: 'NIFTY Cloud API Ruby SDK')
|
121
|
+
[ MAX_RETRY ] 最大リトライ回数 (default: 3)
|
122
|
+
[ CONNECTION_TIMEOUT ] 接続タイムアウト(秒) (default: 30)
|
123
|
+
[ SOCKET_TIMEOUT ] ソケットタイムアウト(秒) (default: 30)
|
124
|
+
[ SIGNATURE_VERSION ] 認証バージョン (default: '2')
|
125
|
+
[ SIGNATURE_METHOD ] APIの認証ロジック (default: 'HmacSHA256')
|
126
|
+
|
127
|
+
==== オブジェクト生成時の引数での設定
|
128
|
+
|
129
|
+
[ :access_key ] 公開キー
|
130
|
+
[ :secret_key ] 秘密キー
|
131
|
+
[ :use_ssl ] SSL暗号化(現状true以外は認めていない)
|
132
|
+
[ :server ] ニフティクラウドAPI ホスト名
|
133
|
+
[ :port ] ニフティクラウドAPI ポート番号
|
134
|
+
[ :path ] ニフティクラウドAPI パス
|
135
|
+
[ :proxy_server ] プロキシサーバーURL
|
136
|
+
[ :user_agent ] ユーザーエージェント
|
137
|
+
[ :max_retry ] 最大リトライ回数
|
138
|
+
[ :connection_timeout ] 接続タイムアウト(秒)
|
139
|
+
[ :socket_timeout ] ソケットタイムアウト(秒)
|
140
|
+
[ :signature_version ] 認証バージョン
|
141
|
+
[ :signature_method ] APIの認証ロジック
|
142
|
+
|
143
|
+
オブジェクト生成時の引数での設定例は、下記「基本操作」の項をご覧ください。
|
144
|
+
|
145
|
+
==== プロキシサーバー利用時の設定方法
|
146
|
+
|
147
|
+
プロキシサーバーを使用する場合は、プロキシサーバーURLを指定する必要があります。
|
148
|
+
※設定例はLinux使用時のものとなります。
|
149
|
+
|
150
|
+
<ユーザー認証がない場合>
|
151
|
+
|
152
|
+
設定例)
|
153
|
+
|
154
|
+
% export NIFTY_CLOUD_PROXY_SERVER='//<host>:<port>'
|
155
|
+
|
156
|
+
<ユーザー認証がある場合>
|
157
|
+
|
158
|
+
設定例)
|
159
|
+
|
160
|
+
% export NIFTY_CLOUD_PROXY_SERVER='//<user>:<password>@<host>:<port>'
|
161
|
+
|
162
|
+
* <user> プロキシサーバーに接続するためのユーザー名
|
163
|
+
* <password> プロキシサーバーに接続するためのパスワード
|
164
|
+
* <host> プロキシサーバーのホスト名
|
165
|
+
* <port> プロキシサーバーのポート番号
|
166
|
+
|
167
|
+
=== 基本操作
|
168
|
+
|
169
|
+
ニフティクラウド SDK for Rubyを利用するためのインタフェースクラスを用いて操作を行います。
|
170
|
+
|
171
|
+
NIFTY::Cloud::Base
|
172
|
+
|
173
|
+
オブジェクトの生成は以下のように行います。
|
174
|
+
|
175
|
+
<環境変数・定義ファイルの設定値を使う場合>
|
176
|
+
|
177
|
+
@nifty = NIFTY::Cloud::Base.new
|
178
|
+
|
179
|
+
<オブジェクト生成時の引数を指定する場合>
|
180
|
+
|
181
|
+
@nifty = NIFTY::Cloud::Base.new(:access_key => "<Your Access Key>", :secret_key => "<Your Secret Access Key>")
|
182
|
+
|
183
|
+
※注意
|
184
|
+
ニフティクラウド用に用意しているパブリックメソッドは、APIリファレンス(REST)に記載のあるAPI名とは異なっています。
|
185
|
+
例えば 'RunInstances' は、'@nifty.run_instances()' となります。
|
186
|
+
|
187
|
+
オブジェクト生成後、利用したいAPIに対応したメソッドを呼び出します。
|
188
|
+
|
189
|
+
res = @nifty.run_instances( options )
|
190
|
+
|
191
|
+
※optionsには必要なオプションを設定
|
192
|
+
|
193
|
+
res にレスポンス結果が格納されます。
|
194
|
+
|
195
|
+
|
196
|
+
=== サンプルスクリプト
|
197
|
+
|
198
|
+
sample ディレクトリ内をご覧ください。
|
199
|
+
|
200
|
+
=== Ruby script 利用例:
|
201
|
+
|
202
|
+
RunInstances の例)
|
203
|
+
|
204
|
+
#!/usr/bin/env ruby
|
205
|
+
|
206
|
+
require 'rubygems'
|
207
|
+
require "NIFTY"
|
208
|
+
require 'pp'
|
209
|
+
|
210
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
211
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
212
|
+
|
213
|
+
|
214
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
215
|
+
|
216
|
+
options = {
|
217
|
+
:image_id => "imageId",
|
218
|
+
:key_name => "keyName",
|
219
|
+
:security_group => ["groupName"],
|
220
|
+
:instance_type => "instanceType",
|
221
|
+
:disable_api_termination => false,
|
222
|
+
:accounting_type => "accountingType",
|
223
|
+
:instance_id => "instanceId",
|
224
|
+
:admin => "admin",
|
225
|
+
:password => "password",
|
226
|
+
:ip_type => "static"
|
227
|
+
}
|
228
|
+
|
229
|
+
pp response = ncs4r.run_instances(options)
|
230
|
+
|
231
|
+
=== Ruby on Rails 利用例:
|
232
|
+
|
233
|
+
<プラグインとして追加>
|
234
|
+
|
235
|
+
プラグイン作成コマンドを実行します。
|
236
|
+
|
237
|
+
% script/generate plugin nifty_cloud_api
|
238
|
+
|
239
|
+
作成されたライブラリディレクトリにSDKを展開します。
|
240
|
+
|
241
|
+
${RAILS_HOME}/vendor/plugins/nifty_cloud_api/lib/NIFTY/…
|
242
|
+
NIFTY.rb
|
243
|
+
|
244
|
+
また、作成されたinit.rbファイルを編集し、
|
245
|
+
|
246
|
+
# init.rb
|
247
|
+
# Include hook code here
|
248
|
+
require 'NIFTY'
|
249
|
+
|
250
|
+
アプリケーション初期化時に読み込まれるように設定します。
|
251
|
+
|
252
|
+
RunInstances の例)
|
253
|
+
|
254
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
255
|
+
options = { ... }
|
256
|
+
pp response = ncs4r.run_instances(options)
|
257
|
+
|
258
|
+
=== レスポンス結果の取り扱い
|
259
|
+
|
260
|
+
ニフティクラウドからのレスポンスはXML形式で返ってきます。
|
261
|
+
|
262
|
+
ニフティクラウド SDK for Ruby では、返ってきたレスポンスをハッシュ構造体にしてユーザーに返却します。
|
263
|
+
|
264
|
+
==== レスポンス例
|
265
|
+
|
266
|
+
<RunInstancesResponse xmlns="https://cp.cloud.nifty.com/api/1.7/">
|
267
|
+
<requestId>22e11cc4-0e5a-4815-9892-b1ed6aeed6c4</requestId>
|
268
|
+
<reservationId/>
|
269
|
+
<ownerId/>
|
270
|
+
<groupSet>
|
271
|
+
<item>
|
272
|
+
<groupId>groupName</groupId>
|
273
|
+
</item>
|
274
|
+
</groupSet>
|
275
|
+
<instancesSet>
|
276
|
+
<item>
|
277
|
+
<instanceId>instanceId</instanceId>
|
278
|
+
<imageId>imageId</imageId>
|
279
|
+
<instanceState>
|
280
|
+
<code>0</code>
|
281
|
+
<name>pending</name>
|
282
|
+
</instanceState>
|
283
|
+
<privateDnsName/>
|
284
|
+
<dnsName/>
|
285
|
+
<keyName>keyName</keyName>
|
286
|
+
<admin/>
|
287
|
+
<instanceType>instanceType</instanceType>
|
288
|
+
<launchTime>2011-07-01T13:21:59.074+09:00</launchTime>
|
289
|
+
<placement>
|
290
|
+
<availabilityZone>ap-japan-1a</availabilityZone>
|
291
|
+
</placement>
|
292
|
+
<platform>centos</platform>
|
293
|
+
<monitoring>
|
294
|
+
<state>monitoring-disabled</state>
|
295
|
+
</monitoring>
|
296
|
+
<privateIpAddress/>
|
297
|
+
<ipAddress/>
|
298
|
+
<privateIpAddressV6/>
|
299
|
+
<ipAddressV6/>
|
300
|
+
<architecture>i386</architecture>
|
301
|
+
<rootDeviceType>disk</rootDeviceType>
|
302
|
+
<blockDeviceMapping/>
|
303
|
+
<accountingType>accountingType</accountingType>
|
304
|
+
<ipType>static</ipType>
|
305
|
+
</item>
|
306
|
+
</instancesSet>
|
307
|
+
</RunInstancesResponse>
|
308
|
+
|
309
|
+
==== アクセス方法
|
310
|
+
|
311
|
+
上記レスポンスが返ってくるとした場合、imageIdを参照したい時は下記操作で参照できます。
|
312
|
+
|
313
|
+
puts res.instancesSet.item[0].imageId # => imageId
|
314
|
+
|
315
|
+
|
316
|
+
=== 例外処理
|
317
|
+
|
318
|
+
何らかの理由で処理が失敗した時は、例外が発生します。
|
319
|
+
例外の定義は lib/NIFTY/exception.rb で定義されています。
|
320
|
+
|
321
|
+
ニフティクラウド SDK for Ruby で発生させる例外は下記になります。
|
322
|
+
|
323
|
+
==== 定義エラー
|
324
|
+
定義値に不正があった場合に出力されれます。
|
325
|
+
|
326
|
+
ConfigurationError
|
327
|
+
|
328
|
+
==== 引数エラー
|
329
|
+
引数に不正があった場合に出力されれます。
|
330
|
+
|
331
|
+
ArgumentError
|
332
|
+
|
333
|
+
==== フォーマットエラー
|
334
|
+
サーバーからのレスポンスが解析できない場合に出力されます。
|
335
|
+
|
336
|
+
ResponseFormatError
|
337
|
+
|
338
|
+
==== レスポンスエラー
|
339
|
+
サーバーからのレスポンスがエラーの場合に出力されれます。
|
340
|
+
|
341
|
+
ResponseError
|
342
|
+
|
343
|
+
===== レスポンスエラー時のエラー情報取得方法について
|
344
|
+
レスポンスエラーの場合は、エラーコード・エラーメッセージがクラス内で定義されています。
|
345
|
+
|
346
|
+
begin
|
347
|
+
@nifty.describe_instances
|
348
|
+
rescue ResponseError => e
|
349
|
+
puts "Error Code: #{e.error_code}"
|
350
|
+
puts "Error Message: #{e.error_message}"
|
351
|
+
end
|
352
|
+
|
353
|
+
|
354
|
+
== 謝辞
|
355
|
+
|
356
|
+
Glenn Rempe氏のライブラリを改変して作成しております。
|
357
|
+
|
358
|
+
詳しくは下記ページをご覧ください。
|
359
|
+
|
360
|
+
https://github.com/grempe/amazon-ec2/tree/master
|
361
|
+
|
362
|
+
== ライセンス
|
363
|
+
|
364
|
+
このソフトフェアのライセンスは、Ruby License に従います。
|
365
|
+
|
366
|
+
== その他
|
367
|
+
|
368
|
+
=== ウェブサイト
|
369
|
+
|
370
|
+
* ニフティクラウド : http://cloud.nifty.com/
|
371
|
+
* ニフティクラウドAPI : http://cloud.nifty.com/api/
|
372
|
+
* rdoc : http://cloud.nifty.com/api/sdk/rdoc/
|
373
|
+
|
374
|
+
Copyright 2011 NIFTY Corporation All Rights Reserved.
|
375
|
+
|