Используя AWS CDK, у меня есть CodePipeline, который создает артефакты сборки для 5 различных функций Lambda, а затем передает эти артефакты в качестве параметров в шаблон CloudFormation. Базовая настройка такая же, как в этом примере , и действие развертывания CloudFormation выглядит в основном так:
new CloudFormationCreateUpdateStackAction({
actionName: 'Lambda_CFN_Deploy',
templatePath: cdkBuildOutput.atPath('LambdaStack.template.json'),
stackName: 'LambdaDeploymentStack',
adminPermissions: true,
parameterOverrides: {
...props.lambdaCode.assign(lambdaBuildOutput.s3Location),
// more parameter overrides here
},
extraInputs: [lambdaBuildOutput],
})
Однако, когда я пытаюсь развернуть, я получаю эту ошибку:
1 validation error detected: Value at 'pipeline.stages.3.member.actions.1.member.configuration' failed to satisfy constraint:
Map value must satisfy constraint:
[Member must have length less than or equal to 1000, Member must have length greater than or equal to 1]
В документации CodePipeline указано, что значения в свойстве Configuration
ActionDeclaration могут содержать до 1000 символов. Если я посмотрю на вывод YAML из cdk synth
, свойство ParameterOverrides
будет содержать 1351 символ. Так что это проблема.
Как я могу обойти эту проблему? Возможно, мне понадобится добавить больше лямбда-функций в будущем, так что эта проблема будет только усугубляться. Частично проблема заключается в том, что код CDK вставляет 'LambdaSourceBucketNameParameter'
и 'LambdaSourceObjectKeyParameter'
в каждое имя пары контейнеров / объектов в выходных данных конфигурации, в результате чего я получаю 61 * 5 = 305 символов, потерянных только из-за многословия. Могу ли я получить часть пути, переопределив эти сгенерированные имена?