2016-08-02 43 views
2

我想连接Azure DocumentDB并使用Azure函数保存文档,但我不知道如何创建连接。具有Azure函数的DocumentDB

+0

到目前为止,您在Azure功能中尝试过哪些?请使用更多信息编辑您的问题。正如你现在的问题所展示的那样,并不清楚你卡在哪里。 –

+0

现在我创建了数据库并创建了一个天蓝色的函数,但我不知道如何连接数据库以列出,更新,创建等。 –

+0

这与您在ASPNET应用程序,控制台应用程序中执行操作的方式相同等等。你可以在我的[repo](https://github.com/jr-araujo/AzureFunctionsCreateUser)找到一个例子 –

回答

4

您可以使用Azure门户进行此操作。 创建DocumentDB后 -

  • 创建新的Azure函数。
  • 转到集成选项卡。
  • 您可以选择Azure文档数据库作为您的函数的输出。
  • 选择您要使用的文档数据库/数据库名称/集合。
  • 文档参数名称是您的函数的输出。

例如

using System; 

public static void Run(string input, out object document, TraceWriter log) 
{ 
    log.Info($"C# manually triggered function called with input: {input}"); 
    document = new { 
     text = $"I'm running in a C# function! {input}" 
    }; 
} 

需要提供出对象,它是当你在输出选项卡中定义相同。

+0

我如何连接数据库并获取信息? –

+0

@LuísFura如果你想查询文档Db,你有很多在线指南。例如 - https://azure.microsoft.com/en-us/documentation/articles/documentdb-get-started/ – shachar

+0

我试图添加azure.documents引用,我收到了一条错误消息。我可以在哪里添加对我的功能的引用? –

1

您只需直接使用文档的客户端:

var endpoint = "https://XXXXX.documents.azure.com:443/"; 
var authKey = "XXXXX"; 

using (var client = new DocumentClient(new Uri(endpoint), authKey)) 
{ 
    var sqlCountQuery = "select value count(1) from c"; 
    IDocumentQuery<dynamic> query = client.CreateDocumentQuery<dynamic>(UriFactory.CreateDocumentCollectionUri("YOUR_DB_ID", "YOUR_COLLECTON_ID"), sqlCountQuery).AsDocumentQuery(); 
    .... 
} 
0
var EndpointUrl = "EndpointUrl"; 
var PrimaryKey = "PrimaryKeyValue" 
this.client = new DocumentClient(new Uri(EndpointUrl), PrimaryKey); 
Database database = await this.client.CreateDatabaseIfNotExistsAsync(new Database { Id = cosmoDbName }); 

你可以从按键部分蔚蓝的门户网站获得结束点URL和主键值。