首页 文章

部署DocumentDb帐户后无法直接连接到DocumentDb

提问于
浏览
1

我有一个ARM模板,用于将DocumentDB以及其他Azure reosurces部署到资源组 . 我希望我的ARM模板能够设置使用DocumentDB作为输出的Stream Analytics作业 . 为此,ARM模板创建的DocumentDB帐户还需要具有数据库和集合设置 . 我找不到从ARM模板执行此操作的方法,因此我编写了一个Powershell CmdLet来为我创建数据库和collction .

第一个ARM模板无法创建Stream Analytics作业,因为它取决于首先创建数据库和集合 . 相反,我必须将部署分为两个ARM模板,第一个设置DocDb帐户,第二个设置SA工作 .

问题是,在通过ARM模板部署帐户后,我无法直接在DocDB帐户中创建数据库 . 我收到以下消息的异常:“远程名称无法解析:'test.documents.azure.com'”当我尝试使用DocDbEndpoint和AuthKey执行CreateDatabaseAsync方法时,我从ARM模板部署中返回 .

使用ARM模板部署Azure资源之后是否存在任何计时问题,然后才能以编程方式访问它们?对于以这种方式创建的其他Azure reosurces,这似乎不是问题 .

对此问题的任何帮助都非常感谢,以及使用DocumentDB和Stream Analytic作业处理ARM模板的良好实践 .

Update 2016-03-23

用于设置与DocumentDB的连接以创建数据库的代码 .

Uri endpointUri = new Uri(documentDbEndPoint);
DocumentClient client = new DocumentClient(endpointUri, authKey);
var db = await client.CreateDatabaseAsync(new Database { Id = databaseId });
return db;

其中documentDbEndPoint的形式为:https://name.documents.azure.com:443/,name是我刚刚由ARM模板部署创建的DocDB帐户的名称 .

我有一个库中的代码,我可以通过加载库来从控制台应用程序或Powershell脚本调用:

Add-Type -Path <path to library dll file>

无论我使用PowerShell还是控制台应用程序,如果我在使用ARM模板创建DocDB帐户后尝试创建数据库,我会收到相同的错误 . 如果我等了一个小时左右,PowerShell脚本和控制台应用程序都可以工作,并且可以在帐户中创建数据库 .

似乎存在某种时间问题,以便Azure为新创建的DocDB帐户设置dns记录,以便可以使用DocDB API访问它 .

Update 2 2016-03-23 只是尝试直接从门户创建DocDB帐户并执行此操作而不是从ARM模板创建它可以立即使用我的powershell脚本和控制台应用程序在帐户中创建数据库 .

1 回答

  • 0

    此计时问题现已修复,您现在应该可以从ARM模板中使用它 .

相关问题