Class: NIFTY::Cloud::Base
- Defined in:
- lib/NIFTY/Cloud.rb,
lib/NIFTY/Cloud/images.rb,
lib/NIFTY/Cloud/volumes.rb,
lib/NIFTY/Cloud/keypairs.rb,
lib/NIFTY/Cloud/instances.rb,
lib/NIFTY/Cloud/certificates.rb,
lib/NIFTY/Cloud/load_balancers.rb,
lib/NIFTY/Cloud/security_groups.rb,
lib/NIFTY/Cloud/availability_zones.rb
Constant Summary collapse
- IMAGES_MODIFY_ATTRIBUTE =
['description', 'imageName']
- IMAGES_DESCRIBE_OWNER =
['niftycloud', 'self']
- IMAGES_IGNORED_PARAMS =
Regexp.union(/Description/, /NoReboot/, /ExecutableBy\.\d+/, /LaunchPermission\.Add\.\d+\.UserId/, /LaunchPermission\.Add\.\d+\.Group/, /LaunchPermission\.Remove\.\d+\.UserId/, /LaunchPermission\.Remove\.\d+\.Group/, /ProductCode\.\d+/)
- VOLUMES_CREATE_SIZE =
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '15', '20']
- VOLUMES_CREATE_DISK_TYPE =
['1', '2', '3', '4', '5', '6']
- VOLUMES_IGNORED_PARAMS =
Regexp.union(/SnapshotId/, /AvailabilityZone/, /Device/, /Force/)
- ALPHANUMERIC =
/^[a-zA-Z0-9]+$/
- INSTANCE_TYPE =
['mini', 'small', 'small2', 'small4', 'medium', 'medium4', 'medium8', 'large', 'large8', 'large16']
- ACCOUNTING_TYPE =
['1', '2']
- BOOLEAN =
['true', 'false']
- IP_TYPE =
['static', 'dynamic']
- INSTANCES_DESCRIBE_ATTRIBUTE =
[ 'instanceType', 'disableApiTermination', 'blockDeviceMapping', 'accountingType', 'loadbalancing', 'copyInfo', 'autoscaling', 'ipType', 'groupId', 'description']
- INSTANCES_MODIFY_ATTRIBUTE =
['instanceType', 'disableApiTermination', 'instanceName', 'description', 'ipType', 'groupId']
- INSTANCES_IGNORED_PARAMS =
Regexp.union(/MinCount/, /MaxCount/, /AddisionalInfo/, /UserData/, /AddressingType/, /Placement.GroupName/, /KernelId/, /RamdiskId/, /BlockDeviceMapping.*/, /Monitoring\.Enabled/, /SubnetId/, /InstanceInitiatedShutdownBehavior/)
- VALIDITY_TERM =
['6', '12', '24']
- KEY_LENGTH =
['1024', '2048']
- CERTIFICATE_DESCRIBE_ATTRIBUTE =
['count', 'certState', 'period', 'keyLength', 'uploadState', 'description', 'certInfo']
- FILE_TYPE =
['1', '2', '3']
- LOAD_BALANCER_PROTOCOL =
['HTTP', 'HTTPS', 'FTP']
- BALANCING_TYPE =
['1', '2']
- NETWORK_VOLUMES =
['10', '20', '30', '40', '100', '200']
- IP_VERSION =
['v4', 'v6']
- FILTER_TYPE =
['1', '2']
- LOAD_BALANCER_NAME =
/^[a-zA-Z0-9]{1,15}$/
- LOAD_BALANCERS_IGNORED_PARAMS =
Regexp.union(/AvailabilityZones .member.*/, /HealthCheck .Timeout/)
- FILTER_NAME =
['description', 'group-name']
- IP_PROTOCOL =
['TCP', 'UDP', 'ICMP', 'SSH', 'HTTP', 'HTTPS', 'SMTP', 'POP3', 'IMAP']
- IN_OUT =
['IN', 'OUT']
- DATE_FORMAT =
%r!^(\d{8}|\d{4}-\d{2}-\d{2}|\d{4}/\d{2}/\d{2})$!
- GROUP_NAME =
Regexp.union(/^[a-zA-Z0-9]+$/, 'default(Linux)', 'default(Windows)')
- SECURITY_GROUPS_IGNORED_PARAMS =
Regexp.union(/UserId/, /IpPermissions\.\d+\.ToPort/, /IpPermissions\.\d+\.Groups\.\d+\.UserId/)
- ZONES_IGNORED_PARAMS =
Regexp.new(/ZoneName\.\d+/)
- @@ignore_amz_params =
この値が真のときNIFTY Cloud API側で無視されるパラメータは送信されない
false
Constants inherited from Base
Base::DEFAULT_CONNECTION_TIMEOUT, Base::DEFAULT_CONTENT_TYPE, Base::DEFAULT_PORT, Base::DEFAULT_SOCKET_TIMEOUT, Base::PORT_RANGE, Base::PROTOCOL_HTTPS, Base::SIGNATURE_METHOD_SHA1, Base::SIGNATURE_METHOD_SHA256, Base::SIGNATURE_VERSION
Instance Attribute Summary
Attributes inherited from Base
#access_key, #connection_timeout, #max_retry, #path, #port, #proxy_server, #secret_key, #server, #signature_method, #signature_version, #socket_timeout, #use_ssl, #user_agent
Instance Method Summary collapse
-
#attach_volume(options = {}) ⇒ Object
API「AttachVolume」を実行し、指定したディスクをサーバーへ接続します。 ディスクを指定するためには、ディスク名が必要です。接続済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。接続済み・削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。.
-
#authorize_security_group_ingress(options = {}) ⇒ Object
API「AuthorizeSecurityGroupIngress」を実行し、指定したファイアウォールグループへ許可ルールを追加します。 許可ルールの上限数を超える場合は、エラーが返されます。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。.
-
#cancel_copy_instances(options = {}) ⇒ Object
API「CancelCopyInstances」を実行し、指定したサーバーの作成(コピーによる作成)をキャンセルします。 作成待ちのサーバーのみ指定ができます。 サーバーを指定するためには、サーバー名が必要です。作成待ち以外のサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。.
-
#configure_health_check(options = {}) ⇒ Object
API「ConfigureHealthCheck」を実行し、指定したロードバランサーのヘルスチェックの設定を変更します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 ヘルスチェックの実行結果は、API「DescribeInstanceHealth」で確認できます。.
-
#copy_instances(options = {}) ⇒ Object
API「CopyInstances」を実行し、指定したサーバーのコピーを作成します。 停止中のサーバーのみ指定ができます。コピー後のサーバー名は、指定したコピー後のサーバー名の後ろに「-連番」が付加され た名称になります。 サーバーを指定するためには、サーバー名が必要です。停止中以外のサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 またファイアウォール機能を提供していない環境でファイアウォールグループを指定して実行した場合は、エラーが返されます。.
-
#create_image(options = {}) ⇒ Object
API「CreateImage」を実行し、指定したサーバーをイメージ化し、カスタマイズイメージとして保存します。 サーバーをイメージ化するためには、サーバーを停止する必要があります。 カスタマイズイメージの作成には、時間がかかることがあります。このAPI のレスポンス「imageState」を確認し「pending」が返ってきた、 タイムアウトした場合は、API「DescribeImages」のレスポンス「imageState」でカスタマイズイメージのステータスを確認できます。 処理が失敗した場合、カスタマイズイメージは保存されず、エラーが返されます。.
-
#create_key_pair(options = {}) ⇒ Object
API「CreateKeyPair」を実行し、SSH キーを新規作成します。 SSHキーには、SSHキー名およびパスワードを設定します。SSHキー名には、同じユーザーが作るキーのうち、一意となる文字列を 指定します。設定したパスワードが使用可能文字ルールに適合しない場合は、エラーが返されます。.
-
#create_load_balancer(options = {}) ⇒ Object
API「CreateLoadBalancer」を実行し、ロードバランサーの定義を作成します。 ロードバランサーの定義を作成します。1 回のリクエストで、1 つのポート定義を作成できます。 すでに存在するロードバランサー名を指定した、存在するポート番号を指定した場合は、エラーが返されます。 ロードバランサーの定義の作成に成功した場合は、以下のAPI を実行する必要があります。 ・ API「RegisterInstancesWithLoadBalancer」(サーバー設定) ・ API「ConfigureHealthCheck」(ヘルスチェック設定) フィルターの設定は、「すべてのアクセスを許可する」になっています。変更を行う場合は以下のAPI を実行する必要があります。 ・ API「SetFilterForLoadBalancer」(フィルター設定).
-
#create_security_group(options = {}) ⇒ Object
API「CreateSecurityGroup」を実行し、ファイアウォールグループを新規作成します。 ファイアウォールの有償版に申し込んでいない場合は、エラーが返されます。 すでに存在するファイアウォールグループ名を指定した、作成可能なファイアウォールグループの上限数を超える場合は、エラーが返されます。 ファイアウォールの有償版を申し込むには、コントロールパネルで設定する必要があります。.
-
#create_ssl_certificate(options = {}) ⇒ Object
API「CreateSslCertificate」を実行し、SSL 証明書の新規作成または更新を行います。 申請法人情報が未登録の場合は、エラーが返されます。 パラメーター「fqdnId」を指定した場合、指定したSSL 証明書を更新します。指定したSSL 証明書の有効期間が更新可能ではない、 アップロードした証明書を指定した、存在しないSSL 証明書を指定した場合など、無効なSSL 証明書を指定した場合は、エラーが返されます。 パラメーター「fqdnId」を指定しない場合、SSL 証明書を新規作成します。作成可能なSSL 証明書の上限数を超える場合は、エラーが返されます。 また申請法人情報を登録するには、API「RegisterCorporateInfoForCertificate」を実行します。.
-
#create_volume(options = {}) ⇒ Object
API「CreateVolume」を実行し、ディスクを新規作成します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定した、停止済み 以外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。同様に、ディスクサイズおよびディスク タイプに規定外の値を指定した、すでに存在するディスク名を指定したなどの場合は、エラーが返されます。.
-
#delete_image(options = {}) ⇒ Object
API「DeleteImage」を実行し、指定したカスタマイズイメージを削除します。 削除中のカスタマイズイメージを指定してサーバー作成を行った場合は、サーバー作成からエラーが返されます。 カスタマイズイメージを選択して作成されたサーバーのOSイメージ名は、カスタマイズイメージの削除が完了すると、イメージ化した サーバーのOS 名が返されます。.
-
#delete_key_pair(options = {}) ⇒ Object
API「DeleteKeyPair」を実行し、SSH キーの情報を削除します。 SSHキーを指定するためには、SSHキー名が必要です。削除済みのSSHキーを指定した、管理外のSSHキーを指定したなど、 無効なSSH キーを指定した場合は、エラーが返されます。.
-
#delete_load_balancer(options = {}) ⇒ Object
API「DeleteLoadBalancer」を実行し、指定したロードバランサーのポート定義を削除します。 関連するフィルター設定・サーバー設定・ヘルスチェック設定もあわせて削除します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。.
-
#delete_security_group(options = {}) ⇒ Object
API「DeleteSecurityGroup」を実行し、指定したファイアウォールグループを削除します。 指定したファイアウォールグループを適用しているサーバーが存在する場合、エラーが返されます。同様に、適用しているオートスケール設定が存在する場合、 エラーが返されます。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。 削除済みのファイアウォールグループを指定した、管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、 エラーが返されます。.
-
#delete_ssl_certificate(options = {}) ⇒ Object
API「DeleteSslCertificate」を実行し、指定したSSL 証明書を削除します。 指定したSSL 証明書のステータスが「期限切れ」「失効」「発行エラー」以外の場合は、エラーが返されます。 またアップロードしたSSL証明書は、ステータスに関わらず削除できます。 SSL 証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL 証明書を指定した、 管理外のSSL 証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。.
-
#delete_volume(options = {}) ⇒ Object
API「DeleteVolume」を実行し、指定したディスクを削除します。 ディスクを指定するためには、ディスク名が必要です。接続済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 削除には、時間がかかることがあります。 なお、サーバーに接続しているディスクを指定した場合には、エラーが返されます。ディスクの接続ステータスは、API 「DescribeVolumes」のレスポンス「attachmentSet.status」で確認できます。.
-
#deregister_instances_from_load_balancer(options = {}) ⇒ Object
API「DeregisterInstancesFromLoadBalancer」を実行し、指定したロードバランサーから、指定したサーバーを解除します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。該当するロードバランサーに設定されていないサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。.
-
#deregister_instances_from_security_group(options = {}) ⇒ Object
API「DeregisterInstancesFromSecurityGroup」を実行し、指定したファイアウォールグループから、指定したサーバーをはずします。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。指定したファイアウォールグループに適用されていないサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。.
-
#describe_availability_zones(options = {}) ⇒ Object
API「DescribeAvailabilityZones」を実行し、利用可能なゾーンの情報を取得します。常に、ゾーン「ap-japan-1a」の情報が返されます。.
-
#describe_images(options = {}) ⇒ Object
API「DescribeImages」を実行し、OS イメージの情報を取得します。 特定のOS イメージを指定するためには、OS イメージID またはOS イメージ名が必要です。OS イメージを指定しない場合は、 取得可能なすべてのOS イメージ情報を取得します。無効なOS イメージを指定した場合は、エラーが返されます。.
-
#describe_instance_attribute(options = {}) ⇒ Object
API「DescribeInstanceAttribute」を実行し、指定したサーバーの詳細情報を取得します。1回のリクエストで、指定したサーバーのどれか1つの詳細情報を取得できます。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。.
-
#describe_instance_health(options = {}) ⇒ Object
API「DescribeInstanceHealth」を実行し、指定したロードバランサーに設定されている、サーバーのヘルスチェック結果を取得します。ヘルスチェックは、API 「ConfigureHealthCheck」で設定します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、管理外のロードバランサーを指定したなど、 無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。サーバーを指定しない場合は、指定したロードバランサーに設定されているすべてのサーバーを対象として、 ヘルスチェック結果を取得します。 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。.
-
#describe_instances(options = {}) ⇒ Object
API「DescribeInstances」を実行し、指定したサーバーの情報を取得します。1 回のリクエストで、複数のサーバー情報を取得できます。 サーバーを指定するためには、サーバー名が必要です。サーバーを指定しない場合は、取得可能なすべてのサーバー情報を取 得します。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なID を指定した場合は、エラーが返されます。.
-
#describe_key_pairs(options = {}) ⇒ Object
API「DescribeKeyPairs」を実行し、指定したSSH キーの情報を取得します。 SSHキーを指定するためには、SSHキー名が必要です。SSHキーを指定しない場合は、取得できるすべてのSSHキー情報を取得します。 削除済みのSSH キーを指定した、管理外のSSH キーを指定したなど、無効なSSH キーを指定した場合は、エラーが返されます。.
-
#describe_load_balancers(options = {}) ⇒ Object
API「DescribeLoadBalancers」を実行し、指定したロードバランサーの情報を取得します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。ロードバランサーを指定しない場合は、取得可能なすべての ロードバランサー情報を取得します。 削除済みのロードバランサーを指定した、管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。.
-
#describe_security_activities(options = {}) ⇒ Object
API「DescribeSecurityActivities」を実行し、指定したファイアウォールグループのログ情報を取得します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。.
-
#describe_security_groups(options = {}) ⇒ Object
API「DescribeSecurityGroups」を実行し、指定したファイアウォールグループの設定情報を取得します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。指定しない場合は、取得可能なすべての ファイアウォールグループの設定情報を取得します。.
-
#describe_ssl_certificate_attribute(options = {}) ⇒ Object
API「DescribeSslCertificateAttribute」を実行し、指定したSSL証明書の詳細情報を取得します。 1回のリクエストで、指定したSSL証明書のどれか1つの詳細情報を取得できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、 管理外のSSL証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。.
-
#describe_ssl_certificates(options = {}) ⇒ Object
API「DescribeSslCertificates」を実行し、指定したSSL 証明書の情報を取得します。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)またはFQDN が必要です。 指定しない場合は、取得可能なすべてのSSL証明書の情報を取得します。.
-
#describe_volumes(options = {}) ⇒ Object
API「DescribeVolumes」を実行し、指定したディスクの情報を取得します。 ディスクを指定するためには、ディスク名が必要です。削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 ディスクを指定しない場合、取得できるすべてのディスク情報を取得します。.
-
#detach_volume(options = {}) ⇒ Object
API「DetachVolume」を実行し、指定したディスクとサーバーの接続を解除します。 ディスクを指定するためには、ディスク名が必要です。解除済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。解除済み・削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。サーバー名を指定せずに解除すると、指定したディスクのすべての接続情報を解除します。.
-
#download_ssl_certificate(options = {}) ⇒ Object
API「DownloadSslCertificate」を実行し、指定したSSL証明書をダウンロードします。 1回のリクエストで、SSL証明書のキー・CA・証明書のいずれかを取得できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、 管理外のSSL証明書を指定したなど、無効なSSL証明書を指定した場合は、エラーが返されます。 またSSL証明書の発行状況により、指定したファイルがダウンロードできない場合があります。.
-
#initialize(options = {}) ⇒ Base
constructor
A new instance of Base.
-
#modify_image_attribute(options = {}) ⇒ Object
API「ModifyImageAttribute」を実行し、指定したカスタマイズイメージの詳細情報を更新します。1 回のリクエストで、1 つのカスタマイズイメージの情報を更新できます。 カスタマイズイメージを指定するためには、イメージID が必要です。削除済みのイメージID を指定した、管理外のイメージID を指定したなど、 無効なイメージID を指定した場合は、エラーが返されます。.
-
#modify_instance_attribute(options = {}) ⇒ Object
API「ModifyInstanceAttribute」を実行し、指定したサーバーの詳細情報を更新します。1 回のリクエストで、1 つのサーバーの情報を更新できます。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 なお、起動済みのサーバーを指定した場合は、エラーが返されます。サーバーのステータスは、API「DescribeInstances」のレスポン ス値「instanceState」で確認できます。.
-
#modify_ssl_certificate_attribute(options = {}) ⇒ Object
API「ModifySslCertificateAttribute」を実行し、指定したSSL 証明書の詳細情報を更新します。1 回のリクエストで、1 つのSSL 証明書の1 つの詳細情報を更新できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、管理外のSSL 証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。.
-
#reboot_instances(options = {}) ⇒ Object
API「RebootInstances」を実行し、指定したサーバーを再起動します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの再起動には、時間がかかることがあります。サーバーのステータスは、API「DescribeInstances」のレスポンス値 「instanceState」で確認できます。.
-
#register_corporate_info_for_certificate(options = {}) ⇒ Object
API「RegisterCorporateInfoForCertificate」を実行し、SSL証明書を管理する申請法人情報を登録または更新します。 利用規約(cp.cloud.nifty.com/ssl/trust.txt)をご確認の上、パラメーター「agreement」を指定します。.
-
#register_instances_with_load_balancer(options = {}) ⇒ Object
API「RegisterInstancesWithLoadBalancer」を実行し、 指定したロードバランサーにサーバーを追加します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。IP アドレスを固定化しているサーバーを指定できます。IP アドレス を固定化していないサーバーを指定した、ほかのロードバランサーに設定されているサーバーを指定した、削除済みのサーバーを指定した、 管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。.
-
#register_instances_with_security_group(options = {}) ⇒ Object
API「RegisterInstancesWithSecurityGroup」を実行し、指定したファイアウォールグループを、指定したサーバーへ適用します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。すでにファイアウォールグループに適用されているサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。.
-
#register_port_with_load_balancer(options = {}) ⇒ Object
API「RegisterPortWithLoadBalancer」を実行し、指定したロードバランサーにポートを追加します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 ポートの追加に成功した場合は、以下のAPI を実行する必要があります。 ・ API「RegisterInstancesWithLoadBalancer」(サーバー設定) ・ API「ConfigureHealthCheck」(ヘルスチェック設定) フィルターの設定は、「すべてのアクセスを許可する」になっています。変更を行う場合は以下のAPI を実行する必要があります。 API「SetFilterForLoadBalancer」(フィルター設定).
-
#revoke_security_group_ingress(options = {}) ⇒ Object
API「RevokeSecurityGroupIngress」を実行し、指定したファイアウォールグループから許可ルールを削除します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 また許可ルールを指定するためには、設定されている 許可プロトコル名・許可ポート・許可するファイアウォールグループまたは許可するIPアドレスが必要です。 該当する許可ルールが存在しない場合は、エラーが返されます。.
-
#run_instances(options = {}) ⇒ Object
API「RunInstances」を実行し、サーバーを新規作成します。1 回のリクエストで、1 つのサーバーを作成できます。 サーバーの作成には、時間がかかることがあります。このAPI のレスポンス「instanceState」を確認し「pending」が返ってきた、 タイムアウトした場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 処理が失敗した場合、サーバーは作成されず、エラーが返されます。 またファイアウォール機能を提供していない環境でファイアウォールグループを指定して実行した場合は、エラーが返されます。.
-
#set_filter_for_load_balancer(options = {}) ⇒ Object
API「SetFilterForLoadBalancer」を実行し、指定したロードバランサーにアクセスフィルターを設定します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。.
-
#start_instances(options = {}) ⇒ Object
API「StartInstances」を実行し、指定したサーバーを起動します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの起動には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた場 合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。.
-
#stop_instances(options = {}) ⇒ Object
API「StopInstances」を実行し、指定したサーバーを停止します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの停止には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた 場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 なお、強制オプションに「true」を指定して実行した際に、サーバーが停止できない状態などのエラーが返されることがあります。 強制オプションに「true」を指定して実行した場合には、システムチェックや修復を行うことをおすすめします。.
-
#terminate_instances(options = {}) ⇒ Object
API「TerminateInstances」を実行し、指定したサーバーを削除します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの削除には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた 場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 また、API「DescribeInstances」のレスポンスに該当情報がない場合は、削除処理は成功しています。.
-
#update_load_balancer(options = {}) ⇒ Object
API「UpdateLoadBalancer」を実行し、指定したロードバランサーの定義を変更します。 ポート定義を更新する場合は、ポート番号もあわせて指定します。 削除済みのロードバランサー名・待ち受けポートを指定した、管理外のロードバランサー名を指定した場合は、エラーが返されます。.
-
#update_security_group(options = {}) ⇒ Object
API「UpdateSecurityGroup」を実行し、ファイアウォールグループの設定情報を更新します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。.
-
#upload_ssl_certificate(options = {}) ⇒ Object
API「UploadSslCertificate」を実行し、指定したSSL証明書をアップロードします。 1回のリクエストで、SSL証明書のキー・CA・証明書の1 セットをアップロードできます。 作成可能なSSL証明書の上限数を超える場合は、エラーが返されます。 またアップロードしたファイルの解析に失敗した場合は、エラーが返されます。.
Constructor Details
#initialize(options = {}) ⇒ Base
Returns a new instance of Base.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/NIFTY/Cloud.rb', line 7 def initialize( ={} ) @default_access_key = ACCESS_KEY @default_secret_key = SECRET_KEY @default_endpoint = ENDPOINT_URL @default_proxy_server = PROXY_SERVER @default_user_agent = USER_AGENT @default_max_retry = MAX_RETRY @default_connection_timeout = CONNECTION_TIMEOUT @default_socket_timeout = SOCKET_TIMEOUT @default_signature_method = SIGNATURE_METHOD @default_signature_version = SIGNATURE_VERSION super() end |
Instance Method Details
#attach_volume(options = {}) ⇒ Object
API「AttachVolume」を実行し、指定したディスクをサーバーへ接続します。 ディスクを指定するためには、ディスク名が必要です。接続済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。接続済み・削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。
@option options [String] :volume_id サーバーに接続するディスク名(必須)
@option options [String] :instance_id 接続先のサーバー名(必須)
@return [Hash] レスポンスXML解析結果
@example
attach_volume(:volume_id => 'vol1', :instance_id => 'server01')
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/NIFTY/Cloud/volumes.rb', line 24 def attach_volume( = {} ) raise ArgumentError, "No :volume_id provided." if blank?([:volume_id]) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) params = { 'Action' => 'AttachVolume' } params.merge!(opts_to_prms(, [:volume_id, :instance_id, :device])) params.reject! {|k, v| VOLUMES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#authorize_security_group_ingress(options = {}) ⇒ Object
API「AuthorizeSecurityGroupIngress」を実行し、指定したファイアウォールグループへ許可ルールを追加します。 許可ルールの上限数を超える場合は、エラーが返されます。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。
@option options [String] :group_name 対象のファイアウォールグループ名(必須)
@option options [Array<Hash>] :ip_permissions IP許可設定
<Hash> options [String] :protocol - 許可プロトコル名
許可値: TCP | UDP | ICMP | SSH | HTTP | HTTPS
[Integer] :from_port - 許可ポート(:protocolがTCP、UDPの場合は必須)
[String] :in_out - Incoming/Outgoing 指定
許可値: IN(Incoming) | OUT(Outgoing)
[Array<String>] :group_name - 許可するファイアウォールグループ名(:cidr_ipとどちらか必須)
[Array<String>] :cidr_ip - 許可するIP アドレス(CIDR指定可) (:group_nameとどちらか必須)
@return [Hash] レスポンスXML解析結果
@example
authorize_security_group_ingress(:group_name => 'gr1', :ip_permissions => [{:protocol => 'TCP',
:from_port => 80,
:in_out => 'IN',
:group_name => ['gr1', 'gr2'],
:cidr_ip => ['111.171.200.1/22', '111.111.111.112']} ])
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 36 def ( = {} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "No :ip_permissions provided." if blank?([:ip_permissions]) [[:ip_permissions]].flatten.each do |opt| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless opt.is_a?(Hash) raise ArgumentError, "Invalid :ip_protocol provided." unless blank?(opt[:ip_protocol]) || IP_PROTOCOL.include?(opt[:ip_protocol].to_s.upcase) raise ArgumentError, "No :from_port provided." if /TCP|UDP/ =~ opt[:ip_protocol] && blank?(opt[:from_port]) raise ArgumentError, "Invalid :from_port provided." unless blank?(opt[:from_port]) || valid_port?(opt[:from_port]) raise ArgumentError, "Invalid :to_port provided." unless blank?(opt[:to_port]) || valid_port?(opt[:to_port]) raise ArgumentError, "Invalid :in_out provided." unless blank?(opt[:in_out]) || IN_OUT.include?(opt[:in_out].to_s.upcase) raise ArgumentError, ":group_name or :cidr_ip must be provided." if blank?(opt[:group_name]) && blank?(opt[:cidr_ip]) raise ArgumentError, "Invalid :group_name provided." unless blank?(opt[:group_name]) || GROUP_NAME =~ opt[:group_name].to_s [opt[:cidr_ip]].flatten.each do |ip| begin IPAddr.new(ip.to_s) rescue raise ArgumentError, "Invalid :cidr_ip provided." end end unless blank?(opt[:cidr_ip]) opt[:user_id] = [opt[:user_id]].flatten unless blank?(opt[:user_id]) opt[:group_name] = [opt[:group_name]].flatten unless blank?(opt[:group_name]) opt[:cidr_ip] = [opt[:cidr_ip]].flatten unless blank?(opt[:cidr_ip]) end unless blank?([:ip_permissions]) params = {'Action' => 'AuthorizeSecurityGroupIngress'} params.merge!(opts_to_prms(, [:user_id, :group_name])) unless blank?([:ip_permissions]) params.merge!(pathhashlist('IpPermissions', [:ip_permissions], { :ip_protocol => 'IpProtocol', :from_port => 'FromPort', :to_port => 'ToPort', :in_out => 'InOut', :user_id => 'Groups', :group_name => 'Groups', :cidr_ip => 'IpRanges'}, { :user_id => 'UserId', :group_name => 'GroupName', :cidr_ip => 'CidrIp'})) end params.reject! {|k, v| SECURITY_GROUPS_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#cancel_copy_instances(options = {}) ⇒ Object
API「CancelCopyInstances」を実行し、指定したサーバーの作成(コピーによる作成)をキャンセルします。 作成待ちのサーバーのみ指定ができます。 サーバーを指定するためには、サーバー名が必要です。作成待ち以外のサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。
@option options [String] :instance_id キャンセル対象のサーバー名(必須)
@return [Hash] レスポンスXML解析結果
@example
cancel_copy_instances(:instance_id => 'server01')
360 361 362 363 364 365 366 367 368 369 |
# File 'lib/NIFTY/Cloud/instances.rb', line 360 def cancel_copy_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) params = { 'Action' => 'CancelCopyInstances', 'InstanceId' => [:instance_id].to_s } return response_generator(params) end |
#configure_health_check(options = {}) ⇒ Object
API「ConfigureHealthCheck」を実行し、指定したロードバランサーのヘルスチェックの設定を変更します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 ヘルスチェックの実行結果は、API「DescribeInstanceHealth」で確認できます。
@option options [String] :load_balancer_name 対象のロードバランサー名(必須)
@option options [Integer] :load_balancer_port 対象の待ち受けポート(必須)
@option options [Integer] :load_balancer_port 対象の宛先ポート(必須)
@option options [String] :target PING プロトコル+":"+宛先ポート(必須)
許可値: TCP:宛先ポート | ICMP
@option options [Integer] :interval ヘルスチェック間隔(必須)
許可値: 10 - 300
@option options [Integer] :unhealthy_threshold ヘルスチェック回数の閾値(必須)
許可値: 1 - 10
@option options [Integer] :healthy_threshold ヘルスチェックの復旧判断
許可値: 1
@return [Hash] レスポンスXML解析結果
@example
configure_health_check(:load_balancer_name => 'bl1', :load_balancer_port => 80, :instance_port => 80, target => 'TCP:80',
:interval => 300, :unhealthy_threshold => 10, :healthy_threshold => 1)
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 35 def configure_health_check( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) raise ArgumentError, "No :target provided." if blank?([:target]) raise ArgumentError, "Invalid :target provided." unless /^(TCP:(\d{1,5})|ICMP)$/ =~ [:target] raise ArgumentError, "Invalid :target provided." unless [:target].to_s == 'ICMP' || valid_port?($2) raise ArgumentError, "No :interval provided." if blank?([:interval]) raise ArgumentError, "Invalid :interval provided." unless ('10'..'300').to_a.include?([:interval].to_s) raise ArgumentError, "No :unhealthy_threshold provided." if blank?([:unhealthy_threshold]) raise ArgumentError, "Invalid :unhealthy_threshold provided." unless ('1'..'10').to_a.include?([:unhealthy_threshold].to_s) raise ArgumentError, "Invalid :healthy_threshold provided." unless blank?([:healthy_threshold]) || '1' == [:healthy_threshold].to_s params = {'Action' => 'ConfigureHealthCheck'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port])) params.merge!(opts_to_prms(, [:target, :interval, :timeout, :unhealthy_threshold, :healthy_threshold], 'HealthCheck')) params.reject! {|k, v| LOAD_BALANCERS_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#copy_instances(options = {}) ⇒ Object
API「CopyInstances」を実行し、指定したサーバーのコピーを作成します。 停止中のサーバーのみ指定ができます。コピー後のサーバー名は、指定したコピー後のサーバー名の後ろに「-連番」が付加され た名称になります。 サーバーを指定するためには、サーバー名が必要です。停止中以外のサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 またファイアウォール機能を提供していない環境でファイアウォールグループを指定して実行した場合は、エラーが返されます。
@option options [String] :instance_id コピー元のサーバー名(必須)
@option options [String] :instance_name コピー後のサーバー名(必須)
@option options [String] :instance_type サーバータイプ
許可値: mini | small | small2 | small4 | medium | medium4 | medium8 | large | large8 | large16
@option options [String] :accounting_type 利用料金タイプ
許可値: 1(月額課金) | 2(従量課金)
@option options [Array<Hash>] :load_balancers ロードバランサー設定
<Hash> options [String] :load_balancer_name - ロードバランサー名
[Integer] :load_balancer_port - 待ち受けポート
[Integer] :instance_port - 宛先ポート
@option options [Array<String>] :security_group ファイアウォールグループ名
@option options [Integer] :copy_count コピー台数
@return [Hash] レスポンスXML解析結果
@example
copy_instances(:instance_id => 'server01', :instance_name => 'copyserver', :instance_type => 'mini', :accounting_type => 2,
:load_balancers => [{:load_balancer_name => 'lb1'}, {:load_balancer_port => 80, :instance_port => 80}],
:security_group => ['gr1', 'gr2'], :copy_count => 1)
309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 |
# File 'lib/NIFTY/Cloud/instances.rb', line 309 def copy_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "No :instance_name provided." if blank?([:instance_name]) raise ArgumentError, "Invalid :instance_type provided." unless blank?([:instance_type]) || INSTANCE_TYPE.include?([:instance_type].to_s) raise ArgumentError, "Invalid :accounting_type provided." unless blank?([:accounting_type]) || ACCOUNTING_TYPE.include?([:accounting_type].to_s) raise ArgumentError, "Invalid :ip_type provided." unless blank?([:ip_type]) || IP_TYPE.include?([:ip_type].to_s) unless blank?([:load_balancers]) [[:load_balancers]].flatten.each do |opt| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless opt.is_a?(Hash) unless blank?(opt[:load_balancer_name]) && blank?(opt[:load_balancer_port]) && blank?(opt[:instance_port]) raise ArgumentError, "No :load_balancer_name provided." if blank?(opt[:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ opt[:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?(opt[:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?(opt[:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?(opt[:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?(opt[:instance_port]) end end end #raise ArgumentError, "No :security_group provided." if blank?(options[:security_group]) raise ArgumentError, "Invalid :security_group provided." unless blank?([:security_group]) || GROUP_NAME =~ [:security_group].to_s raise ArgumentError, "Invalid :copy_count provided." unless blank?([:copy_count]) || [:copy_count].to_s.to_i >= 1 params = { 'Action' => 'CopyInstances', 'CopyInstance.ipType' => [:ip_type].to_s } params.merge!(pathhashlist('CopyInstance.LoadBalancers', [:load_balancers], {:load_balancer_name => 'LoadBalancerName', :load_balancer_port => 'LoadBalancerPort', :instance_port => 'InstancePort'})) unless blank?([:load_balancers]) params.merge!(pathlist('CopyInstance.SecurityGroup', [:security_group])) params.merge!(opts_to_prms(, [:instance_id, :copy_count])) params.merge!(opts_to_prms(, [:instance_name, :instance_type, :accounting_type], 'CopyInstance')) return response_generator(params) end |
#create_image(options = {}) ⇒ Object
API「CreateImage」を実行し、指定したサーバーをイメージ化し、カスタマイズイメージとして保存します。 サーバーをイメージ化するためには、サーバーを停止する必要があります。 カスタマイズイメージの作成には、時間がかかることがあります。このAPI のレスポンス「imageState」を確認し「pending」が返ってきた、 タイムアウトした場合は、API「DescribeImages」のレスポンス「imageState」でカスタマイズイメージのステータスを確認できます。 処理が失敗した場合、カスタマイズイメージは保存されず、エラーが返されます。
@option options [String] :instance_id イメージ化元サーバー(必須)
@option options [String] :name イメージ名(必須)
@option options [Boolean] :left_instance イメージ化元サーバーを残す
許可値: true(サーバーを残す) | false(サーバーを残さない)
@return [Hash] レスポンスXML解析結果
@example
create_image(:instance_id => 'server01', :name => 'image01', :left_instance => true)
59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/NIFTY/Cloud/images.rb', line 59 def create_image( = {} ) raise ArgumentError, "No :instance_id provided" if blank?([:instance_id]) raise ArgumentError, "No :name provided" if blank?([:name]) raise ArgumentError, "Invalid :left_instance provided. only 'true' or 'false' allowed." unless blank?([:left_instance]) || BOOLEAN.include?([:left_instance].to_s) params = { 'Action' => 'CreateImage' } params.merge!(opts_to_prms(, [:instance_id, :name, :description, :no_reboot, :left_instance])) params.reject! {|k, v| IMAGES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#create_key_pair(options = {}) ⇒ Object
API「CreateKeyPair」を実行し、SSH キーを新規作成します。 SSHキーには、SSHキー名およびパスワードを設定します。SSHキー名には、同じユーザーが作るキーのうち、一意となる文字列を 指定します。設定したパスワードが使用可能文字ルールに適合しない場合は、エラーが返されます。
@option options [String] :key_name SSHキー名(必須)
@option options [String] :password パスワード(必須)
使用可能文字 : 半角英数字のみ
@return [Hash] レスポンスXML解析結果
@example
create_keypair(:key_name => 'key', :password => 'pass')
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/NIFTY/Cloud/keypairs.rb', line 18 def create_key_pair( = {} ) = { :key_name => "" }.merge() raise ArgumentError, "No :key_name provided." if blank?([:key_name]) raise ArgumentError, "Invalid :key_name provided." unless ALPHANUMERIC =~ [:key_name].to_s raise ArgumentError, "No :password provided." if blank?([:password]) raise ArgumentError, "Invalid :password provided." unless ALPHANUMERIC =~ [:password].to_s params = {'Action' => 'CreateKeyPair'} params.merge!(opts_to_prms(, [:key_name, :password])) return response_generator(params) end |
#create_load_balancer(options = {}) ⇒ Object
API「CreateLoadBalancer」を実行し、ロードバランサーの定義を作成します。 ロードバランサーの定義を作成します。1 回のリクエストで、1 つのポート定義を作成できます。 すでに存在するロードバランサー名を指定した、存在するポート番号を指定した場合は、エラーが返されます。 ロードバランサーの定義の作成に成功した場合は、以下のAPI を実行する必要があります。
・ API「RegisterInstancesWithLoadBalancer」(サーバー設定)
・ API「ConfigureHealthCheck」(ヘルスチェック設定)
フィルターの設定は、「すべてのアクセスを許可する」になっています。変更を行う場合は以下のAPI を実行する必要があります。
・ API「SetFilterForLoadBalancer」(フィルター設定)
@option options [String] :load_balancer_name ロードバランサー名(必須)
使用可能文字: 半角英数字(15文字まで)
@option options [Array<Hash>] :listeners ロードバランサー設定
<Hash> options [String] :protocol - プロトコル(:load_balancer_portといずれか必須)
許可値: HTTP | HTTPS | FTP
[Integer] :load_balancer_port - 待ち受けポート(:protocolといずれか必須)
[Integer] :instance_port - 宛先ポート
[String] :balancing_type - ロードバランス方式
許可値: 1(Round-Robin) | 2(Least-Connection)
@option options [Integer] :network_volume 最大ネットワーク流量
許可値: 10 | 20 | 30 | 40 | 100 | 200 (単位: Mbps)
@option options [String] :ip_version グローバルIP アドレスのバージョン
許可値: v4
@return [Hash] レスポンスXML解析結果
@example
create_load_balancer(:load_balancer_name => 'lb1', :listeners => {:protocol => 'http'}, :network_volume => 10)
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 88 def create_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :listeners provided." if blank?([:listeners]) [[:listeners]].flatten.each do |member| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless member.is_a?(Hash) raise ArgumentError, ":protocol or :load_balancer_port must be provided." if blank?(member[:protocol])&& blank?(member[:load_balancer_port]) raise ArgumentError, "Invalid :protocol provided." unless blank?(member[:protocol]) || LOAD_BALANCER_PROTOCOL.include?(member[:protocol].to_s.upcase) raise ArgumentError, "Invalid :load_balancer_port provided." unless blank?(member[:load_balancer_port]) || valid_port?(member[:load_balancer_port]) raise ArgumentError, "Invalid :instance_port provided." unless blank?(member[:instance_port]) || valid_port?(member[:instance_port]) raise ArgumentError, "Invalid :balancing_type provided." unless blank?(member[:balancing_type]) || BALANCING_TYPE.include?(member[:balancing_type].to_s) end raise ArgumentError, "Invalid :network_volume provided." unless blank?([:network_volume]) || NETWORK_VOLUMES.include?([:network_volume].to_s) raise ArgumentError, "Invalid :ip_version provided." unless blank?([:ip_version]) || IP_VERSION.include?([:ip_version].to_s) params = {'Action' => 'CreateLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :network_volume, :ip_version])) params.merge!(pathhashlist('Listeners.member', [:listeners], {:protocol => 'Protocol', :load_balancer_port => 'LoadBalancerPort', :instance_port => 'InstancePort', :balancing_type => 'BalancingType'})) params.merge!(pathlist('AvailabilityZones.member', [:availability_zones])) params.reject! {|k, v| LOAD_BALANCERS_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#create_security_group(options = {}) ⇒ Object
API「CreateSecurityGroup」を実行し、ファイアウォールグループを新規作成します。 ファイアウォールの有償版に申し込んでいない場合は、エラーが返されます。 すでに存在するファイアウォールグループ名を指定した、作成可能なファイアウォールグループの上限数を超える場合は、エラーが返されます。 ファイアウォールの有償版を申し込むには、コントロールパネルで設定する必要があります。
@option options [String] :group_name ファイアウォールグループ名(必須)
使用可能文字: 半角英数字
@option options [String] :group_description ファイアウォールグループのメモ
@return [Hash] レスポンスXML解析結果
@example
create_security_group(:group_name => 'group01', :group_description => 'Security Group memo.')
93 94 95 96 97 98 99 100 101 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 93 def create_security_group( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless ALPHANUMERIC =~ [:group_name].to_s params = {'Action' => 'CreateSecurityGroup'} params.merge!(opts_to_prms(, [:group_name, :group_description])) return response_generator(params) end |
#create_ssl_certificate(options = {}) ⇒ Object
API「CreateSslCertificate」を実行し、SSL 証明書の新規作成または更新を行います。 申請法人情報が未登録の場合は、エラーが返されます。 パラメーター「fqdnId」を指定した場合、指定したSSL 証明書を更新します。指定したSSL 証明書の有効期間が更新可能ではない、 アップロードした証明書を指定した、存在しないSSL 証明書を指定した場合など、無効なSSL 証明書を指定した場合は、エラーが返されます。 パラメーター「fqdnId」を指定しない場合、SSL 証明書を新規作成します。作成可能なSSL 証明書の上限数を超える場合は、エラーが返されます。 また申請法人情報を登録するには、API「RegisterCorporateInfoForCertificate」を実行します。
@option options [String] :fqdn_id SSL証明書の識別子(必須)
@option options [String] :fqdn FQDN(必須)
@option options [Integer] :count SSL証明書の数量(必須)
許可値: 1 - 30
@option options [Integer] :validity_term SSL証明書の有効月数(必須)
許可値: 6 (半年) | 12 (1年) | 24 (2年)
@option options [Integer] :key_length SSL証明書の鍵長(必須)
許可値: 1024 (1024bit) | 2048 (2048bit)
@option options [String] :organization_name 申請組織名(必須)
@option options [String] :organization_unit_name 申請部署名(必須)
@option options [String] :state_name 事業所住所の都道府県名(必須)
@option options [String] :location_name 事業所住所の市区町村名(必須)
@return [Hash] レスポンスXML解析結果
@example
create_ssl_certificate(:fqdn => 'aaa.aaa.aaa', :count => 2, :validity_term => 24, :key_length => 1024, :organization_name => 'NIFTY',
:organization_unit_name => 'Center Department', :state_name => 'Tokyo', :location_name => 'Shinagawa-ku')
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 34 def create_ssl_certificate( ={} ) raise ArgumentError, ":fqdn_id or :fqdn must be provided." if blank?([:fqdn_id]) && blank?([:fqdn]) unless blank?([:fqdn]) raise ArgumentError, "No :count provided." if blank?([:count]) raise ArgumentError, "No :validity_term provided." if blank?([:validity_term]) raise ArgumentError, "No :key_length provided." if blank?([:key_length]) raise ArgumentError, "No :organization_name provided." if blank?([:organization_name]) raise ArgumentError, "No :organization_unit_name provided." if blank?([:organization_unit_name]) raise ArgumentError, "No :state_name provided." if blank?([:state_name]) raise ArgumentError, "No :location_name provided." if blank?([:location_name]) end raise ArgumentError, "Invalid :count provided." unless blank?([:count]) || ('1'..'30').to_a.include?([:count].to_s) raise ArgumentError, "Invalid :validity_term provided." unless blank?([:validity_term]) || VALIDITY_TERM.include?([:validity_term].to_s) raise ArgumentError, "Invalid :key_length provided." unless blank?([:key_length]) || KEY_LENGTH.include?([:key_length].to_s) params = {'Action' => 'CreateSslCertificate'} params.merge!(opts_to_prms(, [:fqdn_id, :fqdn, :count, :validity_term, :key_length])) params.merge!(opts_to_prms(, [:organization_name, :organization_unit_name, :country_name, :state_name, :location_name, :email_address], 'CertInfo')) return response_generator(params) end |
#create_volume(options = {}) ⇒ Object
API「CreateVolume」を実行し、ディスクを新規作成します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定した、停止済み 以外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。同様に、ディスクサイズおよびディスク タイプに規定外の値を指定した、すでに存在するディスク名を指定したなどの場合は、エラーが返されます。
@option options [String] :size ディスクサイズ(必須)
許可値: (低速) 1(100) | 2(200) | 3(300) | 4(400) | 5(500) | 10(1000) | 15(1500) | 20(2000)
(高速) 1(100) | 2(200) | 3(300) | 4(400) | 5(500) | 6(600) | 7(700) | 8(800) | 9(900) | 10(1000) (単位: GB)
@option options [String] :volume_id ディスク名
@option options [String] :disk_type ディスクタイプ
許可値: 1(disk100) | 2(disk40) | 3(disk100A) | 4(disk100B) | 5(disk40A) | 6(disk40B)
@option options [String] :instance_id サーバー名(必須)
@return [Hash] レスポンスXML解析結果
@example
create_volume(:size => 1, :volume_id => 'vol1', :disk_type => 1, :instance_id => 'server01')
54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/NIFTY/Cloud/volumes.rb', line 54 def create_volume( = {} ) raise ArgumentError, "No :size provided." if blank?([:size]) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "Invalid :size provided." unless blank?([:size]) || VOLUMES_CREATE_SIZE.include?([:size].to_s) raise ArgumentError, "Invalid :disk_type provided." unless blank?([:disk_type]) || VOLUMES_CREATE_DISK_TYPE.include?([:disk_type].to_s) params = {'Action' => 'CreateVolume'} params.merge!(opts_to_prms(, [:size, :snapshot_id, :availability_zone, :volume_id, :disk_type, :instance_id])) params.reject! {|k, v| VOLUMES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#delete_image(options = {}) ⇒ Object
API「DeleteImage」を実行し、指定したカスタマイズイメージを削除します。 削除中のカスタマイズイメージを指定してサーバー作成を行った場合は、サーバー作成からエラーが返されます。 カスタマイズイメージを選択して作成されたサーバーのOSイメージ名は、カスタマイズイメージの削除が完了すると、イメージ化した サーバーのOS 名が返されます。
@option options [String] :image_id 削除対象のイメージID(必須)
許可値: 10000以降の数値
@return [Hash] レスポンスXML解析結果
@example
delete_image(:image_id => 10430)
86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/NIFTY/Cloud/images.rb', line 86 def delete_image( ={} ) raise ArgumentError, "No :image_id provided." if blank?([:image_id]) raise ArgumentError, "Invalid :image_id provided." unless [:image_id].to_s.to_i >= 10000 params = { 'Action' => 'DeleteImage', 'ImageId' => [:image_id].to_s } return response_generator(params) end |
#delete_key_pair(options = {}) ⇒ Object
API「DeleteKeyPair」を実行し、SSH キーの情報を削除します。 SSHキーを指定するためには、SSHキー名が必要です。削除済みのSSHキーを指定した、管理外のSSHキーを指定したなど、 無効なSSH キーを指定した場合は、エラーが返されます。
@option options [String] :key_name 削除対象のSSHキー名(必須)
@return [Hash] レスポンスXML解析結果
@example
delete_keypair(:key_name => 'key')
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/NIFTY/Cloud/keypairs.rb', line 41 def delete_key_pair( = {} ) = { :key_name => "" }.merge() raise ArgumentError, "No :key_name provided." if blank?([:key_name]) raise ArgumentError, "Invalid :key_name provided." unless ALPHANUMERIC =~ [:key_name].to_s params = { 'Action' => 'DeleteKeyPair', 'KeyName' => [:key_name].to_s } return response_generator(params) end |
#delete_load_balancer(options = {}) ⇒ Object
API「DeleteLoadBalancer」を実行し、指定したロードバランサーのポート定義を削除します。 関連するフィルター設定・サーバー設定・ヘルスチェック設定もあわせて削除します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。
@option options [String] :load_balancer_name 削除対象のロードバランサー名(必須)
@option options [Integer] :load_balancer_port 削除対象の待ち受けポート(必須)
@option options [Integer] :instance_port 削除対象の宛先ポート(必須)
@return [Hash] レスポンスXML解析結果
@example
delete_load_balancer(:load_balancer_name => 'lb1', :load_balancer_port => 80, instance_port => 80)
130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 130 def delete_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) params = {'Action' => 'DeleteLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port])) return response_generator(params) end |
#delete_security_group(options = {}) ⇒ Object
API「DeleteSecurityGroup」を実行し、指定したファイアウォールグループを削除します。 指定したファイアウォールグループを適用しているサーバーが存在する場合、エラーが返されます。同様に、適用しているオートスケール設定が存在する場合、 エラーが返されます。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。 削除済みのファイアウォールグループを指定した、管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、 エラーが返されます。
@option options [String] :group_name 対象のファイアウォールグループ名(必須)
@return [Hash] レスポンスXML解析結果
@example
delete_security_group(:group_name => 'group01')
117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 117 def delete_security_group( ={} ) raise ArgumentError, "No :group_name provided" if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless ALPHANUMERIC =~ [:group_name].to_s params = { 'Action' => 'DeleteSecurityGroup', 'GroupName' => [:group_name].to_s } return response_generator(params) end |
#delete_ssl_certificate(options = {}) ⇒ Object
API「DeleteSslCertificate」を実行し、指定したSSL 証明書を削除します。 指定したSSL 証明書のステータスが「期限切れ」「失効」「発行エラー」以外の場合は、エラーが返されます。 またアップロードしたSSL証明書は、ステータスに関わらず削除できます。 SSL 証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL 証明書を指定した、 管理外のSSL 証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。
@option options [String] :fqdn_id SSL証明書の識別子(必須)
@return [Hash] レスポンスXML解析結果
@example
delete_ssl_certificate(:fqdn_id => 111)
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 71 def delete_ssl_certificate( ={} ) raise ArgumentError, "No :fqdn_id provided." if blank?([:fqdn_id]) params = { 'Action' => 'DeleteSslCertificate', 'FqdnId' => [:fqdn_id].to_s } return response_generator(params) end |
#delete_volume(options = {}) ⇒ Object
API「DeleteVolume」を実行し、指定したディスクを削除します。 ディスクを指定するためには、ディスク名が必要です。接続済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 削除には、時間がかかることがあります。 なお、サーバーに接続しているディスクを指定した場合には、エラーが返されます。ディスクの接続ステータスは、API 「DescribeVolumes」のレスポンス「attachmentSet.status」で確認できます。
@option options [String] :volume_id 削除対象のディスク名(必須)
@return [Hash] レスポンスXML解析結果
@example
delete_volume(:volume_id => 'vol1')
82 83 84 85 86 87 88 89 90 91 |
# File 'lib/NIFTY/Cloud/volumes.rb', line 82 def delete_volume( = {} ) raise ArgumentError, "No :volume_id provided." if blank?([:volume_id]) params = { 'Action' => 'DeleteVolume', 'VolumeId' => [:volume_id].to_s } return response_generator(params) end |
#deregister_instances_from_load_balancer(options = {}) ⇒ Object
API「DeregisterInstancesFromLoadBalancer」を実行し、指定したロードバランサーから、指定したサーバーを解除します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。該当するロードバランサーに設定されていないサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。
@option options [String] :load_balancer_name 対象のロードバランサー名(必須)
@option options [Integer] :load_balancer_port 対象の待ち受けポート(必須)
@option options [Integer] :instance_port 対象の宛先ポート(必須)
@option options [Array<String>] :instances サーバー名(必須)
@return [Hash] レスポンスXML解析結果
@example
deregister_instances_from_load_balancer(:load_balancer_name => 'lb1', :load_balancer_port => 80, instance_port => 80, :instances => ['server01'])
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 160 def deregister_instances_from_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided" if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) raise ArgumentError, "No :instances provided." if blank?([:instances]) params = {'Action' => 'DeregisterInstancesFromLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port])) params.merge!(pathhashlist('Instances.member', [[:instances]].flatten.collect{|e| {:instances => e}}, {:instances => 'InstanceId'})) return response_generator(params) end |
#deregister_instances_from_security_group(options = {}) ⇒ Object
API「DeregisterInstancesFromSecurityGroup」を実行し、指定したファイアウォールグループから、指定したサーバーをはずします。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。指定したファイアウォールグループに適用されていないサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。
@option options [String] :group_name ファイアウォールグループ名(必須)
@option options [Array<String>] :instance_id サーバー名(必須)
@return [Hash] レスポンスXML解析結果
@example
deregister_instances_from_security_group(:group_name => 'group01', :instance_id => ['server01', 'server02'])
143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 143 def deregister_instances_from_security_group( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) params = { 'Action' => 'DeregisterInstancesFromSecurityGroup', 'GroupName' => [:group_name].to_s } params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#describe_availability_zones(options = {}) ⇒ Object
API「DescribeAvailabilityZones」を実行し、利用可能なゾーンの情報を取得します。常に、ゾーン「ap-japan-1a」の情報が返されます。
@return [Hash] レスポンスXML解析結果
@example
describe_availability_zones(:zone_name => 'ap-japan-1a')
13 14 15 16 17 18 19 20 |
# File 'lib/NIFTY/Cloud/availability_zones.rb', line 13 def describe_availability_zones( ={} ) params = {'Action' => 'DescribeAvailabilityZones'} params.merge!(pathlist('ZoneName', [:zone_name])) params.reject! {|k, v| ZONES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#describe_images(options = {}) ⇒ Object
API「DescribeImages」を実行し、OS イメージの情報を取得します。 特定のOS イメージを指定するためには、OS イメージID またはOS イメージ名が必要です。OS イメージを指定しない場合は、 取得可能なすべてのOS イメージ情報を取得します。無効なOS イメージを指定した場合は、エラーが返されます。
@option options [Array<String>] :image_id OSイメージID
@option options [Array<String>] :image_name OSイメージ名
@option options [Array<String>] :owner OSイメージの種別
許可値: niftycloud | self
@return [Hash] レスポンスXML解析結果
@example
describe_images(:image_id => [12000, 11001], :image_name => ['image01', 'image02'], :owner => ['niftycloud', 'self'])
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/NIFTY/Cloud/images.rb', line 28 def describe_images( = {} ) [[:owner]].flatten.each{|o| raise ArgumentError, "Invalid :owner provided." unless IMAGES_DESCRIBE_OWNER.include?(o) } unless blank?([:owner]) raise ArgumentError, "Invalid :image_id provided." unless blank?([:image_id]) || [:image_id].to_s.to_i > 0 params = {'Action' => 'DescribeImages'} params.merge!(pathlist("ExecutableBy", [:executable_by])) params.merge!(pathlist("ImageId", [:image_id])) params.merge!(pathlist("ImageName", [:image_name])) params.merge!(pathlist("Owner", [:owner])) params.reject! {|k, v| IMAGES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#describe_instance_attribute(options = {}) ⇒ Object
API「DescribeInstanceAttribute」を実行し、指定したサーバーの詳細情報を取得します。1回のリクエストで、指定したサーバーのどれか1つの詳細情報を取得できます。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。
@option options [String] :instance_id サーバー名(必須)
@option options [String] :attribute 取得対象の項目名
許可値: instanceType | disableApiTermination | blockDeviceMapping | accountingType | loadbalancing | copyInfo | autoscaling | ipType | groupId | description
@return [Hash] レスポンスXML解析結果
@example
describe_instance_attribute(:instance_id => 'server01', :attribute => 'instanceType')
37 38 39 40 41 42 43 44 45 |
# File 'lib/NIFTY/Cloud/instances.rb', line 37 def describe_instance_attribute( = {} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "Invalid :attribute provided." unless blank?([:attribute]) || INSTANCES_DESCRIBE_ATTRIBUTE.include?([:attribute].to_s) params = {'Action' => 'DescribeInstanceAttribute'} params.merge!(opts_to_prms(, [:instance_id, :attribute])) return response_generator(params) end |
#describe_instance_health(options = {}) ⇒ Object
API「DescribeInstanceHealth」を実行し、指定したロードバランサーに設定されている、サーバーのヘルスチェック結果を取得します。ヘルスチェックは、API 「ConfigureHealthCheck」で設定します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、管理外のロードバランサーを指定したなど、 無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。サーバーを指定しない場合は、指定したロードバランサーに設定されているすべてのサーバーを対象として、 ヘルスチェック結果を取得します。 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。
@option options [String] :load_balancer_name 対象のロードバランサー名(必須)
@option options [Integer] :load_balancer_port 対象の待ち受けポート(必須)
@option options [Integer] :instance_port 対象の宛先ポート(必須)
@option options [Array<String>] :instances サーバー名
@return [Hash] レスポンスXML解析結果
@example
describe_instance_health(:load_balancer_name => 'bl1', :load_balancer_port => 80, :instance_port => 80, :instances => ['server01'])
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 194 def describe_instance_health( ={} ) raise ArgumentError, "No :load_balancer_name provided" if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) params = {'Action' => 'DescribeInstanceHealth'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port])) params.merge!(pathhashlist('Instances.member', [[:instances]].flatten.collect{|e| {:instances => e}}, {:instances => 'InstanceId'})) if .has_key?(:instances) return response_generator(params) end |
#describe_instances(options = {}) ⇒ Object
API「DescribeInstances」を実行し、指定したサーバーの情報を取得します。1 回のリクエストで、複数のサーバー情報を取得できます。 サーバーを指定するためには、サーバー名が必要です。サーバーを指定しない場合は、取得可能なすべてのサーバー情報を取 得します。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なID を指定した場合は、エラーが返されます。
@option options [Array<String>] :instance_id サーバー名
@return [Hash] レスポンスXML解析結果
@example
describe_instances(:instance_id => 'server01')
58 59 60 61 62 63 |
# File 'lib/NIFTY/Cloud/instances.rb', line 58 def describe_instances( = {} ) params = {'Action' => 'DescribeInstances'} params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#describe_key_pairs(options = {}) ⇒ Object
API「DescribeKeyPairs」を実行し、指定したSSH キーの情報を取得します。 SSHキーを指定するためには、SSHキー名が必要です。SSHキーを指定しない場合は、取得できるすべてのSSHキー情報を取得します。 削除済みのSSH キーを指定した、管理外のSSH キーを指定したなど、無効なSSH キーを指定した場合は、エラーが返されます。
@option options [Array<String>] :key_name SSHキー名
@return [Hash] レスポンスXML解析結果
@example
describe_keypairs(:key_name => ['key1', 'key2'])
65 66 67 68 69 70 71 72 |
# File 'lib/NIFTY/Cloud/keypairs.rb', line 65 def describe_key_pairs( = {} ) raise ArgumentError, "Invalid :key_name provided." unless blank?([:key_name]) || ALPHANUMERIC =~ [:key_name].to_s params = {'Action' => 'DescribeKeyPairs'} params.merge!(pathlist('KeyName', [:key_name])) return response_generator(params) end |
#describe_load_balancers(options = {}) ⇒ Object
API「DescribeLoadBalancers」を実行し、指定したロードバランサーの情報を取得します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。ロードバランサーを指定しない場合は、取得可能なすべての ロードバランサー情報を取得します。 削除済みのロードバランサーを指定した、管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。
@option options [Array<String>] :load_balancer_name ロードバランサー名
@option options [Array<Integer>] :load_balancer_port 待ち受けポート
@option options [Array<Integer>] :instance_port 宛先ポート
@return [Hash] レスポンスXML解析結果
@example
describe_load_balancers(:load_balancer_name => ['lb1'], :load_balancer_port => [80], :instance_port => [80])
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 224 def describe_load_balancers( ={} ) [[:load_balancer_name]].flatten.each do |o| raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ o.to_s end unless blank?([:load_balancer_name]) [[:load_balancer_port]].flatten.each do |o| raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?(o) end unless blank?([:load_balancer_port]) [[:instance_port]].flatten.each do |o| raise ArgumentError, "Invalid :instance_port provided." unless valid_port?(o) end unless blank?([:instance_port]) params = {'Action' => 'DescribeLoadBalancers'} params.merge!(pathlist('LoadBalancerNames.member', [:load_balancer_name])) params.merge!(pathlist('LoadBalancerNames.LoadBalancerPort', [:load_balancer_port])) params.merge!(pathlist('LoadBalancerNames.InstancePort', [:instance_port])) return response_generator(params) end |
#describe_security_activities(options = {}) ⇒ Object
API「DescribeSecurityActivities」を実行し、指定したファイアウォールグループのログ情報を取得します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。
@option options [String] :group_name ファイアウォールグループ名(必須)
@option options [String] :activity_date 取得するログの絞り込み条件(日)
形式: yyyymmdd | yyyy-mm-dd | yyyy/mm/dd
@option options [Boolean] :range_all 指定日内のログを全件取得
許可値: true(全件取得) | false(件数指())
@option options [Integer] :range_start_number 取得開始件数
許可値: 1 - 取得可能な最大件数
@option options [Integer] :range_end_number 取得終了件数
許可値: 1 - 取得可能な最大件数
@return [Hash] レスポンスXML解析結果
@example
describe_security_activities(:group_name => 'group01', :activity_date => '2011-06-08', :range_all => false,
:range_start_number => 1, :range_end_number => 10)
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 177 def describe_security_activities( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "Invalid :activity_date provided." unless blank?([:activity_date]) || DATE_FORMAT =~ [:activity_date].to_s raise ArgumentError, "Invalid :range_all provided." unless blank?([:range_all]) || BOOLEAN.include?([:range_all].to_s) raise ArgumentError, "Invalid :range_start_number provided." unless blank?([:range_start_number]) || [:range_start_number].to_s.to_i >= 1 raise ArgumentError, "Invalid :range_end_number provided." unless blank?([:range_end_number]) || ([:range_end_number]).to_s.to_i >= 1 raise ArgumentError, "Invalid :range_end_number provided." unless blank?([:range_start_number]) || blank?([:range_end_number]) || [:range_start_number] <= [:range_end_number] params = { 'Action' => 'DescribeSecurityActivities', 'GroupName' => [:group_name].to_s, 'ActivityDate' => [:activity_date].to_s, 'Range.All' => [:range_all].to_s, 'Range.StartNumber' => [:range_start_number].to_s, 'Range.EndNumber' => [:range_end_number].to_s } return response_generator(params) end |
#describe_security_groups(options = {}) ⇒ Object
API「DescribeSecurityGroups」を実行し、指定したファイアウォールグループの設定情報を取得します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。指定しない場合は、取得可能なすべての ファイアウォールグループの設定情報を取得します。
@option options [String] :group_name ファイアウォールグループ名
@option options [Array<Hash>] :filter フィルター設定
<Hash> options [String] 絞り込み条件の項目名
許可値: description | group-name
[String] 絞り込み条件の値 (前方一致)
@return [Hash] レスポンスXML解析結果
@example
describe_security_groups(:group_name => 'group01', :filter => [ {'description' => 'filter1'}, {'group-name' => ['filter1', 'filter2']} ])
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 214 def describe_security_groups( ={} ) [[:group_name]].flatten.each do |e| raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s end unless blank?([:group_name]) params = {'Action' => 'DescribeSecurityGroups'} params.merge!(pathlist("GroupName", [:group_name])) unless blank?([:filter]) [[:filter]].flatten.each do |opt| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless opt.is_a?(Hash) raise ArgumentError, "Invalid :name provided." unless blank?(opt[:name]) || FILTER_NAME.include?(opt[:name].to_s) opt[:value] = [opt[:value]].flatten unless blank?(opt[:value]) end params.merge!(pathhashlist('Filter', [:filter], {:name => 'Name', :value => 'Value'})) end return response_generator(params) end |
#describe_ssl_certificate_attribute(options = {}) ⇒ Object
API「DescribeSslCertificateAttribute」を実行し、指定したSSL証明書の詳細情報を取得します。 1回のリクエストで、指定したSSL証明書のどれか1つの詳細情報を取得できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、 管理外のSSL証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。
@option options [String] :fqdn_id SSL証明書の識別子(必須)
@option options [String] :attribute 取得する情報の項目名
許可値: count(SSL証明書の数量を取得) | certState(SSL証明書の発行ステータスを取得) | period(SSL証明書の有効期間を取得) |
keyLength(SSL証明書の鍵長を取得) | uploadState(SSL証明書の種別を取得) | description(SSL証明書のメモ情報を取得) |
certInfo(SSL証明書の発行申請情報を取得)
@return [Hash] レスポンスXML解析結果
@example
describe_ssl_certificate_attribute(:fqdn_id => 111, :attribute => 'certInfo')
119 120 121 122 123 124 125 126 127 128 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 119 def describe_ssl_certificate_attribute( ={} ) raise ArgumentError, "No :fqdn_id provided." if blank?([:fqdn_id]) raise ArgumentError, "Invalid :attribute provided." unless blank?([:attribute]) || CERTIFICATE_DESCRIBE_ATTRIBUTE.include?([:attribute].to_s) params = {'Action' => 'DescribeSslCertificateAttribute'} params.merge!(opts_to_prms(, [:fqdn_id, :attribute])) return response_generator(params) end |
#describe_ssl_certificates(options = {}) ⇒ Object
API「DescribeSslCertificates」を実行し、指定したSSL 証明書の情報を取得します。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)またはFQDN が必要です。 指定しない場合は、取得可能なすべてのSSL証明書の情報を取得します。
@option options [Array<String>] :fqdn_id SSL証明書の識別子
@option options [Array<String>] :fqdn FQDN
@return [Hash] レスポンスXML解析結果
@example
describe_ssl_certificates(:fqdn_id => 111, :fqdn => 'aaa.aaa.aaa.')
94 95 96 97 98 99 100 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 94 def describe_ssl_certificates( ={} ) params = {'Action' => 'DescribeSslCertificates'} params.merge!(pathlist('Fqdn', [:fqdn])) params.merge!(pathlist('FqdnId', [:fqdn_id])) return response_generator(params) end |
#describe_volumes(options = {}) ⇒ Object
API「DescribeVolumes」を実行し、指定したディスクの情報を取得します。 ディスクを指定するためには、ディスク名が必要です。削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 ディスクを指定しない場合、取得できるすべてのディスク情報を取得します。
@option options [Array<String>] :volume_id ディスク名
@return [Hash] レスポンスXML解析結果
@example
describe_volumes(:volume_id => ['vol1', 'vol2'])
105 106 107 108 109 110 |
# File 'lib/NIFTY/Cloud/volumes.rb', line 105 def describe_volumes( = {} ) params = {'Action' => 'DescribeVolumes'} params.merge!(pathlist("VolumeId", [:volume_id])) return response_generator(params) end |
#detach_volume(options = {}) ⇒ Object
API「DetachVolume」を実行し、指定したディスクとサーバーの接続を解除します。 ディスクを指定するためには、ディスク名が必要です。解除済み・削除済みのディスクを指定した、管理外のディスクを指定したなど、 無効なディスクを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。解除済み・削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。サーバー名を指定せずに解除すると、指定したディスクのすべての接続情報を解除します。
@option options [String] :volume_id 接続解除対象のディスク名(必須)
@option options [String] :instance_id 接続解除されるサーバー名
@return [Hash] レスポンスXML解析結果
@example
detach_volume(:volume_id => 'vol1', :instance_id => 'server01')
126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/NIFTY/Cloud/volumes.rb', line 126 def detach_volume( = {} ) raise ArgumentError, "No :volume_id provided." if blank?([:volume_id]) raise ArgumentError, "Invalid :force provided." unless blank?([:force]) || BOOLEAN.include?([:force].to_s) params = { 'Action' => 'DetachVolume' } params.merge!(opts_to_prms(,[:volume_id, :instance_id, :device, :force])) params.reject! {|k, v| VOLUMES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#download_ssl_certificate(options = {}) ⇒ Object
API「DownloadSslCertificate」を実行し、指定したSSL証明書をダウンロードします。 1回のリクエストで、SSL証明書のキー・CA・証明書のいずれかを取得できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、 管理外のSSL証明書を指定したなど、無効なSSL証明書を指定した場合は、エラーが返されます。 またSSL証明書の発行状況により、指定したファイルがダウンロードできない場合があります。
@option options [String] :fqdn_id SSL証明書の識別子(必須)
@option options [String] :file_type ダウンロードするファイル種別(必須)
許可値: 1 (キー) | 2 (CA) | 3 (証明書)
@return [Hash] レスポンスXML解析結果
@example
download_ssl_certificate(:fqdn_id => 111, :file_type => 1)
145 146 147 148 149 150 151 152 153 154 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 145 def download_ssl_certificate( ={} ) raise ArgumentError, "No :fqdn_id provided." if blank?([:fqdn_id]) raise ArgumentError, "No :file_type provided." if blank?([:file_type]) raise ArgumentError, "Invalid :file_type provided." unless FILE_TYPE.include?([:file_type].to_s) params = {'Action' => 'DownloadSslCertificate'} params.merge!(opts_to_prms(, [:fqdn_id, :file_type])) return response_generator(params) end |
#modify_image_attribute(options = {}) ⇒ Object
API「ModifyImageAttribute」を実行し、指定したカスタマイズイメージの詳細情報を更新します。1 回のリクエストで、1 つのカスタマイズイメージの情報を更新できます。 カスタマイズイメージを指定するためには、イメージID が必要です。削除済みのイメージID を指定した、管理外のイメージID を指定したなど、 無効なイメージID を指定した場合は、エラーが返されます。
@option options [String] :image_id 更新対象のイメージID(必須)
許可値: 10000以降の数値
@option options [String] :attribute 更新対象の項目名(必須)
許可値: description | imageName
@option options [String] :attribute 更新値
@return [Hash] レスポンスXML解析結果
@example
modify_image_attribute(:image_id => 10000, :attribute => 'description', :value => 'メモ')
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/NIFTY/Cloud/images.rb', line 113 def modify_image_attribute( ={} ) raise ArgumentError, "No :image_id provided." if blank?([:image_id]) raise ArgumentError, "Invalid :image_id provided." unless [:image_id].to_s.to_i >= 10000 raise ArgumentError, "No :attribute provided." if blank?([:attribute]) raise ArgumentError, "Invalid :attribute provided." unless blank?([:attribute]) || IMAGES_MODIFY_ATTRIBUTE.include?([:attribute]) params = {'Action' => 'ModifyImageAttribute'} params.merge!(opts_to_prms(, [:image_id, :attribute, :value])) params.merge!(pathhashlist('LaunchPermission.Add', [:launch_permission_add], {:user_id => 'UserId', :group => 'Group'})) unless blank?([:launch_permission_add]) params.merge!(pathhashlist('LaunchPermission.Remove', [:launch_permission_remove], {:user_id => 'UserId', :group => 'Group'})) unless blank?([:launch_permission_remove]) params.merge!(pathlist('ProductCode', [:product_code])) params.reject! {|k, v| IMAGES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#modify_instance_attribute(options = {}) ⇒ Object
API「ModifyInstanceAttribute」を実行し、指定したサーバーの詳細情報を更新します。1 回のリクエストで、1 つのサーバーの情報を更新できます。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 なお、起動済みのサーバーを指定した場合は、エラーが返されます。サーバーのステータスは、API「DescribeInstances」のレスポン ス値「instanceState」で確認できます。
@option options [String] :instance_id サーバー名(必須)
@option options [String] :attribute 更新対象の項目名(必須)
許可値: instanceType(サーバータイプを更新) | disableApiTermination(API からのサーバー削除可否を更新) | instanceName(サーバー名を更新) |
description(メモ情報を更新) | ipType(IP アドレスの固定化タイプを更新) | groupId(ファイアウォールグループを更新)
@option options [String] :value 更新値(必須)
許可値: (:attribute= instanceType) mini | small | small2 | small4 | medium | medium4 | medium8 | large | large8 | large16
(:attribute= disableApiTermination) true | false
(:attribute= ipType) static | dynamic
@return [Hash] レスポンスXML解析結果
@example
modify_instance_attribute(:instance_id => 'server01', :attribute => 'instanceType', :value => 'mini')
86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/NIFTY/Cloud/instances.rb', line 86 def modify_instance_attribute( = {} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "No :attribute provided." if blank?([:attribute]) raise ArgumentError, "Invalid :attribute provided." unless INSTANCES_MODIFY_ATTRIBUTE.include?([:attribute].to_s) raise ArgumentError, "No :value provided." if blank?([:value]) raise ArgumentError, "Invalid :value provided." if [:attribute] == 'instanceType' && !INSTANCE_TYPE.include?([:value].to_s) raise ArgumentError, "Invalid :value provided." if [:attribute] == 'disableApiTermination' && !BOOLEAN.include?([:value].to_s) raise ArgumentError, "Invalid :value provided." if [:attribute] == 'ipType' && !IP_TYPE.include?([:value].to_s) params = {'Action' => 'ModifyInstanceAttribute'} params.merge!(opts_to_prms(, [:instance_id, :attribute, :value])) return response_generator(params) end |
#modify_ssl_certificate_attribute(options = {}) ⇒ Object
API「ModifySslCertificateAttribute」を実行し、指定したSSL 証明書の詳細情報を更新します。1 回のリクエストで、1 つのSSL 証明書の1 つの詳細情報を更新できます。 SSL証明書を指定するためには、SSL 証明書の発行識別子(fqdnId)が必要です。削除済みのSSL証明書を指定した、管理外のSSL 証明書を指定したなど、無効なSSL 証明書を指定した場合は、エラーが返されます。
@option options [String] :fqdn_id SSL証明書の識別子(必須)
@option options [String] :description SSL 証明書のメモ情報の更新値
@return [Hash] レスポンスXML解析結果
@example
modify_ssl_certificate_attribute(:fqdn_id => 111, :description => 'For service A')
168 169 170 171 172 173 174 175 176 177 178 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 168 def modify_ssl_certificate_attribute( ={} ) raise ArgumentError, "No :fqdn_id provided." if blank?([:fqdn_id]) params = { 'Action' => 'ModifySslCertificateAttribute', 'FqdnId' => [:fqdn_id].to_s, 'Description.Value' => [:description].to_s } return response_generator(params) end |
#reboot_instances(options = {}) ⇒ Object
API「RebootInstances」を実行し、指定したサーバーを再起動します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの再起動には、時間がかかることがあります。サーバーのステータスは、API「DescribeInstances」のレスポンス値 「instanceState」で確認できます。
@option options [Array<String>] :instance_id サーバー名(必須)
@option options [Boolean] :force 強制オプション
許可値: true(強制実行) | false(強制実行しない)
@return [Hash] レスポンスXML解析結果
@example
reboot_instances(:instance_id => ['server01', 'server02'], :force => false)
116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/NIFTY/Cloud/instances.rb', line 116 def reboot_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "Invalid :force provided." unless blank?([:force]) || BOOLEAN.include?([:force].to_s) params = { 'Action' => 'RebootInstances', 'Force' => [:force].to_s } params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#register_corporate_info_for_certificate(options = {}) ⇒ Object
API「RegisterCorporateInfoForCertificate」を実行し、SSL証明書を管理する申請法人情報を登録または更新します。 利用規約(cp.cloud.nifty.com/ssl/trust.txt)をご確認の上、パラメーター「agreement」を指定します。
@option options [Boolean] :agreement 利用規約に同意(必須)
許可値: true (同意する) | false (同意しない)
@option options [String] :tdb_code 帝国データバンクコード
@option options [String] :corp_name 法人名(必須)
使用可能文字: 全角
@option options [String] :corp_grade 法人格(必須)
使用可能文字: 全角
許可値: 株式会社 | 有限会社 | 社団法人 | 財団法人 | 学校法人 | 医療法人 | 医療法人社団 | 特定非営利活動法人 |
有限責任中間法人 | 中央省庁 | 地方公共団体 | 国立大学法人 | 独立行政法人 | 国家資格取得 | 協同組合 | 協同組合連合会 |
商工連合会 | 協議会 | 公団 | 公共団体 | その他法人 | その他組合 | その他団体 | その他公共機関
@option options [String] :president_name1 代表者氏名(姓)(必須)
使用可能文字: 全角
@option options [String] :president_name2 代表者氏名(名)(必須)
使用可能文字: 全角
@option options [String] :zip1 郵便番号(上3桁)(必須)
使用可能文字: 半角
@option options [String] :zip2 郵便番号(下4桁)(必須)
使用可能文字: 半角
@option options [String] :pref 都道府県名(必須)
使用可能文字: 全角
許可値: 北海道 | 青森県 | 岩手県 | 宮城県 | 秋田県 | 山形県 | 福島県 | 茨城県 | 栃木県 | 群馬県 | 埼玉県 | 千葉県 |
東京都 | 神奈川県 | 新潟県 | 富山県 | 石川県 | 福井県 | 山梨県 | 長野県 | 岐阜県 | 静岡県 | 愛知県 | 三重県 |
滋賀県 | 京都府 | 大阪府| 兵庫県 | 奈良県 | 和歌山県 | 鳥取県 | 島根県 |岡山県 | 広島県 | 山口県 | 徳島県 |
香川県 | 愛媛県 | 高知県 | 福岡県 | 佐賀県 | 長崎県 | 熊本県 | 大分県 | 宮崎県 | 鹿児島県 | 沖縄県
@option options [String] :city 市町村名
使用可能文字: 全角
@option options [String] :name1 責任者氏名(姓)(必須)
使用可能文字: 全角
@option options [String] :name2 責任者氏名(名)(必須)
使用可能文字: 全角
@option options [String] :kana_name1 責任者氏名かな(姓)(必須)
使用可能文字: 全角
@option options [String] :kana_name2 責任者氏名かな(名)(必須)
使用可能文字: 全角
@option options [String] :post_name 役職名(必須)
使用可能文字: 全角
@option options [String] :division_name 部署名(必須)
使用可能文字: 全角
@return [Hash] レスポンスXML解析結果
@example
register_corporate_info_for_certificate(:agreement => true, :corp_name => 'ニフティ', :corp_grade => '株式会社', :president_name1 => 'ニフティ',
:president_name2 => '太郎', :zip1 => 140, :zip2 => 8544, :pref => '東京都', :city => '品川区',
:name1 => '山田', :name2 => '花子', :kana_name1 => 'やまだ', :kana_name2 => 'はなこ', :post_name => '部長',
:division_name => '技術部')
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 230 def register_corporate_info_for_certificate( ={} ) raise ArgumentError, "No :agreement provided." if blank?([:agreement]) raise ArgumentError, "Invalid :agreement provided." unless blank?([:agreement]) || BOOLEAN.include?([:agreement].to_s) raise ArgumentError, "No :corp_name provided." if blank?([:corp_name]) raise ArgumentError, "No :corp_grade provided." if blank?([:corp_grade]) raise ArgumentError, "No :president_name1 provided." if blank?([:president_name1]) raise ArgumentError, "No :president_name2 provided." if blank?([:president_name2]) raise ArgumentError, "No :zip1 provided." if blank?([:zip1]) raise ArgumentError, "Invalid :zip1 provided." unless /^\d{3}$/ =~ [:zip1].to_s raise ArgumentError, "No :zip2 provided." if blank?([:zip2]) raise ArgumentError, "Invalid :zip2 provided." unless /^\d{4}$/ =~ [:zip2].to_s raise ArgumentError, "No :pref provided." if blank?([:pref]) raise ArgumentError, "No :city provided." if blank?([:city]) raise ArgumentError, "No :name1 provided." if blank?([:name1]) raise ArgumentError, "No :name2 provided." if blank?([:name2]) raise ArgumentError, "No :kana_name1 provided." if blank?([:kana_name1]) raise ArgumentError, "No :kana_name2 provided." if blank?([:kana_name2]) raise ArgumentError, "No :post_name provided." if blank?([:post_name]) raise ArgumentError, "No :division_name provided." if blank?([:division_name]) params = {'Action' => 'RegisterCorporateInfoForCertificate'} params.merge!(opts_to_prms(, [:agreement, :tdb_code, :corp_name, :corp_grade, :president_name1, :president_name2, :zip1, :zip2, :pref, :city, :name1, :name2, :kana_name1, :kana_name2, :post_name, :division_name])) return response_generator(params) end |
#register_instances_with_load_balancer(options = {}) ⇒ Object
API「RegisterInstancesWithLoadBalancer」を実行し、 指定したロードバランサーにサーバーを追加します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。IP アドレスを固定化しているサーバーを指定できます。IP アドレス を固定化していないサーバーを指定した、ほかのロードバランサーに設定されているサーバーを指定した、削除済みのサーバーを指定した、 管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。
@option options [String] :load_balancer_name 対象のロードバランサー名(必須)
@option options [Integer] :load_balancer_port 対象の待ち受けポート(必須)
@option options [Integer] :instance_port 対象の宛先ポート(必須)
@option options [Array<String>] :instances サーバー名(必須)
@return [Hash] レスポンスXML解析結果
@example
register_instances_with_load_balancer(:load_balancer_name => 'lb1', :load_balancer_port => 80, instance_port => 80, :instances => ['server01'])
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 261 def register_instances_with_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) raise ArgumentError, "No :instances provided." if blank?([:instances]) params = {'Action' => 'RegisterInstancesWithLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port])) params.merge!(pathhashlist('Instances.member', [[:instances]].flatten.collect{|e| {:instances => e}}, {:instances => 'InstanceId'})) return response_generator(params) end |
#register_instances_with_security_group(options = {}) ⇒ Object
API「RegisterInstancesWithSecurityGroup」を実行し、指定したファイアウォールグループを、指定したサーバーへ適用します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 またサーバーを指定するためには、サーバー名が必要です。すでにファイアウォールグループに適用されているサーバーを指定した、 削除済みのサーバーを指定した、管理外のサーバーを指定したなど、無効なサーバーを指定した場合は、エラーが返されます。
@option options [String] :group_name ファイアウォールグループ名(必須)
@option options [Array<String>] :instance_id サーバー名(必須)
@return [Hash] レスポンスXML解析結果
@example
register_instances_with_security_group(:group_name => 'group01', :instance_id => ['server02', 'server03'])
249 250 251 252 253 254 255 256 257 258 259 260 261 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 249 def register_instances_with_security_group( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) params = { 'Action' => 'RegisterInstancesWithSecurityGroup', 'GroupName' => [:group_name] } params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#register_port_with_load_balancer(options = {}) ⇒ Object
API「RegisterPortWithLoadBalancer」を実行し、指定したロードバランサーにポートを追加します。 ロードバランサーを指定するためには、ロードバランサー名が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。 ポートの追加に成功した場合は、以下のAPI を実行する必要があります。
・ API「RegisterInstancesWithLoadBalancer」(サーバー設定)
・ API「ConfigureHealthCheck」(ヘルスチェック設定)
フィルターの設定は、「すべてのアクセスを許可する」になっています。変更を行う場合は以下のAPI を実行する必要があります。 API「SetFilterForLoadBalancer」(フィルター設定)
@option options [String] :load_balancer_name 対象のロードバランサー名(必須)
@option options [Array<Hash>] :listeners ロードバランサー設定
<Hash> option [String] :protocol - 追加するプロトコル(:load_balancer_portといずれか必須)
許可値: HTTP | HTTPS | FTP
[Integer] :load_balancer_port - 追加する待ち受けポート(:protocolといずれか必須)
[Integer] :instance_port - 追加する宛先ポート
[String] :balancing_type - 追加するロードバランス方式
許可値: 1(Round-Robin) | 2(Least-Connection)
@return [Hash] レスポンスXML解析結果
@example
register_port_with_load_balancer(:load_balancer_name => 'lb1', :listeners => {:protocol => 'http', :balancing_type => 1})
300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 300 def register_port_with_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :listeners provided." if blank?([:listeners]) [[:listeners]].flatten.each do |member| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless member.is_a?(Hash) raise ArgumentError, ":protocol or :load_balancer_port must be provided." if blank?(member[:protocol])&& blank?(member[:load_balancer_port]) raise ArgumentError, "Invalid :protocol provided." unless LOAD_BALANCER_PROTOCOL.include?(member[:protocol].to_s.upcase) || blank?(member[:protocol]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?(member[:load_balancer_port]) || blank?(member[:load_balancer_port]) raise ArgumentError, "Invalid :instance_port provided." unless blank?(member[:instance_port]) || valid_port?(member[:instance_port]) raise ArgumentError, "Invalid :balancing_type provided." unless blank?(member[:balancing_type]) || BALANCING_TYPE.include?(member[:balancing_type].to_s) end params = {'Action' => 'RegisterPortWithLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :network_volume, :ip_version])) params.merge!(pathhashlist('Listeners.member', [:listeners], {:protocol => 'Protocol', :load_balancer_port => 'LoadBalancerPort', :instance_port => 'InstancePort', :balancing_type => 'BalancingType'})) return response_generator(params) end |
#revoke_security_group_ingress(options = {}) ⇒ Object
API「RevokeSecurityGroupIngress」を実行し、指定したファイアウォールグループから許可ルールを削除します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。 また許可ルールを指定するためには、設定されている 許可プロトコル名・許可ポート・許可するファイアウォールグループまたは許可するIPアドレスが必要です。 該当する許可ルールが存在しない場合は、エラーが返されます。
@option options [String] :group_name 対象のファイアウォールグループ名(必須)
@option options [Array<Hash>] :ip_permissions IP許可設定
<Hash> options [String] :protocol - 許可プロトコル名
許可値: TCP | UDP | ICMP | SSH | HTTP | HTTPS
[Integer] :from_port - 許可ポート(:protocolがTCP、UDPの場合は必須)
[String] :in_out - Incoming/Outgoing 指定
許可値: IN(Incoming) | OUT(Outgoing)
[Array<String>] :group_name - 許可するファイアウォールグループ名(:cidr_ipとどちらか必須)
[Array<String>] :cidr_ip - 許可するIP アドレス(CIDR指定可) (:group_nameとどちらか必須)
@return [Hash] レスポンスXML解析結果
@example
revoke_security_group_ingress(:group_name => 'gr1', :ip_permissions => [{:protocol => 'TCP',
:from_port => 80,
:in_out => 'IN',
:group_name => ['gr1', 'gr2'],
:cidr_ip => ['111.171.200.1/22', '111.111.111.112']} ])
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 288 def revoke_security_group_ingress( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "No :ip_permissions provided." if blank?([:ip_permissions]) [[:ip_permissions]].flatten.each do |opt| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless opt.is_a?(Hash) raise ArgumentError, "Invalid :ip_protocol provided." unless blank?(opt[:ip_protocol]) || IP_PROTOCOL.include?(opt[:ip_protocol].to_s.upcase) raise ArgumentError, "No :from_port provided." if /TCP|UDP/ =~ opt[:ip_protocol] && blank?(opt[:from_port]) raise ArgumentError, "Invalid :from_port provided." unless blank?(opt[:from_port]) || valid_port?(opt[:from_port]) raise ArgumentError, "Invalid :to_port provided." unless blank?(opt[:to_port]) || valid_port?(opt[:to_port]) raise ArgumentError, "Invalid :in_out provided." unless blank?(opt[:in_out]) || IN_OUT.include?(opt[:in_out].to_s.upcase) raise ArgumentError, ":group_name or :cidr_ip must be provided." if blank?(opt[:group_name]) && blank?(opt[:cidr_ip]) raise ArgumentError, "Invalid :group_name provided." unless blank?(opt[:group_name]) || GROUP_NAME =~ opt[:group_name].to_s [opt[:cidr_ip]].flatten.each do |ip| begin IPAddr.new(ip.to_s) rescue raise ArgumentError, "Invalid :cidr_ip provided." end end unless blank?(opt[:cidr_ip]) opt[:user_id] = [opt[:user_id]].flatten unless blank?(opt[:user_id]) opt[:group_name] = [opt[:group_name]].flatten unless blank?(opt[:group_name]) opt[:cidr_ip] = [opt[:cidr_ip]].flatten unless blank?(opt[:cidr_ip]) end unless blank?([:ip_permissions]) params = {'Action' => 'RevokeSecurityGroupIngress'} params.merge!(opts_to_prms(, [:user_id, :group_name])) unless blank?([:ip_permissions]) params.merge!(pathhashlist('IpPermissions', [[:ip_permissions]].flatten, { :ip_protocol => 'IpProtocol', :from_port => 'FromPort', :to_port => 'ToPort', :in_out => 'InOut', :user_id => 'Groups', :group_name => 'Groups', :cidr_ip => 'IpRanges'}, { :user_id => 'UserId', :group_name => 'GroupName', :cidr_ip => 'CidrIp'})) end params.reject! {|k, v| SECURITY_GROUPS_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#run_instances(options = {}) ⇒ Object
API「RunInstances」を実行し、サーバーを新規作成します。1 回のリクエストで、1 つのサーバーを作成できます。 サーバーの作成には、時間がかかることがあります。このAPI のレスポンス「instanceState」を確認し「pending」が返ってきた、 タイムアウトした場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 処理が失敗した場合、サーバーは作成されず、エラーが返されます。 またファイアウォール機能を提供していない環境でファイアウォールグループを指定して実行した場合は、エラーが返されます。
@option options [String] :image_id OSイメージID名(必須)
@option options [String] :key_name SSHキー名
@option options [Array<String>] :security_group 適用するファイアフォールグループ名
@option options [String] :instance_type サーバータイプ
許可値: mini | small | small2 | small4 | medium | medium4 | medium8 | large | large8 | large16
@option options [Boolean] :disable_api_termination APIからのサーバー削除の可否
許可値: true(削除不可) | false(削除可)
@option options [String] :accounting_type 利用料金タイプ
許可値: 1(月額課金) | 2(従量課金)
@option options [String] :instance_id サーバー名
@option options [String] :admin 管理者アカウント
@option options [String] :password 管理者アカウントパスワード
許可値: 半角英数字
@option options [String] :ip_type IPアドレスタイプ
許可値: static | dynamic
@return [Hash] レスポンスXML解析結果
@example
run_instances(:image_id => 1, :key_name => 'foo', :security_group => ['gr1', 'gr2'], :instance_type => 'mini',
:instance_id => 'server01', :password => 'pass', :ip_type => 'static')
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
# File 'lib/NIFTY/Cloud/instances.rb', line 157 def run_instances( ={} ) = {:base64_encoded => false}.merge() raise ArgumentError, "No :image_id provided." if blank?([:image_id]) raise ArgumentError, "Invalid :image_id provided." unless [:image_id].to_s.to_i > 0 raise ArgumentError, "Invalid :key_name provided." unless blank?([:key_name]) || ALPHANUMERIC =~ [:key_name].to_s #raise ArgumentError, "No :security_group provided." if blank?(options[:security_group]) raise ArgumentError, "Invalid :security_group provided." unless blank?([:security_group]) || GROUP_NAME =~ [:security_group].to_s raise ArgumentError, "No :password provided." if [:image_id].to_s.to_i < 10000 && blank?([:password]) raise ArgumentError, "Invalid :password provided." unless blank?([:password]) || ALPHANUMERIC =~ [:password].to_s raise ArgumentError, "Invalid :instance_type provided." unless blank?([:instance_type]) || INSTANCE_TYPE.include?([:instance_type].to_s) raise ArgumentError, "Invalid :disable_api_termination provided." unless blank?([:disable_api_termination]) || BOOLEAN.include?([:disable_api_termination].to_s) raise ArgumentError, "Invalid :accounting_type provided." unless blank?([:accounting_type]) || ACCOUNTING_TYPE.include?([:accounting_type].to_s) raise ArgumentError, "Invalid :ip_type provided." unless blank?([:ip_type]) || IP_TYPE.include?([:ip_type].to_s) raise ArgumentError, ":base64_encoded must be 'true' or 'false'." unless [true, false].include?([:base64_encoded]) user_data = extract_user_data() [:user_data] = user_data params = { 'Action' => 'RunInstances', 'Monitoring.Enabled' => [:monitoring_enabled].to_s } params.merge!(pathlist('SecurityGroup', [:security_group])) params.merge!(pathhashlist('BlockDeviceMapping', [:block_device_mapping], {:device_name => 'DeviceName', :virtual_name => 'VirtualName', :ebs_snapshot_id => 'Ebs.SnapshotId', :ebs_volume_size => 'Ebs.VolumeSize', :ebs_delete_on_termination => 'Ebs.DeleteOnTermination', :ebs_no_device => 'Ebs.NoDevice' })) unless blank?([:block_device_mapping]) params.merge!(opts_to_prms(, [:image_id, :min_count, :max_count, :key_name, :additional_info, :user_data, :addressing_type, :instance_type, :kernel_id, :ramdisk_id, :subnet_id, :disable_api_termination, :instance_initiated_shutdown_behavior, :accounting_type, :instance_id, :admin, :password, :ip_type])) params.merge!(opts_to_prms(, [:availability_zone, :group_name], 'Placement')) params.reject! {|k, v| INSTANCES_IGNORED_PARAMS =~ k } if @@ignore_amz_params return response_generator(params) end |
#set_filter_for_load_balancer(options = {}) ⇒ Object
API「SetFilterForLoadBalancer」を実行し、指定したロードバランサーにアクセスフィルターを設定します。 ロードバランサーを指定するためには、ロードバランサー名・ポート番号が必要です。削除済みのロードバランサーを指定した、 管理外のロードバランサーを指定したなど、無効なロードバランサーを指定した場合は、エラーが返されます。
@option options [String] :load_balancer_name 対象のロードバランサー名(必須)
@option options [Integer] :load_balancer_port 対象の待ち受けポート(必須)
@option options [Integer] :instance_port 対象の宛先ポート(必須)
@option options [Array<Hash>] :ip_addresses IPアドレス設定
<Hash> options [String] :ip_address - アクセス元IPアドレス
許可値: 特定のIPアドレス(IPv4/IPv6)
[Boolean] :add_on_filter - 追加フラグ
許可値: true(IPアドレスを追加) | false(IPアドレスを削除)
@option options [String] :filter_type 指定したアクセス元IP アドレスへの対処
許可値: 1 | 2
@return [Hash] レスポンスXML解析結果
@example
set_filter_for_load_balancer(:load_balancer_name => 'lb1', :load_balancer_port => 80, :instance_port => 80,
:ipaddresses => {:ip_address => '111.111.111.111'}, :filter_type => 1)
349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 349 def set_filter_for_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) raise ArgumentError, "Invalid :load_balancer_port provided." unless valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) raise ArgumentError, "Invalid :instance_port provided." unless valid_port?([:instance_port]) raise ArgumentError, "Invalid :filter_type provided." unless blank?([:filter_type]) || FILTER_TYPE.include?([:filter_type].to_s) params = {'Action' => 'SetFilterForLoadBalancer'} params.merge!(opts_to_prms(, [:load_balancer_name, :load_balancer_port, :instance_port, :filter_type])) unless blank?([:ip_addresses]) [[:ip_addresses]].flatten.each do |member| raise ArgumentError, "expected each element of arr_of_hashes to be a Hash" unless member.is_a?(Hash) begin IPAddr.new(member[:ip_address].to_s) rescue raise ArgumentError, "Invalid :ip_address provided." end unless blank?(member[:ip_address]) raise ArgumentError, "Invalid :add_on_filter provided." unless blank?(member[:add_on_filter]) || BOOLEAN.include?(member[:add_on_filter].to_s) end params.merge!(pathhashlist('IPAddresses.member', [:ip_addresses], { :ip_address => 'IPAddress', :add_on_filter => 'AddOnFilter'})) end return response_generator(params) end |
#start_instances(options = {}) ⇒ Object
API「StartInstances」を実行し、指定したサーバーを起動します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの起動には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた場 合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。
@option options [Array<String>] :instance_id サーバー名(必須)
@option options [Array<String>] :instance_type サーバータイプ
許可値: mini | small | small2 | small4 | medium | medium4 | medium8 | large | large8 | large16
@option options [Array<String>] :accounting_type 利用料金タイプ
@return [Hash] レスポンスXML解析結果
@example
start_instances(:instance_id => ['server01', 'server02'], :instance_type => ['mini', 'small'], :accounting_type => 2)
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/NIFTY/Cloud/instances.rb', line 212 def start_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) [[:instance_type]].flatten.each do |p| raise ArgumentError, "Invalid :instance_type provided." unless INSTANCE_TYPE.include?(p.to_s) end unless blank?([:instance_type]) [[:accounting_type]].flatten.each do |p| raise ArgumentError, "Invalid :accounting_type provided." unless ACCOUNTING_TYPE.include?(p.to_s) end unless blank?([:accounting_type]) params = {'Action' => 'StartInstances'} params.merge!(pathlist('InstanceId', [:instance_id])) params.merge!(pathlist('InstanceType', [:instance_type])) params.merge!(pathlist('AccountingType', [:accounting_type])) return response_generator(params) end |
#stop_instances(options = {}) ⇒ Object
API「StopInstances」を実行し、指定したサーバーを停止します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの停止には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた 場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 なお、強制オプションに「true」を指定して実行した際に、サーバーが停止できない状態などのエラーが返されることがあります。 強制オプションに「true」を指定して実行した場合には、システムチェックや修復を行うことをおすすめします。
@option options [Array<String>] :instance_id サーバー名(必須)
@option options [Boolean] :force 強制オプション
許可値: true | false
@return [Hash] レスポンスXML解析結果
@example
stop_instances(:instance_id => ['server01', 'server02'], :force => false)
246 247 248 249 250 251 252 253 254 255 256 257 |
# File 'lib/NIFTY/Cloud/instances.rb', line 246 def stop_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) raise ArgumentError, "Invalid :force provided." unless blank?([:force]) || BOOLEAN.include?([:force].to_s) params = { 'Action' => 'StopInstances', 'Force' => [:force].to_s } params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#terminate_instances(options = {}) ⇒ Object
API「TerminateInstances」を実行し、指定したサーバーを削除します。 サーバーを指定するためには、サーバー名が必要です。削除済みのサーバーを指定した、管理外のサーバーを指定したなど、 無効なサーバーを指定した場合は、エラーが返されます。 サーバーの削除には、時間がかかることがあります。このAPI のレスポンス「currentState.name」を確認して「pending」が返ってきた 場合は、API「DescribeInstances」のレスポンス値「instanceState」でサーバーのステータスを確認できます。 また、API「DescribeInstances」のレスポンスに該当情報がない場合は、削除処理は成功しています。
@option options [Array<String>] :instance_id サーバー名(必須)
@return [Hash] レスポンスXML解析結果
@example
terminate_instances(:instance_id => ['server01', 'server02'])
273 274 275 276 277 278 279 280 |
# File 'lib/NIFTY/Cloud/instances.rb', line 273 def terminate_instances( ={} ) raise ArgumentError, "No :instance_id provided." if blank?([:instance_id]) params = {'Action' => 'TerminateInstances'} params.merge!(pathlist('InstanceId', [:instance_id])) return response_generator(params) end |
#update_load_balancer(options = {}) ⇒ Object
API「UpdateLoadBalancer」を実行し、指定したロードバランサーの定義を変更します。 ポート定義を更新する場合は、ポート番号もあわせて指定します。 削除済みのロードバランサー名・待ち受けポートを指定した、管理外のロードバランサー名を指定した場合は、エラーが返されます。
@option options [String] :load_balancer_name 変更対象のロードバランサー名(必須)
@option options [Array<Hash>] :listener_update ロードバランサー設定
<Hash> options [Integer] :load_balancer_port - 変更対象の待ち受けポート(ポート定義・ロードバランス方式を変更する場合必須)
[Integer] :instance_port - 変更対象の宛先ポート(ポート定義・ロードバランス方式を変更する場合必須)
[String] :listener_protocol - プロトコルの更新値
許可値: HTTP | HTTPS | FTP
[Integer] :listener_load_balancer_port - 待ち受けポートの更新値
[Integer] :listener_instance_port - 宛先ポートの更新値
[String] :listener_balancing_type - ロードバランス方式の更新値
許可値: 1(Round-Robin) | 2(Least-Connection)
@option options [String] :network_volume_update 最大ネットワーク流量の更新値
許可値: 10 | 20 | 30 | 40 | 100 | 200 (単位: Mbps)
@return [Hash] レスポンスXML解析結果
@example
update_load_balancer(:load_balancer_name => 'lb1', :listener_update => {:listener_protocol => 'https', :balancing_type => 2}, :network_volume_update => 20)
395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 |
# File 'lib/NIFTY/Cloud/load_balancers.rb', line 395 def update_load_balancer( ={} ) raise ArgumentError, "No :load_balancer_name provided." if blank?([:load_balancer_name]) raise ArgumentError, "Invalid :load_balancer_name provided." unless LOAD_BALANCER_NAME =~ [:load_balancer_name].to_s raise ArgumentError, "No :load_balancer_port provided." if blank?([:load_balancer_port]) && (!blank?([:listener_load_balancer_port]) || !blank?([:listener_instance_port]) || !blank?([:listener_protocol]) || !blank?([:listener_balancing_type]) || !blank?([:instance_port])) raise ArgumentError, "Invalid :load_balancer_port provided." unless blank?([:load_balancer_port]) || valid_port?([:load_balancer_port]) raise ArgumentError, "No :instance_port provided." if blank?([:instance_port]) && !blank?([:load_balancer_port]) raise ArgumentError, "Invalid :instance_port provided." unless blank?([:instance_port]) || valid_port?([:instance_port]) raise ArgumentError, "Invalid :listener_protocol provided." unless blank?([:listener_protocol]) || LOAD_BALANCER_PROTOCOL.include?([:listener_protocol].to_s.upcase) raise ArgumentError, "Invalid :listener_load_balancer_port provided." unless blank?([:listener_load_balancer_port]) || valid_port?([:listener_load_balancer_port]) raise ArgumentError, "Invalid :listener_instance_port provided." unless blank?([:listener_instance_port]) || valid_port?([:listener_instance_port]) raise ArgumentError, "Invalid :listener_balancing_type provided." unless blank?([:listener_balancing_type]) || BALANCING_TYPE.include?([:listener_balancing_type].to_s) raise ArgumentError, "Invalid :network_volume_update provided." unless blank?([:network_volume_update]) || NETWORK_VOLUMES.include?([:network_volume_update].to_s) params = { 'Action' => 'UpdateLoadBalancer', 'ListenerUpdate.Listener.Protocol' => [:listener_protocol].to_s, 'ListenerUpdate.Listener.LoadBalancerPort' => [:listener_load_balancer_port].to_s, 'ListenerUpdate.Listener.InstancePort' => [:listener_instance_port].to_s, 'ListenerUpdate.Listener.BalancingType' => [:listener_balancing_type].to_s } params.merge!(opts_to_prms(, [:load_balancer_name, :network_volume_update])) params.merge!(opts_to_prms(, [:load_balancer_port, :instance_port], 'ListenerUpdate')) return response_generator(params) end |
#update_security_group(options = {}) ⇒ Object
API「UpdateSecurityGroup」を実行し、ファイアウォールグループの設定情報を更新します。 ファイアウォールグループを指定するためには、ファイアウォールグループ名が必要です。削除済みのファイアウォールグループを指定した、 管理外のファイアウォールグループを指定したなど、無効なファイアウォールグループを指定した場合は、エラーが返されます。
@option options [String] :group_name ファイアウォールグループ名(必須)
@option options [String] :group_name_update ファイアウォールグループ名の変更
@option options [String] :group_description_update ファイアウォールグループのメモの変更
@return [Hash] レスポンスXML解析結果
@example
update_security_group(:group_name => 'group01', :group_name_update => 'group02', :group_description_update => 'Security Group memo.Updated.')
344 345 346 347 348 349 350 351 352 353 |
# File 'lib/NIFTY/Cloud/security_groups.rb', line 344 def update_security_group( ={} ) raise ArgumentError, "No :group_name provided." if blank?([:group_name]) raise ArgumentError, "Invalid :group_name provided." unless GROUP_NAME =~ [:group_name].to_s raise ArgumentError, "Invalid :group_name_update provided." unless blank?([:group_name_update]) || ALPHANUMERIC =~ [:group_name_update].to_s params = {'Action' => 'UpdateSecurityGroup'} params.merge!(opts_to_prms(, [:group_name, :group_name_update, :group_description_update])) return response_generator(params) end |
#upload_ssl_certificate(options = {}) ⇒ Object
API「UploadSslCertificate」を実行し、指定したSSL証明書をアップロードします。 1回のリクエストで、SSL証明書のキー・CA・証明書の1 セットをアップロードできます。 作成可能なSSL証明書の上限数を超える場合は、エラーが返されます。 またアップロードしたファイルの解析に失敗した場合は、エラーが返されます。
@option options [String] :certificate 証明書ファイル(必須)
@option options [String] :key 秘密鍵ファイル(必須)
@option options [String] :ca CA(認証局)ファイル
@return [Hash] レスポンスXML解析結果
@example
upload_ssl_certificate(:certificate => 'xxxxxxxxxxxxxxxxxxxxxx', :key => 'xxxxxxxxxxx')
272 273 274 275 276 277 278 279 280 |
# File 'lib/NIFTY/Cloud/certificates.rb', line 272 def upload_ssl_certificate( ={} ) raise ArgumentError, "No :certificate provided." if blank?([:certificate]) raise ArgumentError, "No :key provided." if blank?([:key]) params = {'Action' => 'UploadSslCertificate'} params.merge!(opts_to_prms(, [:certificate, :key, :ca])) return response_generator(params) end |