Rackspace Cloud 계정에서 클라우드 서버를 조작하기위한 간단한 개념 증명을 C# openstacknetsdk 라이브러리 v1.3.0.0을 통해 작성하려고합니다.openstacknetsdk를 통해 내 Rackspace 클라우드 서버를 찾을 수 없음
내가 가지고있는 문제는 내 Rackspace 사용자 이름과 API 키를 사용하여 성공적으로 인증 할 수있는 것처럼 보이지만 API는 마치 서버가없는 것처럼 작동합니다. 내 코드 : 나는 디버거에서이 코드를 단계별로 때
using net.openstack.Providers.Rackspace;
using net.openstack.Core.Providers;
using net.openstack.Core.Exceptions.Response;
using net.openstack.Providers.Rackspace.Objects;
using net.openstack.Core.Domain;
...
const string USERNAME = "[my rackspace username]";
const string API_KEY = "[my rackspace API key]";
static void Main(string[] args)
{
CloudIdentity cloudIdentity = new CloudIdentity() { APIKey = API_KEY, Username = USERNAME };
CloudServersProvider provider = new CloudServersProvider(cloudIdentity);
IEnumerable<SimpleServer> servers = provider.ListServers();
foreach (SimpleServer server in servers)
{
Console.Out.WriteLine(server.Id);
}
}
, 나는 servers
크기가 0을 가진 끝나는 것을 볼 수 있고, 아무것도 쓰여지고 끝이 없습니다.
내가 Rackspace 클라우드 제어판 웹 사이트에서 볼 수있는 하나의 서버를 만들었 기 때문에 이는 예상치 못한 일입니다. 서버가 활성 상태입니다. 나는 랙 스페이스 클라우드 제어판 사이트의 클라우드 서버> 서버 정보 페이지에서 서버 ID를 사용하여 내 특정 서버에 대한 정보를 얻으려고하면
는 :
Server server = provider.GetDetails("[my cloud server ID]");
Console.Out.WriteLine(server.Image.Name);
나는 net.openstack.Core를 얻을 수 .Exceptions.Response.ItemNotFoundException.
내 API_KEY
값을 의도적으로 잘못된 값 (예 : "test"
)으로 변경하면 인증이 작동하는 것 같습니다. 대신 UserNotAuthorizedException이 발생합니다.
무엇이 여기에 있습니까? openstacknetsdk에서 서버가없는 것처럼 보이는 이유는 무엇입니까?
예, 그게 전부입니다! 내 서버가 Rackspace의 "DFW"지역에 있으므로 ListServers를 다음과 같이 호출하면 IEnumerable servers = provider.ListServers (region : "DFW"); –
[CloudServersProvider'의 생성자] (http://openstacknetsdk.org/docs/html/M_net_openstack_Providers_Rackspace_CloudServersProvider__ctor_6.htm)에서 영역을 지정하는 것이 좋습니다. SDK의 새로운 서비스 (예 : CloudQueuesProvider' 및'CloudDnsProvider', * only *)를 사용하면이 방법으로 영역을 지정할 수 있으므로 API의 전체 사용이 간단 해집니다. [이슈 # 243] (https://github.com/openstacknetsdk/openstack.net/issues/243)이 닫히면 클라우드 서버에서도 마찬가지입니다. –