[转载]在Windows Azure Store上购买第三方服务


自去年11月我已经好长时间没有写博客了。这期间发生了好多令人兴奋的事情。我参加了微软 TechED 2012 China活动,并召开了一场有关 Node.js 和 Windows Azure 的会议。我今年 1 月还组织了微软中国区新年聚会上一场小型会议。之后我和妻子在旅顺过农历新年,那是一座位于渤海湾旁宁静而美丽的城市,那也是我妻子的家乡。

当我读到这篇文章时我想要写点东西。2月,微软宣布 Windows Azure Store扩大了25个新市场,包括香港特别行政区,这是我的 Windows Azure 帐户所在区域。这意味着我可以用我的订阅试试这个神奇的功能。

 

Windows Azure Store

Windows Azure Store是 Windows Azure 平台提供的全新服务。就像一个服务市场,在那里您可以买很多第三方游戏开发商所提供的服务。有了Windows Azure Store,作为开发者我们可以:

1.选择受欢迎的应用程序服务,包括: AppDynamics (监测和测量服务),New Relic (绩效管理和监测)、 SendGrid (邮件发送服务)等等。

2.从数据提供程序查找您的应用程序需要的数据: Dun &Bradstreet (商务观察)、 Loqate (世界各地地址验证和清除服务)、 StrikeIron (电话号码验证服务 ;销售和使用税费率查找服务)等等。

3.在开发人员门户网站上连接和管理:集成的商店用户界面,便于您直接从门户网站查找、购买和管理所需要的服务和数据。集成收费使得您可以将商店主打服务直接添加到您的 Windows Azure 帐户上。我们还提供连接字符串和示例代码,并帮助您快速入门,以及从直接来自 Windows Azure 管理门户内的使用率数据。

除此之外,使用 Windows Azure Store还有其他的好处。

1.用相似 UI作为 Windows Azure 门户网站,这意味着它更容易选择、查看和购买。

2.所有服务都存放在Windows Azure 数据中心上。这样我们就可以选择最佳地区尽量减少我们的成本。

3.在我们的 Windows Azure 订阅管理页面可以查看账单报告。

4.几乎Windows Azure Store上所有的服务都提供了多个订阅计划,并且大多数订阅都免费。

 

Windows Azure Store Windows Azure Marketplace

如果您用过 Windows Azure 一段时间,您可能听说过Windows Azure另一个功能叫做 Windows Azure Marketplace,用它可以从其他厂商购买数据和发布的应用程序。这听起来非常类似 Windows Azure Store。那么,它们之间有什么不同?难道 Windows Azure Store将代替Windows Azure Marketplace?

在这里我引述下微软Ryan McGee所作出一些澄清。

Windows Azure Store和 Windows Azure Marketplace将继续共存;没有计划将它们合并。原因是他们服务于不同的受众并包含不同种类的产品。

使用Windows Azure Store可以很容易查找和购买插件,并用它们来创建您的应用程序。而 Windows Azure Marketplace是一个在线交易市场,在那里ISVs 和数据出版商可以发布并向商业客户出售完成的应用程序和额外数据集。

对此我的理解是,如果您打算在 Windows Azure 生成应用程序并想利用一些 Windows Azure 没有提供的服务,您最好在 Windows Azure Store上查找。但是,如果您打算使用某些数据,或者您想要查找某些应用程序,您可以在 Windows Azure Marketplace中寻求。

 

通过使用 Windows Azure Store Node.js + MongoDB

现在看一下如何使用 Windows Azure Store。在这篇文章中我将演示如何使用 Node.js 和 MongoDB生成一个简单的网站。

 

如您所知,Windows Azure 不会提供 MongoDB。宣布 Windows Azure Store之前,我们必须在工作角色上或虚拟机上运行我们自己 MongoDB 服务。这个可行,但我们必须得安装、 配置、 缩放等。现在,我们有了Windows Azure Store,让我们来看下是否有一些 MongoDB 相关的服务。打开 Windows Azure 门户网站,从导航处点击ADD-ONS,然后点击PURCHASE ADD-ONS。

 

现在我们可以看到那个服务在 Windows Azure Store上。向下滚动列表,我们会发现一个名为 MongoLab的服务,它是 MongoDB 作为服务。点击对话框右下角的下一个图标。

 

然后选择购买计划。MongoLab目前只有一个免费计划,其包括一个0.5 G MongoDB。选择有效的 Windows Azure 订阅、指定 MongoDB 名称并选择区域。这将是我们 放置MongoDB 的地方。

 

在最后一步,复查下前面的选择,并点击PURCHASE图标。

如果您发现在最后一步它说:"我们很抱歉,我们不能在此时间评估该账单"这因为您已注册 Windows Azure Marketplace上不同的国家或地区。要解决此问题,您需要登录 Windows Azure Marketplace,并更改您的国家或地区和Windows Azure 为同一个。

几秒钟后就会在该地区建立我们的 MongoDB。

 

点击底部的CONNECTION INFO按钮可以查看连接信息。在稍后我们的 Node.js 应用程序中将使用此信息。

 

 

接下来,我们将创建一个新的 Windows Azure Website并编写我们的 Node.js 代码。如何使用 Windows Azure Website并通过本地 GIT 发布,请参阅我前面的文章。只要确保创建网站时指定同一区域这样就不会收取我们网络流量费用。

 

克隆它到本地磁盘后,我们将添加.gitignore 和 package.json 文件。内容如下。

   1: node_modules

   1: {

   2:   "name": "nodemongotest",

   3:   "version": "1.0.0",

   4:   "dependencies": {

   5:     "mongoose": "~3.5.7",

   6:     "express": "~3.1.0"

   7:   }

   8: }

然后通过NPM命令安装"express"和"mongoose"模块。"mongoose"是用来连接我们 MongoDB的模块。

关于" mongoose "模块的详细信息,请参阅网站.

然后,创建名为"server.js" 的Node.js源代码文件并粘贴下面的代码。请确保您 在 16 行用MongoDB连接信息来取代 MongoDB 连接字符串。

   1: (function () {

   2:     "use strict";

   3: 

   4:     var app = require("express")();

   5:     var server = require("http").createServer(app);

   6: 

   7:     var mongoose = require("mongoose");

   8:     var Schema = mongoose.Schema;

   9:     var ObjectId = Schema.ObjectId;

  10: 

  11:     var guestSchema = new Schema({

  12:         client_ip: String,

  13:         request_date: String

  14:     });

  15: 

  16:     var conn = mongoose.createConnection("mongodb://TestMongoDB:wL5JJFkRPtYFS96_BbdustMrcgijw3C17B0rTdStqh8-@ds045107.mongolab.com:45107/TestMongoDB");

  17:     // var conn = mongoose.createConnection("mongodb://127.0.0.1/nodeandmongo-db");

  18:     var GuestItem = conn.model("GuestItem", guestSchema);

  19: 

  20:     var guestCount = function (req, callback) {

  21:         // retrieve the client request ip and date

  22:         var request_date = (new Date()).toString();

  23:         var request_ip = req.header('x-forwarded-for') || req.connection.remoteAddress;;

  24:         // try to insert into mongo

  25:         var guest = new GuestItem;

  26:         guest.client_ip = request_ip;

  27:         guest.request_date = request_date;

  28:         guest.save(function (error) {

  29:             if (error) {

  30:                 callback(error, null);

  31:             }

  32:             else {

  33:                 // retrieve all items in mongo

  34:                 GuestItem.find(function (error, items) {

  35:                     callback(error, items);

  36:                 });

  37:             }

  38:         });

  39:     }

  40: 

  41:     // routing

  42:     app.get("/", function (req, res) {

  43:         guestCount(req, function (error, guests) {

  44:             if (error) {

  45:                 res.send(200, error);

  46:             }

  47:             else {

  48:                 res.send(200, guests);

  49:             }

  50:         })

  51:     });

  52: 

  53:     server.listen(process.env.PORT || 12345);

  54: })();

此代码将在我们 MongoDB中创建一个连接名为 GuestItem。一旦有人访问该网站,请求客户端 IP 和请求日期就会被记录下来,并显示在MongoDB记录中。

尝试将代码发布到 Windows Azure 网站上,当刷新页面时,我们可以看到记录有所增加。

 

 

管理 MongoDB

我们使用来自Windows Azure Store的MongoLab在我们的应用程序中。但在 Windows Azure 门户网站中有没有管理页面可以查看集合和文档。然而我们可以在 MongoLab 的网站中查看它们。打开 Windows Azure 门户在ADD-ONS部分选择 MongoLab,然后点击MANAGE按钮。

 

会弹出另一个 web 页。它是由 MongoLab 提供的管理页面。从这里我们可以看到我们MongoDB上所有的集合和文档。

 

在该页面,我们可以添加、更新和删除集合。

 

 

总结

在这篇文章中,我介绍了 Windows Azure Store及与现有的Windows Azure Marketplace的不同。我还演示如何从 Windows Azure Store上使用 MongoLab,以及使用 Node.js。

当前 Windows Azure Store中还有许多其他的服务。下面列出一些我们认为可能有用的服务。

ClearDB

MySQL 数据库作为服务,用在 Windows Azure Website功能上。

MongoLab

MongoDB 数据库作为服务。

New Relic

多功能一体 web 应用程序性能工具,让您可以看到用户体验时的性能,通过服务器,并下载到应用程序的代码行。

Scheduler

使得基于时间的事件变得简单。轻松地安排 CRON 工作。

SendGrid

基于云计算的电子邮件服务,以公司名义发送邮件增加产能并改善客户通信。

如果您对我们Windows Azure Store上托管和销售的这些服务有兴趣,可以联系wastorepartners@microsoft.com

 

希望该文章对您有所帮助,

Shaun

 

文章翻译自:http://blogs.shaunxu.me/archive/2013/03/27/consume-third-party-services-at-windows-azure-store.aspx

Comments (0)

Skip to main content