다음을 통해 공유


환경

환경은 순위 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]