AWS CloudFormation 구성 속성 참조
CodePipeline 파이프라인을 구축하는 경우 AWS CloudFormation을 공급자로 사용해 파이프라인에 Deploy
작업을 추가합니다. 그런 다음 파이프라인에서 호출하는 AWS CloudFormation 작업과 해당 작업의 설정을 지정해야 합니다. 이 주제에서는 AWS CloudFormation 구성 속성에 대해 설명합니다. 속성을 지정하기 위해 CodePipeline 콘솔을 사용하거나 AWS CLI, CodePipeline API 또는 AWS CloudFormation 템플릿에 사용할 JSON 객체를 생성할 수 있습니다.
구성 속성(콘솔)
CodePipeline 콘솔
참고
파이프라인을 생성하는 경우 스택 생성 또는 업데이트 또는 변경 사항 세트 생성 또는 교체 작업 모드를 지정할 수 있습니다. 고급 섹션의 속성은 파이프라인을 편집하는 경우에만 사용할 수 있습니다.
- 작업 모드
-
연결된 스테이지를 처리할 때 CodePipeline에서 호출하는 AWS CloudFormation 작업입니다. 다음 작업 모드 중 하나를 선택합니다.
-
변경 사항 세트 생성 또는 교체는 변경 세트가 존재하지 않는 경우 스택 이름 및 제출하는 템플릿을 기반으로 변경 세트를 생성합니다. 변경 세트가 존재하는 경우 AWS CloudFormation에서는 해당 변경 세트를 삭제한 다음 새로 생성합니다.
-
스택 생성 또는 업데이트는 지정된 스택이 없는 경우 스택을 생성합니다. 스택이 있는 경우 AWS CloudFormation에서는 스택을 업데이트합니다. 이 작업을 사용하여 기존 스택을 업데이트합니다. CodePipeline은 스택을 대체하지 않습니다.
-
스택 삭제는 스택을 삭제합니다. 존재하지 않는 스택을 지정하면 이 작업이 스택을 삭제하지 않고 성공적으로 완료됩니다.
-
변경 사항 세트 실행은 변경 세트를 실행합니다.
-
불량 스택 교체는 지정된 스택이 없는 경우 스택을 생성합니다. 스택이 존재하는데 실패 상태이면(
ROLLBACK_COMPLETE
,ROLLBACK_FAILED
,CREATE_FAILED
,DELETE_FAILED
또는UPDATE_ROLLBACK_FAILED
로 보고됨) AWS CloudFormation에서는 해당 스택을 삭제한 다음 새로 생성합니다. 스택이 실패 상태가 아니면 AWS CloudFormation에서는 스택을 업데이트합니다. 이 작업을 사용하면 실패한 스택을 복구하거나 문제를 해결하지 않고 실패한 스택을 대체합니다. 이 모드는 일반적으로 테스트를 위해 선택합니다.
-
- 스택 이름
-
기존 스택 또는 생성할 스택과 연결된 이름입니다. 이름은 스택을 생성하는 AWS 리전에서 고유해야 합니다.
참고
스택 이름에는 영숫자(대소문자 구분)와 하이픈만 사용할 수 있습니다. 영문자로 시작해야 하고 128자 이하여야 합니다.
- 변경 세트 이름
-
지정된 스택에 대해 생성하려는 새 변경 세트 또는 기존 변경 세트의 이름입니다.
- 템플릿
-
AWS CloudFormation 템플릿 파일의 위치로,
형식을 따릅니다.ArtifactName
::TemplateFileName
- 템플릿 구성
-
템플릿 구성 파일의 위치로,
형식을 따릅니다. 템플릿 구성 파일에는 템플릿 파라미터 값, 스택 정책, 태그가 포함될 수 있습니다. 이 파일에 민감한 정보(예: 암호)를 포함하면 해당 파일에 대한 액세스를 제한합니다. 자세한 내용은 AWS CloudFormation 아티팩트 단원을 참조하십시오.ArtifactName
::TemplateConfigurationFileName
- 기능
-
특정 리소스가 포함된 스택의 경우 AWS CloudFormation에서 리소스를 생성 또는 업데이트할 수 있음을 나타내는 명시적으로 승인입니다. 예를 들어 스택 템플릿에 AWS Identity and Access Management(IAM) 리소스가 포함되어 있는 경우
CAPABILITY_IAM
을 지정해야 합니다. 자세한 내용은CreateStack
API 작업 요청 파라미터를 참조하세요.스택 템플릿에 IAM 리소스가 포함되어 있는 경우 이 속성을 지정해야 합니다.
여러 기능을 지정할 수 있습니다.
- 역할 이름
-
지정된 스택의 리소스에 대해 작동 중인 경우 AWS CloudFormation에서 수임하는 IAM 서비스 역할의 이름입니다.
- 출력 파일 이름
-
고급 섹션에서는 CodePipeline이 지정된 작업을 수행한 후 출력 아티팩트에 추가하는 출력 파일(예:
CreateStackOutput.json
)을 지정할 수 있습니다. 출력 아티팩트에는 AWS CloudFormation 템플릿의Outputs
섹션의 내용으로 구성된 JSON 파일이 들어 있습니다.이름을 지정하지 않으면 CodePipeline에서는 출력 아티팩트를 생성하지 않습니다.
- 파라미터 재정의
-
파라미터는 템플릿에서 정의되며, 이를 통해 스택을 생성하거나 업데이트 할 때 사용자 지정 값을 입력할 수 있습니다. 템플릿 구성 파일의 템플릿 파라미터 값을 재정의하는 JSON 객체를 지정할 수 있습니다. 스택 템플릿에는 모든 파라미터 이름이 존재해야 합니다. 자세한 내용은 Defining a parameter in a template를 참조하세요.
참고
ParameterOverrides
속성에 저장할 수 있는 JSON 객체의 최대 크기 제한은 1킬로바이트입니다.템플릿 구성 파일을 사용하여 대부분의 파라미터 값을 지정하는 것이 좋습니다. 파라미터 재정의를 사용하여 동적 파라미터 값만 지정합니다. 동적 파라미터는 파이프라인을 실행할 때까지 알 수 없습니다.
다음 예에서는 파라미터 재정의 기능을 사용하여
ParameterName
파라미터의 값을 정의합니다. 이 기능은 CodePipeline 입력 아티팩트에서 값을 검색합니다. 파라미터 재정의 기능에 대한 자세한 내용은 CodePipeline 파이프라인에서 파라미터 재정의 함수 사용 단원을 참조하세요.{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }
구성 속성(JSON 객체)
단계 작업의 공급자로 CloudFormation
을 지정하는 경우 Configuration
속성 내에서 다음 속성을 정의합니다. AWS CLI, CodePipeline API 또는 AWS CloudFormation 템플릿에 JSON 객체를 사용합니다. 예제는 연습: 테스트 및 프로덕션 스택용 파이프라인 빌드 및 AWS CloudFormation 구성 속성 참조 단원을 참조하세요.
ActionMode
-
연결된 스테이지를 처리할 때 CodePipeline에서 호출하는 AWS CloudFormation 작업입니다. 다음 작업 모드 중 하나만 지정합니다.
-
CHANGE_SET_EXECUTE
: 변경 세트를 실행합니다. -
CHANGE_SET_REPLACE
: 변경 세트가 존재하지 않는 경우 스택 이름 및 제출하는 템플릿을 기반으로 변경 세트를 생성합니다. 변경 세트가 존재하는 경우 AWS CloudFormation에서는 해당 변경 세트를 삭제한 다음 새로 생성합니다. -
CREATE_UPDATE
: 지정된 스택이 존재하지 않는 경우 스택을 생성합니다. 스택이 있는 경우 AWS CloudFormation에서는 스택을 업데이트합니다. 이 작업을 사용하여 기존 스택을 업데이트합니다. CodePipeline은 스택을 대체하지 않습니다. -
DELETE_ONLY
: 스택을 삭제합니다. 존재하지 않는 스택을 지정하면 이 작업이 스택을 삭제하지 않고 성공적으로 완료됩니다. -
REPLACE_ON_FAILURE
: 지정된 스택이 존재하지 않는 경우 스택을 생성합니다. 스택이 존재하는데 실패 상태이면(ROLLBACK_COMPLETE
,ROLLBACK_FAILED
,CREATE_FAILED
,DELETE_FAILED
또는UPDATE_ROLLBACK_FAILED
로 보고됨) AWS CloudFormation에서는 스택을 삭제한 다음 새 스택을 생성합니다. 스택이 실패 상태가 아니면 AWS CloudFormation에서는 스택을 업데이트합니다. 이 작업을 사용하면 실패한 스택을 복구하거나 문제를 해결하지 않고 실패한 스택을 자동으로 대체합니다. 이 모드는 일반적으로 테스트를 위해 선택합니다.
이 속성은 필수입니다.
-
Capabilities
-
특정 리소스가 포함된 스택의 경우 AWS CloudFormation에서 리소스를 생성 또는 업데이트할 수 있음을 나타내는 명시적으로 승인입니다. 예를 들어 스택 템플릿에 AWS Identity and Access Management(IAM) 리소스가 포함되어 있는 경우
CAPABILITY_IAM
을 지정해야 합니다. 자세한 내용은CreateStack
API 작업 요청 파라미터를 참조하세요.이 속성은 조건부입니다. 스택 템플릿에 IAM 리소스가 포함되어 있는 경우 이 속성을 지정해야 합니다.
여러 기능을 지정할 수 있습니다. 다음 예제에서는 템플릿에
CAPABILITY_IAM
및CAPABILITY_AUTO_EXPAND
속성을 추가합니다. ChangeSetName
-
지정된 스택에 대해 생성하려는 새 변경 세트 또는 기존 변경 세트의 이름입니다.
작업 모드
CHANGE_SET_REPLACE
및CHANGE_SET_EXECUTE
의 경우 이 속성은 필수입니다. 기타 모든 작업 모드의 경우 이 속성은 무시됩니다. OutputFileName
-
출력 파일의 이름(예:
CreateStackOutput.json
)입니다. CodePipeline에서는 지정된 작업을 수행한 후 파일을 출력 아티팩트에 추가합니다. 출력 아티팩트에는 AWS CloudFormation 템플릿의Outputs
섹션의 내용으로 구성된 JSON 파일이 들어 있습니다.이 속성은 선택 사항입니다. 이름을 지정하지 않으면 CodePipeline에서는 출력 아티팩트를 생성하지 않습니다.
ParameterOverrides
-
파라미터는 템플릿에서 정의되며, 이를 통해 스택을 생성하거나 업데이트 할 때 사용자 지정 값을 입력할 수 있습니다. 템플릿 구성 파일의 템플릿 파라미터 값을 재정의하는 JSON 객체를 지정할 수 있습니다. 스택 템플릿에는 모든 파라미터 이름이 존재해야 합니다. 자세한 내용은 Defining a parameter in a template를 참조하세요.
다음 예제는
InstanceType
및KeyName
파라미터 재정의를 템플릿에 추가합니다.참고
ParameterOverrides
속성에 저장할 수 있는 JSON 객체의 최대 크기는 1KB입니다.템플릿 구성 파일을 사용하여 대부분의 파라미터 값을 지정하는 것이 좋습니다. 파라미터 재정의를 사용하여 동적 파라미터 값만 지정합니다. 동적 파라미터 값은 파이프라인을 실행할 때까지 알 수 없습니다.
다음 예에서는 파라미터 재정의 기능을 사용하여
ParameterName
파라미터의 값을 정의합니다. 이 기능은 CodePipeline 입력 아티팩트에서 값을 검색합니다. 파라미터 재정의 기능에 대한 자세한 내용은 CodePipeline 파이프라인에서 파라미터 재정의 함수 사용 단원을 참조하세요.{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }
이 속성은 선택 사항입니다.
RoleArn
-
스택의 리소스에 대해 작동 중인 경우 AWS CloudFormation이 수임하는 IAM 서비스 역할의 Amazon 리소스 이름(ARN)입니다.
CREATE_UPDATE
,REPLACE_ON_FAILURE
,DELETE_ONLY
및CHANGE_SET_REPLACE
작업 모드의 경우 이 속성은 필수입니다. 변경 세트를 실행할 때RoleArn
이 적용되지 않습니다. 변경 세트를 생성하기 위해 CodePipeline을 사용하지 않는 경우 변경 세트 또는 스택에 연결된 역할이 있는지 확인해야 합니다. StackName
-
기존 스택 또는 생성하려는 스택의 이름입니다.
모든 작업 모드의 경우 이 속성은 필수입니다.
TemplateConfiguration
-
TemplateConfiguration
은 템플릿 구성 파일입니다. 이 작업의 입력 아티팩트에 파일을 포함합니다. 템플릿 구성 파일 이름은 다음 형식을 따릅니다.Artifactname
::TemplateConfigurationFileName
Artifactname
은 CodePipeline에 표시될 때 입력 아티팩트 이름입니다. 예를 들어, 아티팩트 이름이SourceArtifact
이며 파일 이름이test-configuration.json
인 소스 단계는 다음 예제에 표시된 대로TemplateConfiguration
이름을 생성합니다."TemplateConfiguration": "SourceArtifact::test-configuration.json"
템플릿 구성 파일에는 템플릿 파라미터 값과 스택 정책을 포함할 수 있습니다. 이 파일에 민감한 정보(예: 암호)를 포함하면 해당 파일에 대한 액세스를 제한합니다. 예제 템플릿 구성 파일은 AWS CloudFormation 아티팩트 단원을 참조하십시오.
이 속성은 선택 사항입니다.
TemplatePath
-
TemplatePath
는 AWS CloudFormation 템플릿 파일을 나타냅니다. 이 작업의 입력 아티팩트에 파일을 포함합니다. 파일 이름은 다음과 같은 형식을 따릅니다.Artifactname
::TemplateFileName
Artifactname
은 CodePipeline에 표시될 때 입력 아티팩트 이름입니다. 예를 들어 아티팩트 이름이SourceArtifact
이며 파일 이름이template.yaml
인 소스 단계는 다음 예제에 표시된 대로TemplatePath
이름을 생성합니다."TemplatePath": "SourceArtifact::template.yaml"
작업 모드
CREATE_UPDATE
,REPLACE_ON_FAILURE
및CHANGE_SET_REPLACE
의 경우 이 속성은 필수입니다. 기타 모든 작업 모드의 경우 이 속성은 무시됩니다.
다음 사항도 참조하세요.
이러한 파라미터를 이용할 때 참조할 수 있는 관련 리소스는 다음과 같습니다.
-
CodePipeline의 AWS CloudFormation 작업 파라미터에 대한 자세한 내용을 알아보려면 AWS CodePipeline 사용 설명서의 AWS CloudFormation 작업 구성 참조를 참조하세요.
-
Owner
필드 또는configuration
필드와 같은 작업 공급자별 예제 템플릿 값은 AWS CodePipeline 사용 설명서의 Action structure reference에서 확인하세요. -
YAML 또는 JSON 형식의 예제 파이프라인 스택 템플릿을 다운로드하려면 AWS CodePipeline 사용 설명서의 AWS CloudFormation이 포함된 파이프라인 생성에서 자습서를 참조하세요.
-
템플릿 예제 구성 파일은 AWS CloudFormation 아티팩트를 참조하세요.