Üzembehelyezési szkriptek paraméterezése

Befejeződött

Az előző leckében egyéni viselkedést adott hozzá egy Azure Resource Manager-sablonhoz, hogy egy tárfiók kezdő tartalmát egy új alkalmazáskörnyezethez szakaszozza. Ez egy adott problémát oldott meg egy alkalmazáscsapat számára.

Az üzembehelyezési szkriptek adaptálhatóbbá tétele egyik módja, ha adatokat ad meg a szkriptnek. Két lehetősége van, parancssori argumentumai és környezeti változói.

Megjegyzés:

Az egység parancsai a fogalmakat szemléltetik. Még ne futtassa a parancsokat. Hamarosan gyakorolja, amit itt tanul.

Parancssori argumentumok használata

Az adatok erőforrásokba való továbbításának első lehetősége a deploymentScripts tulajdonság testreszabása arguments . A arguments tulajdonság argumentumok sorozatát veszi fel, ugyanúgy, mint a parancssorban megadottakat. Ezeket az argumentumokat a command szkriptet futtató Azure-tárolópéldány tulajdonsága adja meg.

Megjegyzés:

Némi elemzés történik, ezért tesztelje a arguments tulajdonság néhány változatát. Ugyanúgy lesz sztringtömbre bontva, mint a Windows rendszerhéj a parancssorok elemzéséhez.

"properties": {
   "arguments": "-Name Learner",
   "azPowerShellVersion": "3.0",
   "scriptContent": "
       param ([string]$Name)
       $output = \"Hello $Name!\"
       Write-Output $output
       $DeploymentScriptOutputs = @{}
       $DeploymentScriptOutputs['text'] = $output
   ",
   "retentionInterval":"P1D"
}
properties: {
  arguments: '-Name Learner'
  azPowerShellVersion: '3.0'
  scriptContent: '''
    param ([string]$Name)
    $output = "Hello $Name!"
    Write-Output $output
    $DeploymentScriptOutputs = @{}
    $DeploymentScriptOutputs['text'] = $output
  '''
  retentionInterval: 'P1D'
}

Környezeti változók használata

A második lehetőség olyan környezeti változók létrehozása, amelyekhez a szkriptek hozzáférhetnek.

"properties": {
   "arguments": "-Name Learner",
   "environmentVariables:": [
       {
         "name": "Subject",
         "value": "Deployment Scripts"
       }
   ],
   "azPowerShellVersion": "3.0",
   "scriptContent": "
       param ([string]$Name)
       $output = \"Hello $Name!\"
       $output += \"Learning about $env:Subject can be very helpful in your deployments.\"
       Write-Output $output
       $DeploymentScriptOutputs = @{}
       $DeploymentScriptOutputs['text'] = $output
   ",
   "retentionInterval":"P1D"
}
properties: {
  arguments: '-Name Learner'
  environmentVariables: [
    {
      name: 'Subject'
      value: 'Deployment Scripts'
    }
  ]
  azPowerShellVersion: '3.0'
  scriptContent: '''
    param ([string]$Name)
    $output = "Hello $Name!"
    $output += "Learning about $env:Subject can be very helpful in your deployments."
    Write-Output $output
    $DeploymentScriptOutputs = @{}
    $DeploymentScriptOutputs['text'] = $output
  '''
  retentionInterval: 'P1D'
}

A környezeti változók használatának egyik előnye, hogy olyan titkos kulcsokat is használhatsecureValue, amelyeket esetleg át kell adni az üzembehelyezési szkriptekbe.

"properties": {
   "arguments": "-Name Learner",
   "environmentVariables:": [
       {
         "name": "Subject",
         "value": "Deployment Scripts"
       },
       {
         "name": "MySecretValue",
         "secureValue": "PleaseDoNotPrintMeToTheConsole!"
       }
   ],
   "azPowerShellVersion": "3.0",
   "scriptContent": "
       param ([string]$Name)
       $output = \"Hello $Name!\"
       $output += \"Learning about $env:Subject can be very helpful in your deployments.\"
       $output += \"Secure environment variables (like $env:MySecretValue) are only secure if you keep them that way.\"
       Write-Output $output
       $DeploymentScriptOutputs = @{}
       $DeploymentScriptOutputs['text'] = $output
   ",
   "retentionInterval":"P1D"
}
properties: {
  arguments: '-Name Learner'
  environmentVariables: [
    {
      name: 'Subject'
      value: 'Deployment Scripts'
    }
    {
      name: 'MySecretValue'
      secureValue: 'PleaseDoNotPrintMeToTheConsole!'
    }
  ]
  azPowerShellVersion: '3.0'
  scriptContent: '''
    param ([string]$Name)
    $output = "Hello $Name!"
    $output += "Learning about $env:Subject can be very helpful in your deployments."
    $output += "Secure environment variables (like $env:MySecretValue) are only secure if you keep them that way."
    Write-Output $output
    $DeploymentScriptOutputs = @{}
    $DeploymentScriptOutputs['text'] = $output
  '''
  retentionInterval: 'P1D'
}

Paraméterek átadása

Mint megtanulta, a paraméterértékeket közvetlenül az üzembehelyezési szkript tulajdonságaiban állíthatja be. Több más lehetőség is van az átadható értékekre. Használhatja a korábban létrehozott erőforrásokból, a sablonban deklarált változókból vagy a sablonba közvetlenül az üzembe helyezéskor átadott paraméterekből származó dinamikus értékeket.

Ezek a forgatókönyvek a sablonfüggvényeken keresztül érhetők el a arguments tulajdonságban.environmentVariables Az ARM-sablonfüggvények bármelyikével elérheti az értékeket, és átadhatja őket a sablonnak. Ezek a függvények a következők: reference, parametersvagy variables.

Ezek a forgatókönyvek a sablonfüggvényeken keresztül érhetők el a arguments tulajdonságban.environmentVariables Bármelyik Bicep-funkcióval elérheti az értékeket, és átadhatja őket a sablonnak, például hivatkozhat más erőforrások tulajdonságaira szimbolikus neveik használatával, és hivatkozhat paraméterekre és változókra.