用于 Appconfig 枚举的 AWS 和无服务器

问题描述 投票:0回答:1

我已经使用 AWS appConfig 成功创建了一个云形成模板,该模板具有 4 个枚举属性的功能标志。但是,除了功能标志的非常基本的名称之外,我无法将其移至无服务器 yml 文件。

我还没有看到任何此类配置的

Serverless.com
yml 示例。如果有人对 yml 文件这样做过,请帮助提供一个示例。

我的 yml 配置内容是这样定义的 - 无论我做什么,我都会不断收到错误

13:06:25 UPDATE_FAILED:FeatureFlagConfigurationVersion(AWS::AppConfig::HostedConfigurationVersion)
13:06:25 调用扩展 AppConfig 功能标志帮助程序时出错:提供的“内容”格式错误(服务:AmazonAppConfig;状态代码:400;错误代码:BadRequestException;请求 ID:...;代理:null)

我尝试过类似的云形成yaml配置并且它有效,所以我真的不知道。

custom:
  flagValues: ['value1', 'value2', 'value3']

    FeatureFlagApplication:
      Type: AWS::AppConfig::Application
      Properties:
        Name: "serverless-feature-flag-${self:provider.stage}"
        Description: "Serverless appConfig feature-flag for toggles"
        Tags:
          - Key: App
            Value: "FeatureFlagApplication"
          - Key: Stage
            Value: "${self:provider.stage}"
    # the application environment
    FeatureFlagEnvironment:
      Type: AWS::AppConfig::Environment
      Properties:
        ApplicationId: !Ref FeatureFlagApplication
        Name: "feature-flag-environment"
        Description: "Feature Flag Environment"
        Tags:
          - Key: App
            Value: "FeatureFlagApplication"
          - Key: Stage
            Value: "${self:provider.stage}"
    # configuration profile
    FeatureFlagAppConfigProfile:
      Type: AWS::AppConfig::ConfigurationProfile
      Properties:
        ApplicationId: !Ref FeatureFlagApplication
        Name: "feature-flag-app-profile-${self:provider.stage}"
        LocationUri: "hosted"
        Type: AWS.AppConfig.FeatureFlags
    # configuration
    FeatureFlagConfigurationVersion:
      Type: AWS::AppConfig::HostedConfigurationVersion
      Properties:
        ApplicationId: !Ref FeatureFlagApplication
        ConfigurationProfileId: !Ref FeatureFlagAppConfigProfile
        Description: "Feature Flag Application Config"
        ContentType: "application/json"
        Content: >
              {
                "TITLE": "feature-flags",
                "TYPE": "object",
                "PROPERTIES": {
                  "FLAG1": {
                    "TYPE": "string",
                    "ENUM": ${self:custom.flagValues}
                  },
                  "FLAG2": {
                    "TYPE": "string",
                    "ENUM": ${self:custom.flagValues}
                  },
                  "FLAG3": {
                    "TYPE": "string",
                    "ENUM": ${self:custom.flagValues}
                  },
                  "FLAG4": {
                    "TYPE": "string",
                    "ENUM": ${self:custom.flagValues}
                  }
                },
                "REQUIRED": ["FLAG1", "FLAG2", "FLAG3", "FLAG4"]
              }
amazon-web-services serverless-framework serverless-architecture aws-app-config serverless.com
1个回答
0
投票

从之前发布的已删除答案中找出答案:)

Content: {
  "Fn::ToJsonString": {
    "flags": {
      "abcd-toggles": {
        "attributes": {
          "a-toggle": {
            "constraints": {
              "enum": [
                "A",
                "B",
                "C"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "b-toggle": {
            "constraints": {
              "enum": [
                "A",
                "B",
                "C"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "c-toggle": {
            "constraints": {
              "enum": [
                "A",
                "B",
                "C"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "d-toggle": {
            "constraints": {
              "enum": [
                "A",
                "B",
                "C"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "name": "abcd-toggles"
      }
    },
    "values": {
      "abcd-toggles": {
        "a-toggle": "A",
        "b-toggle": "A",
        "c-toggle" : "A",
        "d-toggle": "A",
        "enabled": true,
      }
    },
    "version": "1"
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.