【问题标题】:AWS cdk how to tag resources in c#?AWS cdk如何在c#中标记资源?
【发布时间】:2021-01-18 05:48:51
【问题描述】:

我正在尝试让标签在 C# AWS CDK 项目中工作,但除了 Depreciated 语法之外,我似乎什么都不能工作。比如下面的代码:

using Amazon.CDK;
using Amazon.CDK.AWS.S3;

namespace HelloCdk
{
    public class HelloCdkStack : Stack
    {
        internal HelloCdkStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props)  
        {
            // The code that defines your stack goes here
            var g_bucket = new Bucket(this, "GameContent", new BucketProps
            {
                Versioned = false, 
                PublicReadAccess = true,
                AutoDeleteObjects = true,              //delete and 
                RemovalPolicy = RemovalPolicy.DESTROY, //destroy bucket when CF Stack deleted.
                WebsiteIndexDocument = "index.html",
                WebsiteErrorDocument = "index.html"
            });

            Tag.Add(g_bucket, "key", "value");
        }
    }
}

当我发出cdk synth 命令时,上面的代码将成功。但是,我收到一条警告消息:

警告 CS0618:'Tag.Add(Construct, string, string, ITagProps?)' 已过时:'use "Tags.of(scope).add()"'

但是,当我尝试使用“Tags.of...”时,cdk synth 命令会引发以下错误:

错误 CS1061:“TagManager”不包含“of”的定义,并且没有可访问的扩展方法“of”...

我需要进行哪些更改才能使推荐的标记方法发挥作用?

【问题讨论】:

  • 这个答案可能会有所帮助:stackoverflow.com/a/64587781/14072498
  • 感谢咆哮,但您链接到的问题中的代码与使用 cdk init app --language csharp 命令时创建的代码的结构不同。该命令会创建一个类似于我原来的问题中发布的结构。

标签: c# asp.net-core asp.net-core-3.1 aws-cdk


【解决方案1】:

您的带有Tags.of 的源代码不应编译,因为没有为.NET 定义这样的方法。

文档指定Tags.Of - https://docs.aws.amazon.com/cdk/latest/guide/tagging.html

Tags.Of(myConstruct).Add("key", "value");

(!) 请注意,堆栈对象具有 Tags 属性,因此请确保您访问的不是堆栈的 Tags 属性,而是 Tags 类。

【讨论】:

  • 对不起,这也不起作用。依然报以下错误:error CS1061: 'TagManager' does not contain a definition for 'Of' and no accessible extension method 'of'...
  • 好的,我尝试复制您的问题并可能找到根本原因。由于 Stack 具有 Tags 属性,您可能会无意中访问该属性而不是 Tags 类。我更新了我的答案。
  • 感谢您花时间复制问题并提供更新的回复。现在说得通了——一切都在按预期进行。
猜你喜欢
  • 2020-09-24
  • 2020-03-31
  • 2021-04-02
  • 2021-10-05
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多