我已经使用 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"]
}
从之前发布的已删除答案中找出答案:)
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"
}
}