Я пытаюсь создать простую (на данный момент) интеграцию облачного формирования / конвейера кода, но я получаю ошибку при создании набора изменений для облачной информации.
У меня есть конвейер кода, строящий вывод YML (шаблон ниже), используя код: - aws cloudformation package --template template.json --s3-bucket $S3_BUCKET --output-template template-export.yml
, который затем экспортируется в формирование облака для создания набора изменений.
Когда он пытается создать набор изменений, я получаю эту ошибку Parameters: [ProjectId] must have values (Service: AmazonCloudFormation; Status Code: 400; Error Code: ValidationError; Request ID: 4d20b24f-fd8b-11e8-9014-599dd1a18437)
Что идет не так?
Ввод template.json
{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"ProjectId": {
"Type": "String",
"Description": "Codepipeline cloudformation test"
},
"Stage": {
"Default": "",
"Type": "String",
"Description": "I am guessing some thing goes here"
}
},
"Resources": {
"LambdaExecutionRole": {
"Type": "AWS::IAM::Role",
"Description": "Creating service role in IAM for AWS Lambda",
"Properties": {
"RoleName": {
"Fn::Sub": "CodeStar-${ProjectId}-Execution${Stage}"
},
"AssumeRolePolicyDocument": {
"Statement": [{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"lambda.amazonaws.com"
]
}
}]
},
"ManagedPolicyArns": [
"arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
],
"Path": "/"
}
},
"CreateUser": {
"Type": "AWS::Lambda::Function",
"Properties": {
"Handler": "API/CreateUser.handler",
"Code": "API/CreateUser.py",
"Role": {
"Fn::GetAtt": [
"LambdaExecutionRole",
"Arn"
]
},
"Runtime": "python2.7",
}
}
}
}
Вывод из codebuild template-export.yml
AWSTemplateFormatVersion: '2010-09-09'
Parameters:
ProjectId:
Description: Codepipeline cloudformation test
Type: String
Stage:
Default: ''
Description: I am guessing some thing goes here
Type: String
Resources:
CreateUser:
Properties:
Code:
S3Bucket: xxxx
S3Key: xxxx
Handler: API/CreateUser.handler
Role:
Fn::GetAtt:
- LambdaExecutionRole
- Arn
Runtime: python2.7
Type: AWS::Lambda::Function
LambdaExecutionRole:
Description: Creating service role in IAM for AWS Lambda
Properties:
AssumeRolePolicyDocument:
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Path: /
RoleName:
Fn::Sub: CodeStar-${ProjectId}-Execution${Stage}
Type: AWS::IAM::Role
Другая информация:
Облачная информация использует IAM с полными привилегиями администратора.allow *
Создание настроек набора изменений:
- Режим действия: создание или замена набора изменений
- Шаблон: BuildArtifact :: template-export.yml
- Возможности: CAPABILITY_NAMED_IAM
- Имя роли: cloudformation-admin
- Входные артефакты: BuildArtifact