C# 使用Pulumi从DocumentDB帐户检索AccountKey或ConnectionString
我使用AzureNextGen创建了一个CosmosDB/DocumentDB-帐户:C# 使用Pulumi从DocumentDB帐户检索AccountKey或ConnectionString,c#,azure,pulumi,C#,Azure,Pulumi,我使用AzureNextGen创建了一个CosmosDB/DocumentDB-帐户: var databaseAccount=new Pulumi.AzureNextGen.DocumentDB.Latest.DatabaseAccount(accountName, new Pulumi.AzureNextGen.DocumentDB.Latest.DatabaseAccountArgs { // parameters } ); 为了以后能够访问此数据库,我需要检索该数
var databaseAccount=new Pulumi.AzureNextGen.DocumentDB.Latest.DatabaseAccount(accountName,
new Pulumi.AzureNextGen.DocumentDB.Latest.DatabaseAccountArgs
{
// parameters
}
);
为了以后能够访问此数据库,我需要检索该数据库帐户的键
或连接字符串
:
我可以通过databaseAccount.DocumentEndpoint.Apply(q=>“AccountEndpoint=“+q)
构建连接字符串的第一部分(端点),但我无法获得更关键的部分,即密钥
如何实现这一点?Azure API不会自动返回任何敏感数据。您需要对任何机密数据运行显式查询 在这种情况下,您应该为此使用函数和。以下是TypeScript中的一个片段:
const keys = pulumi.all([resourceGroupName, databaseAccount.name])
.apply(([resourceGroupName, accountName]) =>
documentdb.listDatabaseAccountKeys({ resourceGroupName, accountName }));
const connectionStrings = pulumi.all([resourceGroupName, databaseAccount.name])
.apply(([resourceGroupName, accountName]) =>
documentdb.listDatabaseAccountConnectionStrings({ resourceGroupName, accountName }));
const connectionString = connectionStrings.apply(cs => cs.connectionStrings![0].connectionString);
const masterKey = keys.primaryMasterKey;
抄袭自
当翻译成C#时,您将使用
Output.Tuple
而不是pulumi。所有的都与in类似。基于Mikhails的回答,检索主键的C#-代码如下所示:
var keys = Pulumi.AzureNextGen.DocumentDB.Latest.ListDatabaseAccountKeys.InvokeAsync(
new Pulumi.AzureNextGen.DocumentDB.Latest.ListDatabaseAccountKeysArgs
{
AcccountName = "databasename",
ResourceGroupName = "resourcename"
});
var key = Output.Create(keys).Apply(q => q.PrimaryMasterKey);