환경
환경은 순위 1입니다. 환경은 Resource Manager 배포에 해당합니다.
이제 CycleCloud는 ARM 템플릿을 사용하여 Azure Resource Manager 배포를 관리할 수 있습니다. 이러한 환경은 CycleCloud 템플릿 개체 내에서 참조할 수 있습니다.
환경이 순위 1인 동안 클러스터 템플릿 파일에 클러스터 개체가 필요합니다.
예
[environment vnet]
ManagedLifecycle=true
TemplateURL = az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json
ParameterValues.backendIpAddress1 = 10.0.1.4
VariableOverrides.virtualNetworkName = azure-vnet
[environment appgateway]
TemplateURL = https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-application-gateway-waf/azuredeploy.json
ParameterValues.virtualNetworkName = ${vnet.Parameters.virtualNetworkName}
[environment existing]
Azure.ResourceGroup = existingrg
ManagedLifecycle = false
[cluster my-cluster]
매개 $
변수 이름에 대한 참조입니다. 매개 ${}
변수 이름을 참조하는 또 다른 방법이며 환경에 대한 참조를 허용합니다.
이 예제에서는 arm 배포로 az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json 에 있는 ARM 템플릿을 시작하고 리소스 및 출력 을 변수 내에 vnet
중첩된 데이터로 제공합니다.
특성 참조
attribute | Type | 정의 |
---|---|---|
자격 증명 | String | 클라우드 공급자 계정의 이름 |
지역 | String | Azure 위치( 예: westus2 |
TemplateURL | String | 웹에서 ARM 템플릿 위치에 대한 유효한 URL입니다. Template* 특성은 하나만 사용합니다. |
TemplateContents | String | 템플릿 json에서 참조가 있는 문자열 @parametername 로 읽습니다. Template* 특성은 하나만 사용합니다. |
TemplatePath | String | Locker와 함께 사용할 수 있습니다. arm 템플릿 위치의 사물함에 경로를 추가합니다. Template* 특성은 하나만 사용합니다. |
사물함 | String | TemplatePath와 함께 사용할 수 있습니다. 사물함에서 팔 서식 파일을 끌어당기는 것을 지원합니다. |
ParameterValues. | ARM 매개 변수 | my-parameter가 매개 변수인 ParameterValues.my 매개 변수입니다. ARM 템플릿의 매개 변수는 문자열, 목록, 정수, 부울을 지원합니다. |
VariableOverrides. | ARM 변수 | VariableOverrides.my 변수입니다. 여기서 my 변수는 ARM 템플릿의 변수 이름입니다. ARM 템플릿의 변수는 문자열, 목록, 정수, 부울을 지원합니다. |
ParameterizeVariables | 부울 | VariableValues와 함께 사용합니다. 클러스터 UI 메뉴 및 클러스터 템플릿에서 ARM 템플릿 변수를 노출합니다. |
VariableValues. | ARM 변수 | VariableValues.my 변수입니다. VariableOverrides의 대안입니다. ParameterizeVariables와 함께 사용합니다. |
Azure.ResourceGroup | String | 배포할 Azure 리소스 그룹의 이름입니다. |
ManagedLifecycle | 부울 | 기존 배포와 함께 사용할 수 있습니다. 기본값은 true입니다. |
이름 | String | 종료 전 리소스 그룹의 이름입니다. |
태그 | String | 기본적으로 CycleCloud에서 할당한 태그 외에도 배포를 소유하는 리소스 그룹에 태그를 추가하는 데 사용합니다 tags.my-tag = my-tag-value . |
기존 배포의 경우 환경 개체 이름은 ARM 배포 이름을 참조합니다.
환경 리소스 및 출력 사용
[environment vnet]
ManagedLifecycle=true
TemplateURL = az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json
[cluster my-cluster]
[[node proxy]]
IsReturnProxy = True
SubnetId = ${vnet.resources.'azure-vnet/ProxySubnet'.id}
ARM 배포 모델에 따라 환경은 리소스를 만들고 해당 리소스를 사용할 다른 클러스터 템플릿 개체에 노출합니다.
표기법을 사용하여 네이 ${}
티브 스키마에서 만든 ARM 리소스를 참조할 수 있습니다.
attribute | 정의 |
---|---|
출력 | my-output이 ARM 템플릿의 출력 이름인 템플릿에서와 같이 ${environment-name.Outputs.my-output} 사용합니다. |
리소스. | my-resource-name이 ARM 템플릿의 리소스 이름이고 key1, key2가 리소스 개체의 관련 키인 템플릿에서와 같이 ${environment-name.Resources.my-resource-name.key1.key2} 사용합니다. |
중첩된 리소스 참조
CycleCloud에서 관리하는 환경은 중첩된 데이터 구조로 표시됩니다. 이 구조 내에서 데이터를 참조하는 것이 유용한 경우가 많습니다.
[environment db]
TemplateContents = @raw-db-json
ParameterValues.DBName = @DBNameParameter
[cluster my-cluster]
[[node my-node]]
SubnetId = ${network.resources.'vnet/ComputeSubnet'.id}
[[[configuration database]]]
connection_string = ${db.Outputs.JDBCConnectionString}
database_id = ${db.resources[ClusterName].id}
중첩된 변수의 인덱스는 생성되는 ARM 리소스 형식에 따라 달라질 수 있습니다.
env.resources.my-resource-name.id
는 env.resources['my-resource-name'].id
env.resources[MyResourceParam]
모두 중첩된 변수에 대한 참조에 유효한 형식입니다.