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.