Может ли сценарий сервера мобильной службы (расписание) получить доступ к другим базам данных Sql Azure?

Я хочу создать запланированное задание с помощью мобильной службы Azure.

Поскольку служба в конечном итоге будет вызывать другую облачную службу (веб-сайт), мне было интересно, сможет ли мобильный скрипт получить доступ к базе данных, которую уже использует облачная служба.

Я понимаю, что вы можете указать базу данных для мобильного сценария (я выбрал бесплатную для ведения журнала), но не могу сказать, можете ли вы получить доступ к другим базам данных через API.

var todoItemsTable = tables.getTable('TodoItems');

Гипотетически...

var todoItemsTable = databases.getDatabase('NonMobileSqlDb').tables.getTable('TodoItems');

Я уже проверил этот вопрос ( Можно ли смешивать мобильные службы Azure с облачными службами Azure?), но, похоже, это не распространяется на сценарии, взаимодействующие с базами данных.

Какой-то фон...

Мобильная служба будет (по расписанию) вызывать веб-службу (с авторизацией), которая выполняет рутинные действия. Я хотел бы заблокировать эту службу (без ssl), и один из способов — сгенерировать ключ, который служба может использовать для проверки облачной службы. Этот ключ будет храниться в базе данных, доступ к которой возможен только в течение короткого периода времени.


person Phil Cooper    schedule 24.07.2013    source источник
comment
Взгляните на windowsazure.com/ en-us/develop/nodejs/how-to-guides/ и tomasz.janczuk.org/2013/06/.   -  person Gaurav Mantri    schedule 24.07.2013
comment
Ах, хорошо, так что «чистый» маршрут nodejs создает соединение и делает это таким образом.   -  person Phil Cooper    schedule 24.07.2013
comment
Кстати, мобильные службы Windows Azure теперь могут работать с NPM. эта ссылка может быть полезной для понимания того, как это сделать. в конце концов, мобильная служба WIndows Azure — это решение, основанное на Node Js, я думаю, weblogs.asp.net/scottgu/archive/2013/06/14/   -  person hhaggan    schedule 24.07.2013
comment
@hhaggan Теперь вы можете вызывать этот API из любого клиентского приложения Mobile Service ‹ хорошая статья, спасибо.   -  person Phil Cooper    schedule 24.07.2013


Ответы (1)


Да, ты можешь.

Вам необходимо подключиться, используя следующий пример (использует Node.js), взятый из руководство:

Чтобы использовать node-sqlserver, вы должны потребовать его в своем приложении и указать строку подключения. Строка подключения должна быть значением ODBC, возвращаемым в Как получить информацию о подключении к базе данных SQL этой статьи. Код должен выглядеть примерно так:

var sql = require('node-sqlserver');
var conn_str = "Driver={SQL Server Native Client 10.0};Server=tcp:{dbservername}.database.windows.net,1433;Database={database};Uid={username};Pwd={password};Encrypt=yes;Connection Timeout=30;";

Запросы можно выполнять, указав инструкцию Transact-SQL с методом запроса. Следующий код создает HTTP-сервер и возвращает данные из строк ID, Column1 и Column2 в тестовой таблице при просмотре веб-страницы:

var http = require('http')
var port = process.env.port||3000;
http.createServer(function (req, res) {
    sql.query(conn_str, "SELECT * FROM TestTable", function (err, results) {
        if (err) {
            res.writeHead(500, { 'Content-Type': 'text/plain' });
            res.write("Got error :-( " + err);
            res.end("");
            return;
        }
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        for (var i = 0; i < results.length; i++) {
            res.write("ID: " + results[i].ID + " Column1: " + results[i].Column1 + " Column2: " + results[i].Column2);
        }
        res.end("; Done.");
    });
}).listen(port);

Большое спасибо @GauravMantri и @hhaggan за их помощь в этом.

person Phil Cooper    schedule 25.07.2013
comment
Эта документация, кажется, исчезла из Интернета. Спасибо, что разместили это здесь. - person dylanT; 25.10.2016