환경은 순위 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 중첩된 데이터로 제공하는 예제입니다.
특성 참조
| 특성 | 유형 | 정의 |
|---|---|---|
| 자격 증명 | String | 클라우드 공급자 계정 이름 |
| 지역 | String | westus2와 같은 Azure 위치 |
| 첨부파일URL | String | 웹에서 ARM 템플릿 위치에 대한 유효한 URL입니다. Template* 특성을 하나만 사용합니다. |
| 템플릿콘텐츠 | String | 템플릿 JSON은 @parametername 참조와 함께 문자열로 읽어들입니다. Template* 특성을 하나만 사용합니다. |
| 템플릿경로 | String | Locker와 함께 사용합니다. ARM 템플릿 위치에 대한 락커 경로를 추가합니다. Template* 특성을 하나만 사용합니다. |
| Locker | String | TemplatePath와 함께 사용합니다. 사물함에서 ARM 템플릿을 끌어당기는 것을 지원합니다. |
| ParameterValues. | ARM 매개 변수 | ParameterValues.my-parameter 여기서 my-parameter는 매개 변수입니다. ARM 템플릿의 매개 변수는 문자열, 목록, 정수, 부울을 지원합니다. |
| 변수 재정의 | ARM 변수 | VariableOverrides.my-variable 여기서 my-variable은 ARM 템플릿의 변수 이름입니다. ARM 템플릿의 변수는 문자열, 목록, 정수, 부울을 지원합니다. |
ParameterizeVariables |
불리언 (Boolean) |
VariableValues를 사용합니다. 클러스터 UI 메뉴와 클러스터 템플릿에서 ARM 템플릿 변수를 노출합니다. |
VariableValues |
ARM 변수 |
VariableValues.my-variable을 사용합니다.
VariableOverrides를 대체합니다.
ParameterizeVariables를 사용합니다. |
Azure.ResourceGroup |
String | 배포를 위한 Azure 리소스 그룹의 이름입니다. |
ManagedLifecycle |
불리언 (Boolean) | 기존 배포와 함께 사용합니다. 기본값은 true입니다. |
Name |
String | 기존 리소스 그룹의 이름입니다. |
Tags |
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 리소스를 참조할 수 있습니다.
| 특성 | 정의 |
|---|---|
| 출력. | ARM 템플릿에서 ${environment-name.Outputs.my-output}가 출력 이름일 때 my-output을(를) 사용합니다. |
| 리소스. | 템플릿에서 ${environment-name.Resources.my-resource-name.key1.key2}를 ARM 템플릿에서 리소스 이름인 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.idenv.resources['my-resource-name'].idenv.resources[MyResourceParam]