Share via


Miljö

Miljön är rank 1. En miljö motsvarar en Resource Manager distribution.

CycleCloud kan nu hantera Azure Resource Manager-distributioner med ARM-mallar. Dessa miljöer kan refereras till inifrån CycleCloud-mallobjekt.

Även om miljön är rank 1 krävs ett klusterobjekt i klustermallfilen.

Exempel

[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]

$ är en referens till ett parameternamn. ${} är ett annat sätt att referera till ett parameternamn och tillåter referens till en miljö.

I de här exemplen startas ARM-mallen som finns på az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json som en ARM-distribution och tillhandahåller resursen och utdata som kapslade data i variabeln vnet .

Attributreferens

Attribut Typ Definition
Autentiseringsuppgifter Sträng Namn på molnleverantörskonto
Region Sträng Azure-plats, t.ex. westus2
TemplateURL Sträng Giltig URL för ARM-mallens plats på webben. Använd endast ett template*-attribut.
TemplateContents Sträng Läs i json-mallen som en sträng med @parametername referens. Använd endast ett template*-attribut.
TemplatePath Sträng För användning med Locker. Lägger till sökväg till skåp för armmallens plats. Använd endast ett template*-attribut.
Skåp Sträng För användning med TemplatePath. Har stöd för att hämta armmallen från skåpet.
ParameterValues. ARM-parameter ParameterValues.my parameter där my-parameter är en parameter. Parametrar i ARM-mallar stöder sträng, lista, heltal, booleskt värde.
VariableOverrides. ARM-variabel VariableOverrides.my variabel där min-variabel är ett variabelnamn i ARM-mallen. Variabler i ARM-mallar stöder sträng, lista, heltal, booleskt värde.
ParameterizeVariables Boolesk Använd med VariableValues. Exponera ARM-mallvariabler i klustergränssnittsmenyn och klustermallen.
VariableValues. ARM-variabel VariableValues.my variabel. Alternativ till VariableOverrides. Använd med ParameterizeVariables.
Azure.ResourceGroup Sträng Namnet på Azure-resursgruppen för distribution.
ManagedLifecycle Boolesk För användning med befintlig distribution. Standardvärdet är true.
Name Sträng Namnet på resursgruppen som avslutas i förväg.
Taggar. Sträng Använd tags.my-tag = my-tag-value för att lägga till taggar i resursgruppen som har distributionen utöver de taggar som tilldelats av CycleCloud som standard.

För befintliga distributioner refererar miljöobjektets namn till ARM-distributionsnamnet.

Använda miljöresurser och utdata

[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}

Efter ARM-distributionsmodellen skapar miljöer resurser och exponerar dessa resurser för de andra klustermallsobjekten för användning.

Med hjälp av notationen ${} kan du sedan referera till arm-resurser som skapats i deras interna schema.

Attribut Definition
Utgångar. Använd som ${environment-name.Outputs.my-output} i mallen där my-output är namnet på utdata i ARM-mallen.
Resurser. Använd som ${environment-name.Resources.my-resource-name.key1.key2} i mallen där my-resource-name är namnet på en resurs i ARM-mallen och key1. Key2 är relaterade nycklar i resursobjektet.

Referera till kapslade resurser

Miljöer som hanteras av CycleCloud representeras av en kapslad datastruktur. Det är ofta användbart att referera till data i den här strukturen.

[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}

Indexen för kapslade variabler kan bero på vilken ARM-resurstyp som skapas. env.resources.my-resource-name.id, env.resources['my-resource-name'].id, env.resources[MyResourceParam] är alla giltiga format för referenser till kapslade variabler.