변수 참조 - AWS CodePipeline

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

변수 참조

이 단원은 참조용입니다. 변수 생성에 대한 자세한 내용은 변수 작업 단원을 참조하십시오.

변수를 사용하면 파이프라인 실행 또는 작업 실행 시 결정되는 값으로 파이프라인 작업을 구성할 수 있습니다.

일부 작업 공급자는 정의된 변수 집합을 생성합니다. 해당 작업 공급자의 기본 변수 키에서 선택합니다(예: 커밋 ID).

중요

보안 파라미터를 전달할 때는 값을 직접 입력하지 마십시오. 값은 일반 텍스트로 렌더링되므로 읽을 수 있습니다. 보안상의 이유로 암호가 포함된 일반 텍스트는 사용하지 마십시오. AWS Secrets Manager 를 사용하여 보안 암호를 저장하는 것이 좋습니다.

변수 사용 예제를 보려면 step-by-step:

변수 제한

제한 정보는 의 할당량 AWS CodePipeline 단원을 참조하십시오.

참고

작업 구성 필드에 변수 구문을 입력할 때 구성 필드의 1000자 제한을 초과하지 마십시오. 이 제한을 초과하면 확인 오류가 반환됩니다.

개념

이 단원에서는 변수 및 네임스페이스와 관련된 주요 용어와 개념을 설명합니다.

Variables

변수는 파이프라인에서 작업을 동적으로 구성하는 데 사용할 수 있는 키-값 페어입니다. 현재 이러한 변수를 사용할 수 있는 세 가지 방법이 있습니다.

  • 각 파이프라인 실행을 시작할 때 묵시적으로 사용할 수 있는 변수 집합이 있습니다. 이 집합에는 현재 파이프라인 실행의 ID인 PipelineExecutionId이 포함되어 있습니다.

  • 파이프라인 수준의 변수는 파이프라인이 생성되고 파이프라인 런타임에서 해결될 때 정의됩니다.

    파이프라인 생성 시 파이프라인 수준 변수를 지정하고 파이프라인 실행 시 값을 제공할 수 있습니다.

  • 작업이 실행될 때 변수 집합을 생성하는 작업 유형이 있습니다. 의 일부인 outputVariables 필드를 검사하여 작업에서 생성된 변수를 볼 수 있습니다ListActionExecutionsAPI. 작업 공급자별로 사용 가능한 키 이름의 목록은 파이프라인 작업에 사용할 수 있는 변수 단원을 참조하십시오. 각 작업 유형이 생성하는 변수를 확인하려면 섹션을 참조하세요 CodePipeline 작업 구조 참조.

작업 구성에서 이러한 변수를 참조하려면 올바른 네임스페이스와 함께 변수 참조 구문을 사용해야 합니다.

변수 워크플로의 예는 변수 구성 단원을 참조하십시오.

네임스페이스

변수를 고유하게 참조할 수 있도록 하려면 해당 변수를 네임스페이스에 할당해야 합니다. 네임스페이스에 할당된 변수 집합이 있다면 다음 구문과 함께 네임스페이스 및 변수 키를 사용하여 작업 구성에서 이를 참조할 수 있습니다.

#{namespace.variable_key}

세 가지 유형의 네임스페이스 하에서 변수를 할당할 수 있습니다.

  • 코드 파이프라인 예약 네임스페이스

    각 파이프라인 실행을 시작할 때 사용할 수 있는 암묵적 변수 집합에 할당되는 네임스페이스입니다. 이 네임스페이스는 codepipeline입니다. 변수 참조 예:

    #{codepipeline.PipelineExecutionId}
  • 파이프라인 수준의 변수 네임스페이스

    이는 파이프라인 수준의 변수에 할당된 네임스페이스입니다. 파이프라인 수준의 모든 변수에 대한 네임스페이스는 variables입니다. 변수 참조 예:

    #{variables.variable_name}
  • 작업에 할당된 네임스페이스

    작업에 할당하는 네임스페이스입니다. 작업에서 생성되는 모든 변수가 이 네임스페이스에 속합니다. 작업에서 생성되는 변수를 다운스트림 작업 구성에서 사용할 수 있도록 하려면 네임스페이스를 사용하여 생성 작업을 구성해야 합니다. 네임스페이스는 파이프라인 정의에서 고유해야 하며 어떤 아티팩트 이름과도 충돌해서는 안 됩니다. 다음은 네임스페이스 SourceVariables로 구성된 작업에 대한 변수 참조 예제입니다.

    #{SourceVariables.VersionId}

변수 사용 사례

다음은 파이프라인 수준의 가장 일반적인 몇 가지 변수 사용 사례로, 특정 요구 사항에 맞게 변수를 사용하는 방법을 결정하는 데 도움이 됩니다.

  • 파이프라인 수준의 변수는 작업 구성에 대한 입력에 약간의 변형이 있는 동일한 파이프라인을 매번 사용하려는 CodePipeline 고객을 위한 것입니다. 파이프라인을 시작하는 모든 개발자는 파이프라인 시작 시 UI에 변수 값을 추가합니다. 이 구성에서는 해당 실행에 대한 파라미터만 전달합니다.

  • 파이프라인 수준 변수를 사용하면 파이프라인의 작업에 동적 입력을 전달할 수 있습니다. 파라미터화된 파이프라인을 동일한 파이프라인의 다른 버전을 유지 관리하거나 복잡한 파이프라인을 생성할 필요 CodePipeline 없이 로 마이그레이션할 수 있습니다.

  • 파이프라인 수준 변수를 사용하여 입력 파라미터를 전달하면 각 실행에서 파이프라인을 재사용할 수 있습니다. 예를 들어 프로덕션 환경에 배포할 버전을 지정하려는 경우 파이프라인을 복제하지 않아도 됩니다.

  • 단일 파이프라인을 사용하여 여러 빌드 및 배포 환경에 리소스를 배포할 수 있습니다. 예를 들어, CodeCommit 리포지토리가 있는 파이프라인의 경우 지정된 브랜치 및 대상 배포 환경에서 를 배포하려면 CodeBuild 파이프라인 CodeDeploy 수준에서 파라미터를 전달하면 됩니다.

변수 구성

파이프라인 구조의 파이프라인 수준 또는 작업 수준에서 변수를 구성할 수 있습니다.

파이프라인 수준에서 변수 구성

파이프라인 수준에서 변수를 하나 이상 추가할 수 있습니다. CodePipeline 작업 구성에서 이 값을 참조할 수 있습니다. 파이프라인을 생성할 때 변수 이름, 기본값, 설명을 추가할 수 있습니다. 변수는 실행 시 확인됩니다.

참고

파이프라인 수준에서 변수의 기본값이 정의되지 않은 경우 변수는 필요한 것으로 간주됩니다. 파이프라인을 시작할 때 모든 필수 변수에 대한 재정의를 지정해야 합니다. 그렇지 않으면 파이프라인 실행이 실패하고 검증 오류가 발생합니다.

파이프라인 구조의 변수 속성을 사용하여 파이프라인 수준에서 변수를 제공합니다. 다음 예제에서 변수 Variable1 값은 Value1입니다.

"variables": [ { "name": "Variable1", "defaultValue": "Value1", "description": "description" } ]

파이프라인 JSON 구조의 예는 섹션을 참조하세요파이프라인, 단계 및 작업 생성.

파이프라인 실행 시 전달되는 파이프라인 수준 변수에 대한 자습서는 자습서: 파이프라인 수준 변수 사용을 참조하세요.

단, 모든 종류의 소스 작업에서 파이프라인 수준 변수를 사용하는 것은 지원되지 않습니다.

참고

파이프라인 내 일부 작업에 variables 네임스페이스가 이미 사용되고 있는 경우 작업 정의를 업데이트하고 충돌하는 작업에 사용할 다른 네임스페이스를 선택해야 합니다.

작업 수준에서 변수 구성

작업의 네임스페이스를 선언하여 변수를 생성하도록 작업을 구성합니다. 작업은 변수를 생성하는 작업 공급자 중 하나여야 합니다. 그렇지 않으면 파이프라인 수준의 변수가 사용 가능한 변수가 됩니다.

다음과 같이 네임스페이스를 선언합니다.

  • 콘솔의 작업 편집 페이지에서 Variable namespace(변수 네임스페이스)에 네임스페이스를 입력합니다.

  • JSON 파이프라인 구조의 namespace 파라미터 필드에 네임스페이스를 입력합니다.

이 예제에서는 라는 이름으로 CodeCommit 원본 작업에 namespace 파라미터를 추가합니다SourceVariables. 이렇게 하면 CommitId 같은 작업 공급자가 사용할 수 있는 변수를 생성하도록 작업이 구성됩니다.

{ "name": "Source", "actions": [ { "outputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Source", "namespace": "SourceVariables", "configuration": { "RepositoryName": "MyRepo", "BranchName": "mainline", "PollForSourceChanges": "false" }, "inputArtifacts": [], "region": "us-west-2", "actionTypeId": { "provider": "CodeCommit", "category": "Source", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

그런 다음, 이전 작업에서 생성된 변수를 사용하도록 다운스트림 작업을 구성합니다. 그 방법은 다음과 같습니다.

  • 콘솔의 작업 편집 페이지에서 작업 구성 필드에 변수 구문을 입력(다운스트림 작업의 경우)

  • JSON 파이프라인 구조의 작업 구성 필드에 변수 구문(다운스트림 작업의 경우) 입력

이 예제에서 빌드 작업의 구성 필드에는 작업 실행 시 업데이트되는 환경 변수가 표시됩니다. 이 예제에서는 #{codepipeline.PipelineExecutionId}을 사용하여 실행 ID에 대한 네임스페이스와 변수를 지정하고 #{SourceVariables.CommitId}를 사용하여 커밋 ID에 대한 네임스페이스 및 변수를 지정합니다.

{ "name": "Build", "actions": [ { "outputArtifacts": [ { "name": "BuildArtifact" } ], "name": "Build", "configuration": { "EnvironmentVariables": "[{\"name\":\"Release_ID\",\"value\":\"#{codepipeline.PipelineExecutionId}\",\"type\":\"PLAINTEXT\"},{\"name\":\"Commit_ID\",\"value\":\"#{SourceVariables.CommitId}\",\"type\":\"PLAINTEXT\"}]", "ProjectName": "env-var-test" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-west-2", "actionTypeId": { "provider": "CodeBuild", "category": "Build", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

변수 확인

작업이 파이프라인 실행의 일부로 실행될 때마다 생성되는 변수를 생성 작업 이후에 수행되도록 보장된 모든 작업에 사용할 수 있습니다. 소비 작업에서 이러한 변수를 사용하려면 앞의 예제에 나와 있는 구문을 사용하여 소비 작업의 구성에 변수를 추가할 수 있습니다. 소비 작업을 수행하기 전에 는 작업 실행을 시작하기 전에 구성에 있는 모든 변수 참조를 CodePipeline 해결합니다.

예: 여러 작업에 대한 변수

변수에 대한 규칙

다음 규칙은 변수 구성에 도움이 됩니다.

  • 새 작업 속성을 사용하거나 작업을 편집하여 작업의 네임스페이스와 변수를 지정합니다.

  • 파이프라인 생성 마법사를 사용하면 콘솔에서 마법사에서 생성된 각 작업에 대해 네임스페이스가 생성됩니다.

  • 네임스페이스가 지정되지 않은 경우, 해당 작업에서 생성된 변수는 작업 구성에서 참조할 수 없습니다.

  • 작업에서 생성된 변수를 참조하려면 변수를 생성하는 작업 이후에 참조 작업이 이루어져야 합니다. 이는 해당 작업이 변수를 생성하는 작업보다 나중 단계에 있거나 동일한 단계이지만 실행 순서가 거 빠르다는 것을 의미합니다.

파이프라인 작업에 사용할 수 있는 변수

작업 공급자는 작업에서 생성할 수 있는 변수를 결정합니다.

변수 관리 step-by-step 절차는 섹션을 참조하세요변수 작업.

정의된 변수 키가 있는 작업

선택이 가능한 네임스페이스와 달리 다음과 같은 작업은 편집이 불가능한 변수 키를 사용합니다. 예를 들어 Amazon S3 작업 공급자의 경우, ETagVersionId 변수 키만 사용할 수 있습니다.

또한 각 실행에는 파이프라인 릴리스 ID와 같이 실행에 대한 데이터를 포함하는 CodePipeline생성된 파이프라인 변수 집합이 있습니다. 이러한 변수는 파이프라인의 모든 작업에서 사용될 수 있습니다.

CodePipeline 실행 ID 변수

CodePipeline 실행 ID 변수
공급자 변수 키 예시 값 예제 변수 구문
CodePipeline PipelineExecutionId 8abc75f0-fbf8-4f4c-bfEXAMPLE #{codepipeline.PipelineExecutionId}

Amazon ECR 작업 출력 변수

Amazon ECR 변수
변수 키 예시 값 예제 변수 구문
ImageDigest sha256:EXAMPLE1122334455 #{SourceVariables.ImageDigest}
ImageTag 최신 #{SourceVariables.ImageTag}
ImageURI 11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest #{SourceVariables.ImageURI}
RegistryId EXAMPLE12233 #{SourceVariables.RegistryId}
RepositoryName my-image-repo #{SourceVariables.RepositoryName}

AWS CloudFormation StackSets 작업 출력 변수

AWS CloudFormation StackSets 변수
변수 키 예시 값 예제 변수 구문
OperationId 11111111-2bbb-111-2bbb-11111example #{DeployVariables.OperationId}
StackSetId my-stackset:1111aaaa-1111-2222-2bbb-11111example #{DeployVariables.StackSetId}

CodeCommit 작업 출력 변수

CodeCommit 변수
변수 키 예시 값 예제 변수 구문
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName 개발 #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage 버그 수정(최대 크기 100KB) #{SourceVariables.CommitMessage}
CommitterDate 2019-10-29T03:32:21Z #{SourceVariables.CommitterDate}
RepositoryName myCodeCommit리포지토리 #{SourceVariables.RepositoryName}

CodeStarSourceConnection 작업 출력 변수

CodeStarSourceConnection 변수(Bitbucket Cloud, GitHub, GitHub Enterprise Repository 및 GitLab.com)
변수 키 예시 값 예제 변수 구문
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName 개발 #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage 버그 수정(최대 크기 100KB) #{SourceVariables.CommitMessage}
ConnectionArn arn:aws:codestar-connections:region:account-id:연결/connection-id #{SourceVariables.ConnectionArn}
FullRepositoryName 사용자 이름/GitHubRepo #{SourceVariables.FullRepositoryName}

GitHub 작업 출력 변수(GitHub 작업 버전 1)

GitHub 변수(GitHub 작업 버전 1)
변수 키 예시 값 예제 변수 구문
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName 기본 #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage

버그 수정(최대 크기 100KB)

#{SourceVariables.CommitMessage}
CommitterDate 2019-10-29T03:32:21Z #{SourceVariables.CommitterDate}
CommitUrl #{SourceVariables.CommitUrl}
RepositoryName myGitHub리포지토리 #{SourceVariables.RepositoryName}

S3 작업 출력 변수

S3 변수
변수 키 예시 값 예제 변수 구문
ETag example28be1c3 #{SourceVariables.ETag}
VersionId exampleta_IUQCv #{SourceVariables.VersionId}

사용자가 구성한 변수 키를 사용한 작업

CodeBuild AWS CloudFormation, 및 Lambda 작업의 경우 변수 키는 사용자가 구성합니다.

CloudFormation 작업 출력 변수

AWS CloudFormation 변수
변수 키 예제 변수 구문

AWS CloudFormation 작업의 경우 변수는 스택 템플릿의 Outputs 섹션에 지정된 모든 값에서 생성됩니다. 출력을 생성하는 유일한 CloudFormation 작업 모드는 스택 생성, 스택 업데이트 및 변경 세트 실행과 같이 스택을 생성하거나 업데이트하는 작업 모드입니다. 변수를 생성하는 해당 작업 모드는 다음과 같습니다.

  • CREATE_UPDATE

  • CHANGE_SET_EXECUTE

  • CHANGE_SET_REPLACE

  • REPLACE_ON_FAILURE

이러한 작업 모드에 대한 자세한 내용은 AWS CloudFormation 작업 참조 배포 단원을 참조하세요. AWS CloudFormation 출력 변수를 사용하는 파이프라인에서 AWS CloudFormation 배포 작업을 사용하여 파이프라인을 생성하는 방법을 보여주는 자습서는 섹션을 참조하세요자습서: AWS CloudFormation 배포 작업의 변수를 사용하는 파이프라인 생성.
#{DeployVariables.StackName}

CodeBuild 작업 출력 변수

CodeBuild 변수
변수 키 예제 변수 구문

CodeBuild 작업의 경우 변수는 내보낸 환경 변수에서 생성된 값에서 생성됩니다. 에서 작업을 편집 CodeBuild CodePipeline 하거나 빌드 사양에 CodeBuild 환경 변수를 추가하여 환경 변수를 설정합니다.

CodeBuild 빌드 사양에 지침을 추가하여 내보낸 변수 섹션 아래에 환경 변수를 추가합니다.AWS CodeBuild 사용 안내서의 env/exported-variables를 참조하세요.

#{BuildVariables.EnvVar}

Lambda 작업 출력 변수

Lambda 변수
변수 키 예제 변수 구문
Lambda 작업은 PutJobSuccessResult API 요청의 outputVariables 섹션에 포함된 모든 키-값 페어를 변수로 생성합니다.

업스트림 작업(CodeCommit)의 변수를 사용하고 출력 변수를 생성하는 Lambda 작업이 포함된 자습서는 섹션을 참조하세요자습서: Lambda 호출 작업과 함께 변수 사용.

#{TestVariables.testRunId}