AWS CDK에서 파라미터를 사용하는 방법은 무엇입니까?
12871 단어 cdk
CDK 매개변수 정의
선택적 매개변수 섹션을 사용하여 템플릿을 사용자 정의하십시오. 파라미터를 사용하면 스택을 생성하거나 업데이트할 때마다 템플릿에 사용자 지정 값을 입력할 수 있습니다.
매개변수를 정의하려면 CfnParameter 구성을 사용합니다.
// parameter of type String
const applicationPrefix = new CfnParameter(this, 'prefix', {
description: 'parameter of type String',
type: 'String',
allowedPattern: '^[a-z0-9]*$', // allowed pattern for the parameter
minLength: 3, // minimum length of the parameter
maxLength: 20, // maximum length of the parameter
}).valueAsString // get the value of the parameter as string
console.log('application Prefix 👉', applicationPrefix)
// parameter of type Number
const applicationPort = new CfnParameter(this, 'port', {
description: 'parameter of type Number',
type: 'Number',
minValue: 1, // minimum value of the parameter
maxValue: 65535, // maximum value of the parameter
allowedValues: ['8080', '8081'], // allowed values of the parameter
}).valueAsNumber // get the value of the parameter as number
console.log('application Port 👉', applicationPort)
// parameter of type CommaDelimitedList
const applicationDomains = new CfnParameter(this, 'domains', {
description: 'parameter of type CommaDelimitedList',
type: 'CommaDelimitedList',
}).valueAsList // get the value of the parameter as list of strings
console.log('application Domains 👉', applicationDomains)
매개변수의 이름(논리 ID)은 스택 내의 이름과 위치에서 파생됩니다. 따라서 매개변수는 스택 레벨에서 정의하는 것이 좋습니다.
위의 코드 스니펫에서 수행한 작업을 살펴보겠습니다.
3개의 매개변수를 정의했습니다.
prefix
: 최소 길이가 3이고 최대 길이가 20인 문자열 유형의 매개변수입니다. port
: 최소값이 1이고 최대값이 65535인 숫자 유형의 매개변수입니다. domains
: CommaDelimitedList 유형의 매개변수입니다. CloudFormation은 현재 다음 매개변수 유형을 지원합니다.
파라미터를 정의하지 않고 스택을 배포하려고 하면 스택이 실패합니다.
CdkStarterStackStack failed: Error: The following CloudFormation Parameters are missing a value: port, domains
매개변수
prefix
는 기본값이 있으므로 필요하지 않습니다.매개변수가 있는 스택 배포
npx aws-cdk deploy \
--parameters prefix=demo \
--parameters port=8081 \
--parameters domains=www.codewithyou.com,www.freedevtool.com \
--outputs-file ./cdk-outputs.json
템플릿에 전달하는 모든 매개변수에 대해 --parameters 플래그를 사용해야 합니다.
이제 CDK 애플리케이션을 성공적으로 배포했으므로 CloudFormation 콘솔에서 매개 변수 섹션을 검사할 수 있습니다.
또는
cdk-outputs.json
파일을 사용하여 매개변수 값을 가져올 수 있습니다.CdkStarterStackStack.applicationDomains = www.codewithyou.com,www.freedevtool.com
CdkStarterStackStack.applicationPort = 8081
CdkStarterStackStack.applicationPrefix = demo
cdk.out/CdkStarterStackStack.template.json
파일을 살펴보면 Parameters
섹션에 매개변수가 정의되어 있음을 알 수 있습니다.{
"Parameters": {
"prefix": {
"Type": "String",
"Default": "sample",
"AllowedPattern": "^[a-z0-9]*$",
"Description": "parameter of type String",
"MaxLength": 20,
"MinLength": 3
},
"port": {
"Type": "Number",
"AllowedValues": ["8080", "8081"],
"Description": "parameter of type Number",
"MaxValue": 65535,
"MinValue": 1
},
"domains": {
"Type": "CommaDelimitedList",
"Description": "parameter of type CommaDelimitedList"
},
"BootstrapVersion": {
"Type": "AWS::SSM::Parameter::Value<String>",
"Default": "/cdk-bootstrap/hnb659fds/version",
"Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
}
}
}
대청소
이 기사를 떠나기 전에 스택을 삭제하는 것을 잊지 마십시오. 읽어 주셔서 감사합니다!
npx aws-cdk destroy
The code for this article is available on GitHub
Reference
이 문제에 관하여(AWS CDK에서 파라미터를 사용하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/binhbv/how-do-i-pass-in-values-to-aws-cdk-at-deploy-time-5gjn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)