Dátumfüggvények ARM-sablonokhoz
Ez a cikk az Azure Resource Manager-sablonban (ARM-sablonban) található dátumok használatára szolgáló függvényeket ismerteti.
Tipp.
A Bicep használatát javasoljuk, mert ugyanazokkal a képességekkel rendelkezik, mint az ARM-sablonok, és a szintaxis használata egyszerűbb. További információ: dátumfüggvények .
dateTimeAdd
dateTimeAdd(base, duration, [format])
Egy időtartamot ad hozzá egy alapértékhez. ISO 8601 formátum várható.
A Bicepben használja a dateTimeAdd függvényt .
Paraméterek
Paraméter | Kötelező | Típus | Leírás |
---|---|---|---|
alap | Igen | húr | A hozzáadás kezdő dátum/idő értéke. ISO 8601 időbélyeg formátumot használjon. |
időtartam | Igen | húr | Az alaphoz hozzáadandó időérték. Negatív érték lehet. Iso 8601 időtartamformátumot használjon. |
format | Nem | húr | A dátum időeredményének kimeneti formátuma. Ha nincs megadva, a rendszer az alapérték formátumát használja. Használjon szabványos formátumsztringeket vagy egyéni formázási sztringeket. |
Visszaadott érték
Az időtartam alapértékhez való hozzáadásából eredő dátum/idő érték.
Megjegyzések
A dateTimeAdd
függvény nem veszi figyelembe a szökőéveket, a P1Y-t P365D-ként kell értelmezni, míg a P1M-et P30D-ként kell értelmezni. Az alábbi json néhány példát mutat be:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"addOneYearNonLeap": {
"type": "string",
"value": "[dateTimeAdd('2023-01-01 00:00:00Z', 'P1Y')]" //2024-01-01T00:00:00Z
},
"addOneYearLeap": {
"type": "string",
"value": "[dateTimeAdd('2024-01-01 00:00:00Z', 'P1Y')]" //2024-12-31T00:00:00Z
},
"addOneMonthNonLeap": {
"type": "string",
"value": "[dateTimeAdd('2023-02-01 00:00:00Z', 'P1M')]" //2023-03-03T00:00:00Z
},
"addOneMonthLeap": {
"type": "string",
"value": "[dateTimeAdd('2024-02-01 00:00:00Z', 'P1M')]" //2024-03-02T00:00:00Z
}
}
}
Az előző példában, ha a 2023-as évet nem szökőévnek tekinti, az eredmény az, hogy egy évet ad hozzá az év első napjához 2024-01-01T00:00:00Z. Ezzel szemben, ha 2024 kezdő napjához hozzáadunk egy évet, szökőévet, az eredmény 2024-12-31T00:00:00Z, nem 2025-01-01T00:00:00Z, mivel a szökőév 365 nap helyett 366 napot tartalmaz. Emellett a szökőév és a szökőév közötti különbség akkor válik nyilvánvalóvá, ha egy hónapot ad hozzá február első napjához, ami a hónap különböző napi eredményeihez vezet.
Példák
Az alábbi példasablon az időértékek hozzáadásának különböző módjait mutatja be.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"baseTime": {
"type": "string",
"defaultValue": "[utcNow('u')]"
}
},
"variables": {
"add3Years": "[dateTimeAdd(parameters('baseTime'), 'P3Y')]",
"subtract9Days": "[dateTimeAdd(parameters('baseTime'), '-P9D')]",
"add1Hour": "[dateTimeAdd(parameters('baseTime'), 'PT1H')]"
},
"resources": [],
"outputs": {
"add3YearsOutput": {
"value": "[variables('add3Years')]",
"type": "string"
},
"subtract9DaysOutput": {
"value": "[variables('subtract9Days')]",
"type": "string"
},
"add1HourOutput": {
"value": "[variables('add1Hour')]",
"type": "string"
}
}
}
Az előző sablon alapidővel 2020-04-07 14:53:14Z
történő üzembe helyezésekor a kimenet a következő:
Név | Típus | Érték |
---|---|---|
add3YearsOutput | Sztring | 2023.04.07. 14:53:14 |
subtract9DaysOutput | Sztring | 2020.03.29. 14:53:14 |
add1HourOutput | Sztring | 2020.04.07. 15:53:14 |
A következő példasablon bemutatja, hogyan állíthatja be az Automation-ütemezés kezdési idejét.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"omsAutomationAccountName": {
"type": "string",
"defaultValue": "demoAutomation",
"metadata": {
"description": "Use an existing Automation account."
}
},
"scheduleName": {
"type": "string",
"defaultValue": "demoSchedule1",
"metadata": {
"description": "Name of the new schedule."
}
},
"baseTime": {
"type": "string",
"defaultValue": "[utcNow('u')]",
"metadata": {
"description": "Schedule will start one hour from this time."
}
}
},
"variables": {
"startTime": "[dateTimeAdd(parameters('baseTime'), 'PT1H')]"
},
"resources": [
...
{
"type": "Microsoft.Automation/automationAccounts/schedules",
"apiVersion": "2022-08-08",
"name": "[concat(parameters('omsAutomationAccountName'), '/', parameters('scheduleName'))]",
"properties": {
"description": "Demo Scheduler",
"startTime": "[variables('startTime')]",
"interval": 1,
"frequency": "Hour"
}
}
],
"outputs": {
}
}
dateTimeFromEpoch
dateTimeFromEpoch(epochTime)
Egy idő egész számának értékét ISO 8601 datetime-ra konvertálja.
A Bicepben használja a dateTimeFromEpoch függvényt.
Paraméterek
Paraméter | Kötelező | Típus | Leírás |
---|---|---|---|
epochTime | Igen | egész | A datetime sztringgé alakítás kezdő időpontja. |
Visszaadott érték
ISO 8601 datetime sztring.
Példa
Az alábbi példa az időfüggvények kimeneti értékeit mutatja be.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"convertedEpoch": {
"type": "int",
"defaultValue": "[dateTimeToEpoch(dateTimeAdd(utcNow(), 'P1Y'))]"
}
},
"variables": {
"convertedDatetime": "[dateTimeFromEpoch(parameters('convertedEpoch'))]"
},
"resources": [],
"outputs": {
"epochValue": {
"type": "int",
"value": "[parameters('convertedEpoch')]"
},
"datetimeValue": {
"type": "string",
"value": "[variables('convertedDatetime')]"
}
}
}
A kimenet a következő:
Név | Típus | Érték |
---|---|---|
datetimeValue | Sztring | 2023-05-02T15:16:13Z |
epochValue | Int | 1683040573 |
dateTimeToEpoch
dateTimeToEpoch(dateTime)
Az ISO 8601 datetime sztringet idő egész számmá alakítja.
A Bicepben használja a dateTimeToEpoch függvényt.
Paraméterek
Paraméter | Kötelező | Típus | Leírás |
---|---|---|---|
Datetime | Igen | húr | A dátum/idő sztring, amely időszámításra konvertálható. |
Visszaadott érték
Egész szám, amely az 1970. január 1-jén éjféltől kezdődő másodpercek számát jelöli.
Példák
Az alábbi példa az időfüggvények kimeneti értékeit mutatja be.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"convertedEpoch": {
"type": "int",
"defaultValue": "[dateTimeToEpoch(dateTimeAdd(utcNow(), 'P1Y'))]"
}
},
"variables": {
"convertedDatetime": "[dateTimeFromEpoch(parameters('convertedEpoch'))]"
},
"resources": [],
"outputs": {
"epochValue": {
"type": "int",
"value": "[parameters('convertedEpoch')]"
},
"datetimeValue": {
"type": "string",
"value": "[variables('convertedDatetime')]"
}
}
}
A kimenet a következő:
Név | Típus | Érték |
---|---|---|
datetimeValue | Sztring | 2023-05-02T15:16:13Z |
epochValue | Int | 1683040573 |
A következő példa a korszak időértékével állítja be egy kulcs lejáratát egy kulcstartóban.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.5.6.12127",
"templateHash": "16023511331197397029"
}
},
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location into which the resources should be deployed."
}
},
"tenantId": {
"type": "string",
"defaultValue": "[subscription().tenantId]",
"metadata": {
"description": "The Tenant Id that should be used throughout the deployment."
}
},
"userAssignedIdentityName": {
"type": "string",
"metadata": {
"description": "The name of the existing User Assigned Identity."
}
},
"userAssignedIdentityResourceGroupName": {
"type": "string",
"metadata": {
"description": "The name of the resource group for the User Assigned Identity."
}
},
"keyVaultName": {
"type": "string",
"defaultValue": "[format('vault-{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "The name of the Key Vault."
}
},
"keyVaultKeyName": {
"type": "string",
"defaultValue": "cmkey",
"metadata": {
"description": "Name of the key in the Key Vault"
}
},
"keyExpiration": {
"type": "int",
"defaultValue": "[dateTimeToEpoch(dateTimeAdd(utcNow(), 'P1Y'))]",
"metadata": {
"description": "Expiration time of the key"
}
},
"storageAccountName": {
"type": "string",
"defaultValue": "[format('storage{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "The name of the Storage Account"
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2021-10-01",
"name": "[parameters('keyVaultName')]",
"location": "[parameters('location')]",
"properties": {
"sku": {
"name": "standard",
"family": "A"
},
"enableSoftDelete": true,
"enablePurgeProtection": true,
"enabledForDiskEncryption": true,
"tenantId": "[parameters('tenantId')]",
"accessPolicies": [
{
"tenantId": "[parameters('tenantId')]",
"permissions": {
"keys": [
"unwrapKey",
"wrapKey",
"get"
]
},
"objectId": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, parameters('userAssignedIdentityResourceGroupName')), 'Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentityName')), '2018-11-30').principalId]"
}
]
}
},
{
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2021-10-01",
"name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('keyVaultKeyName'))]",
"properties": {
"attributes": {
"enabled": true,
"exp": "[parameters('keyExpiration')]"
},
"keySize": 4096,
"kty": "RSA"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
]
},
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[format('{0}', extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, parameters('userAssignedIdentityResourceGroupName')), 'Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentityName')))]": {}
}
},
"properties": {
"accessTier": "Hot",
"supportsHttpsTrafficOnly": true,
"minimumTlsVersion": "TLS1_2",
"encryption": {
"identity": {
"userAssignedIdentity": "[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, parameters('userAssignedIdentityResourceGroupName')), 'Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentityName'))]"
},
"services": {
"blob": {
"enabled": true
}
},
"keySource": "Microsoft.Keyvault",
"keyvaultproperties": {
"keyname": "[parameters('keyVaultKeyName')]",
"keyvaulturi": "[if(endsWith(reference(resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))).vaultUri, '/'), substring(reference(resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))).vaultUri, 0, sub(length(reference(resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))).vaultUri), 1)), reference(resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))).vaultUri)]"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]",
"[resourceId('Microsoft.KeyVault/vaults/keys', parameters('keyVaultName'), parameters('keyVaultKeyName'))]"
]
}
]
}
utcNow
utcNow(format)
Az aktuális (UTC) dátum/idő értéket adja vissza a megadott formátumban. Ha nincs megadva formátum, a rendszer az ISO 8601 (yyyyMMddTHHmmssZ
) formátumot használja. Ez a függvény csak egy paraméter alapértelmezett értékében használható.
A Bicepben használja az utcNow függvényt.
Paraméterek
Paraméter | Kötelező | Típus | Leírás |
---|---|---|---|
format | Nem | húr | Az URI kódolt értéke, amely sztringgé konvertálható. Használjon szabványos formátumsztringeket vagy egyéni formázási sztringeket. |
Megjegyzések
Ezt a függvényt csak egy paraméter alapértelmezett értékének kifejezésén belül használhatja. Ha ezt a függvényt bárhol máshol használja egy sablonban, hibát ad vissza. A függvény nem engedélyezett a sablon más részeiben, mert minden híváskor más értéket ad vissza. Ha ugyanazt a sablont ugyanazokkal a paraméterekkel helyezi üzembe, az nem eredményezne megbízhatóan ugyanazokat az eredményeket.
Ha a hibát egy korábbi sikeres üzembe helyezésre visszaállítja, és a korábbi üzembe helyezés tartalmaz egy használt utcNow
paramétert, a paraméter nem lesz újraértékelve. Ehelyett a rendszer automatikusan újra felhasználja a korábbi üzembe helyezés paraméterértékét a visszaállítási üzembe helyezés során.
Ügyeljen arra, hogy újra üzembe helyezzen egy sablont, amely egy utcNow
alapértelmezett érték függvényére támaszkodik. Amikor újra üzembe helyezi a paramétert, és nem ad meg értéket, a függvény újraértékelódik. Ha egy meglévő erőforrást szeretne frissíteni ahelyett, hogy újat hozna létre, adja meg a paraméter értékét a korábbi üzembe helyezésből.
Visszaadott érték
Az aktuális UTC dátum/idő érték.
Példák
Az alábbi példasablon különböző formátumokat mutat be a datetime értékhez.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"utcValue": {
"type": "string",
"defaultValue": "[utcNow()]"
},
"utcShortValue": {
"type": "string",
"defaultValue": "[utcNow('d')]"
},
"utcCustomValue": {
"type": "string",
"defaultValue": "[utcNow('M d')]"
}
},
"resources": [
],
"outputs": {
"utcOutput": {
"type": "string",
"value": "[parameters('utcValue')]"
},
"utcShortOutput": {
"type": "string",
"value": "[parameters('utcShortValue')]"
},
"utcCustomOutput": {
"type": "string",
"value": "[parameters('utcCustomValue')]"
}
}
}
Az előző példában szereplő kimenet minden üzemelő példány esetében eltérő, de a következőhöz hasonló lesz:
Név | Típus | Érték |
---|---|---|
utcOutput | húr | 20190305T175318Z |
utcShortOutput | húr | 03/05/2019 |
utcCustomOutput | húr | 3 5 |
A következő példa bemutatja, hogyan használhatja a függvény értékeit egy címkeérték beállításakor.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"utcShort": {
"type": "string",
"defaultValue": "[utcNow('d')]"
},
"rgName": {
"type": "string"
}
},
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2021-04-01",
"name": "[parameters('rgName')]",
"location": "westeurope",
"tags": {
"createdDate": "[parameters('utcShort')]"
},
"properties": {}
}
],
"outputs": {
"utcShortOutput": {
"type": "string",
"value": "[parameters('utcShort')]"
}
}
}
Következő lépések
- Az ARM-sablonok szakaszainak leírását az ARM-sablonok szerkezetének és szintaxisának ismertetése című témakörben találja.