gpt4 book ai didi

c# - 在检索 key 之前验证资源是否存在

转载 作者:行者123 更新时间:2023-12-03 05:29:21 26 4
gpt4 key购买 nike

我创建一个资源组和一个数据库帐户:

// Create resourceGroup:
var rg= new ResourceGroup("myRG",
new ResourceGroupArgs
{
Name = "myRG",
Location = "westeurope"
});
// Create DBAccount:
var account = new DatabaseAccount(accountName, new Pulumi.AzureNextGen.DocumentDB.Latest.DatabaseAccountArgs
{
AccountName = "myAcc",
DatabaseAccountOfferType = DatabaseAccountOfferType.Standard,
Location = "WestEurope",
ResourceGroupName = rg.GetResourceName()
});

完成此操作后,我想检索主键:

var keys = ListDatabaseAccountKeys.InvokeAsync(new ListDatabaseAccountKeysArgs
{
AccountName = account.GetResourceName(),
ResourceGroupName = rg.GetResourceName()
});
var cosmosWriteKey = Output.Create(keys).Apply(q => q.PrimaryMasterKey);

第一次启动没有任何带有“pulumi up”资源组的空白订阅时,我收到错误

Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'myRG' could not be found.

我目前通过设置环境变量在第一次运行时禁用“Key”部分并在创建 ResourceGroup 后再次运行代码来解决此问题。但也许有一种更聪明的方法来确保在检索 key 之前创建资源组?

最佳答案

您应该通过在其构造函数中使用 rg.Name 将帐户链接到资源组,并将 ListDatabaseAccountKeys 调用放入 Apply 中:

var account = new DatabaseAccount(accountName, new DatabaseAccountArgs
{
AccountName = "myAcc",
DatabaseAccountOfferType = DatabaseAccountOfferType.Standard,
Location = "WestEurope",
ResourceGroupName = rg.Name
});

var cosmosWriteKey = account.Name.Apply(async name =>
{
var keys = await ListDatabaseAccountKeys.InvokeAsync(new ListDatabaseAccountKeysArgs
{
AccountName = name,
ResourceGroupName = "myRG"
});
return keys.PrimaryMasterKey;
});

这样,只有在创建帐户并且解析 Name 输出后才会发生调用。

如果您迁移到 Azure-Native ,您可以使用自动命名:

var rg = new ResourceGroup("myRG");

var account = new DatabaseAccount(accountName, new DatabaseAccountArgs
{
DatabaseAccountOfferType = DatabaseAccountOfferType.Standard,
ResourceGroupName = rg.Name
});

var cosmosWriteKey = Output.Tuple(rg.Name, account.Name).Apply(async values =>
{
var keys = await ListDatabaseAccountKeys.InvokeAsync(new ListDatabaseAccountKeysArgs
{
ResourceGroupName = values[0],
AccountName = values[1]
});
return keys.PrimaryMasterKey;
});

关于c# - 在检索 key 之前验证资源是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66476665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com