c# - 创建Pulumi.AzureNative.OperationalInsights.Workspace后如何获取WorkspaceKey?

标签 c# azure pulumi

我使用以下内容创建 Pulumi.AzureNative.OperationalInsights.Workspace:

    name = "workspace";
    var workspace = 
      new Workspace
      (
        name, 
        new WorkspaceArgs
        {
          Location = resourceGroup.Location,
          ResourceGroupName = resourceGroup.Name,
          RetentionInDays = 30,
          Sku = new WorkspaceSkuArgs
          {
            Name = WorkspaceSkuNameEnum.PerGB2018,
          },
          Tags =
                {
                    { "tag1", "val1" },
                },
          WorkspaceName = name,
        }
      );

稍后我想将我的 ContainerGroup 连接到此工作区,并需要 WorkspaceIdWorkspaceKey

我从哪里可以获得这些值?

最佳答案

WorkspaceId 派生自 workspace.CustomerId

WorkspaceKey 不是由工作区直接返回的,您需要使用 GetSharedKeys 检索它。

这是一个为我成功配置的完整工作示例

using Pulumi;
using Pulumi.AzureNative.ContainerInstance;
using Pulumi.AzureNative.ContainerInstance.Inputs;
using Pulumi.AzureNative.Resources;
using Pulumi.AzureNative.OperationalInsights;
using Pulumi.AzureNative.OperationalInsights.Inputs;

class MyStack : Stack
{
    public MyStack()
    {
        // Create an Azure Resource Group
        var resourceGroup = new ResourceGroup("example");

        // create the operational insights workspace
        var workspace =
          new Workspace
          (
            "example",
            new WorkspaceArgs
            {
                Location = resourceGroup.Location,
                ResourceGroupName = resourceGroup.Name,
                RetentionInDays = 30,
                Sku = new WorkspaceSkuArgs
                {
                    Name = WorkspaceSkuNameEnum.PerGB2018,
                },
                WorkspaceName = "example",
            }
          );

        // retrieve the workspace shared key
        // you may want to make this a secret
        var workspaceSharedKeys = Output.Tuple(resourceGroup.Name, workspace.Name).Apply(items =>
            GetSharedKeys.InvokeAsync(new GetSharedKeysArgs
            {
                ResourceGroupName = items.Item1,
                WorkspaceName = items.Item2,
            }));

        // provision the containergroup
        var containerGroup = new ContainerGroup("example", new ContainerGroupArgs
        {
            ContainerGroupName = "example",
            Containers =
            {
                new ContainerArgs
                {
                    Image = "nginx",
                    Name = "example",
                    Ports =
                    {
                        new ContainerPortArgs
                        {
                            Port = 80,
                        },
                    },
                    Resources = new ResourceRequirementsArgs
                    {
                        Requests = new ResourceRequestsArgs
                        {
                            Cpu = 1,
                            MemoryInGB = 1.5,
                        },
                    },
                },
            },
            Diagnostics = new ContainerGroupDiagnosticsArgs
            {
                LogAnalytics = new LogAnalyticsArgs
                {
                    LogType = "ContainerInsights",

                    WorkspaceId = workspace.CustomerId,
                    WorkspaceKey = workspaceSharedKeys.Apply(key => key.PrimarySharedKey!),
                },
            },
            Location = "WestUS",
            OsType = "Linux",
            ResourceGroupName = resourceGroup.Name,
        });
    }
}

关于c# - 创建Pulumi.AzureNative.OperationalInsights.Workspace后如何获取WorkspaceKey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71306263/

相关文章:

c# - 如何使用 WebJob 处理 Azure 队列上的大量消息?

amazon-web-services - Pulumi:如何为 CODE_DEPLOY Controller 配置 ECS 服务

azure - Pulumi 正在创建一个具有不同名称的 azure 资源组

docker - Pulumi 自动化 API 不运行 Pulumi CLI?

c# - Selenium c# : Wait Until Element is Present Without Waiting the Time Given, 否则超时

SQL 2016 PolyBase 计算下推到使用 WASBS 又名 Azure Blob 的 Hadoop HDI

azure - 如何使用 Powershell 获取 Azure 应用服务的 CPU 使用率?

c# - 在 C# 中将小时数转换为天数

c# - 数据表到对象的转换

c# - DateTime.ParseExact 的正确格式