如何在 AWS SAM 中向私有 API 网关添加标签

Vol*_*reX 5 yaml amazon-web-services aws-sam

我已在 SAM 中使用 AWS::Serverless::API 创建了一个 API 网关,现在我想向网关添加标签,以便对具有相同标签的每个网关实施安全约束。

  Type: AWS::Serverless::Api
  Properties:
    Name: PrivateApi
    StageName: v1
    Tags:
      - Key: TagName
        Value: TagValue
    MethodSettings:
    ...
Run Code Online (Sandbox Code Playgroud)

查看文档后,我想出了上面的代码。正如文档所述,它以上面所示的方式支持标签,但是当我部署时,出现以下错误。

samcli.commands.validate.lib.exceptions.InvalidSamDocumentException: [InvalidResourceException('PrivateApi', "Type of property 'Tags' is invalid.")] ('PrivateApi', "Type of property 'Tags' is invalid.")

有关标签的文档链接:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html

任何对此的帮助将不胜感激!

Vol*_*reX 8

我发现使用 SAM 时,AWS::Serverless::API 页面和标签页面上的文档略有错误。

在 SAM 中表示标签的正确方法如下。

  Type: AWS::Serverless::Api
  Properties:
    Name: PrivateApi
    StageName: v1
    Tags:
      TagName: TagValue
    MethodSettings:
    ...
Run Code Online (Sandbox Code Playgroud)

这种微妙的差异使得 SAM 能够正确部署。顺便说一句,在 API 阶段,您可以验证标签是否已正确部署。