【问题标题】:Can't find my Rackspace cloud server via openstacknetsdk通过 openstacknetsdk 找不到我的 Rackspace 云服务器
【发布时间】:2014-04-10 15:29:55
【问题描述】:

我正在尝试编写一个简单的概念验证,用于通过 C# openstacknetsdk 库 v1.3.0.0 在我的 Rackspace Cloud 帐户中操作云服务器。

我遇到的问题是,虽然我似乎能够使用我的 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 云控制面板网站上看到它。服务器处于活动状态。

如果我尝试使用 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 表现得好像我没有任何服务器?

【问题讨论】:

    标签: c# openstack rackspace-cloud rackspace openstacknetsdk


    【解决方案1】:

    您创建的服务器是否在您的默认区域?

    为安全起见,请尝试在 .ListServers() 方法调用中指定区域。

    还有;您可以通过 NuGet 下载示例数据;搜索“openstack 示例”。

    【讨论】:

    • 是的,就是这样!我的服务器位于 Rackspace 的“DFW”区域,因此将我的 ListServers 调用更改为以下工作: IEnumerable servers = provider.ListServers(region: "DFW");
    • 我实际上建议在constructor of CloudServersProvider 中指定区域。 SDK 中较新的服务,例如CloudQueuesProviderCloudDnsProvider允许您以这种方式指定区域,从而简化 API 的整体使用。当issue #243 关闭时,云服务器也是如此。
    猜你喜欢
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2012-06-28
    相关资源
    最近更新 更多