A Bicep dátumfüggvényei
Ez a cikk a Bicep függvényeket ismerteti a dátumok használatához.
dateTimeAdd
dateTimeAdd(base, duration, [format])
Egy időtartamot ad hozzá egy alapértékhez. ISO 8601 formátum várható.
Névtér: sys.
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 Bicep-fájl néhány példát mutat be:
output addOneYearNonLeap string = dateTimeAdd('2023-01-01 00:00:00Z', 'P1Y') //2024-01-01T00:00:00Z
output addOneYearLeap string = dateTimeAdd('2024-01-01 00:00:00Z', 'P1Y') //2024-12-31T00:00:00Z
output addOneMonthNonLeap string = dateTimeAdd('2023-02-01 00:00:00Z', 'P1M') //2023-03-03T00:00:00Z
output addOneMonthLeap string = dateTimeAdd('2024-02-01 00:00:00Z', 'P1M') //2023-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élda az időértékek hozzáadásának különböző módjait mutatja be.
param baseTime string = utcNow('u')
var add3Years = dateTimeAdd(baseTime, 'P3Y')
var subtract9Days = dateTimeAdd(baseTime, '-P9D')
var add1Hour = dateTimeAdd(baseTime, 'PT1H')
output add3YearsOutput string = add3Years
output subtract9DaysOutput string = subtract9Days
output add1HourOutput string = add1Hour
Ha az előző példa alapidővel 2020-04-07 14:53:14Z
van üzembe helyezve, 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élda bemutatja, hogyan állíthatja be az Automation-ütemezés kezdési idejét.
param omsAutomationAccountName string = 'demoAutomation'
param scheduleName string = 'demSchedule1'
param baseTime string = utcNow('u')
var startTime = dateTimeAdd(baseTime, 'PT1H')
...
resource scheduler 'Microsoft.Automation/automationAccounts/schedules@2023-11-01' = {
name: concat(omsAutomationAccountName, '/', scheduleName)
properties: {
description: 'Demo Scheduler'
startTime: startTime
interval: 1
frequency: 'Hour'
}
}
dateTimeFromEpoch
dateTimeFromEpoch(epochTime)
Egy idő egész számának értékét ISO 8601 datetime-ra konvertálja.
Névtér: sys.
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.
Megjegyzések
Ehhez a függvényhez a Bicep CLI 0.5.X-es vagy újabb verziója szükséges.
Példa
Az alábbi példa az időfüggvények kimeneti értékeit mutatja be.
param convertedEpoch int = dateTimeToEpoch(dateTimeAdd(utcNow(), 'P1Y'))
var convertedDatetime = dateTimeFromEpoch(convertedEpoch)
output epochValue int = convertedEpoch
output datetimeValue string = 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.
Névtér: sys.
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.
Megjegyzések
Ehhez a függvényhez a Bicep CLI 0.5.X-es vagy újabb verziója szükséges.
Példák
Az alábbi példa az időfüggvények kimeneti értékeit mutatja be.
param convertedEpoch int = dateTimeToEpoch(dateTimeAdd(utcNow(), 'P1Y'))
var convertedDatetime = dateTimeFromEpoch(convertedEpoch)
output epochValue int = convertedEpoch
output datetimeValue string = 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.
@description('The location into which the resources should be deployed.')
param location string = resourceGroup().location
@description('The Tenant Id that should be used throughout the deployment.')
param tenantId string = subscription().tenantId
@description('The name of the existing User Assigned Identity.')
param userAssignedIdentityName string
@description('The name of the resource group for the User Assigned Identity.')
param userAssignedIdentityResourceGroupName string
@description('The name of the Key Vault.')
param keyVaultName string = 'vault-${uniqueString(resourceGroup().id)}'
@description('Name of the key in the Key Vault')
param keyVaultKeyName string = 'cmkey'
@description('Expiration time of the key')
param keyExpiration int = dateTimeToEpoch(dateTimeAdd(utcNow(), 'P1Y'))
@description('The name of the Storage Account')
param storageAccountName string = 'storage${uniqueString(resourceGroup().id)}'
resource userAssignedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' existing = {
scope: resourceGroup(userAssignedIdentityResourceGroupName)
name: userAssignedIdentityName
}
resource keyVault 'Microsoft.KeyVault/vaults@2021-10-01' = {
name: keyVaultName
location: location
properties: {
sku: {
name: 'standard'
family: 'A'
}
enableSoftDelete: true
enablePurgeProtection: true
enabledForDiskEncryption: true
tenantId: tenantId
accessPolicies: [
{
tenantId: tenantId
permissions: {
keys: [
'unwrapKey'
'wrapKey'
'get'
]
}
objectId: userAssignedIdentity.properties.principalId
}
]
}
}
resource kvKey 'Microsoft.KeyVault/vaults/keys@2021-10-01' = {
parent: keyVault
name: keyVaultKeyName
properties: {
attributes: {
enabled: true
exp: keyExpiration
}
keySize: 4096
kty: 'RSA'
}
}
resource storage 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${userAssignedIdentity.id}': {}
}
}
properties: {
accessTier: 'Hot'
supportsHttpsTrafficOnly: true
minimumTlsVersion: 'TLS1_2'
encryption: {
identity: {
userAssignedIdentity: userAssignedIdentity.id
}
services: {
blob: {
enabled: true
}
}
keySource: 'Microsoft.Keyvault'
keyvaultproperties: {
keyname: kvKey.name
keyvaulturi: endsWith(keyVault.properties.vaultUri,'/') ? substring(keyVault.properties.vaultUri,0,length(keyVault.properties.vaultUri)-1) : keyVault.properties.vaultUri
}
}
}
}
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ó.
Névtér: sys.
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 Bicep-fájlban, hibát ad vissza. A függvény nem engedélyezett a Bicep-fájl más részeiben, mert minden híváskor más értéket ad vissza. Ugyanazon Bicep-fájl ugyanazon paraméterekkel való üzembe helyezése nem eredményezne megbízhatóan ugyanazokat az eredményeket.
Ha a hiba visszaállítását egy korábbi sikeres üzembe helyezésre használja, és a korábbi üzembe helyezés tartalmaz egy utcNow-t használó 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 Bicep-fájlt, amely az utcNow függvényre támaszkodik egy alapértelmezett értékhez. 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élda a datetime érték különböző formátumát mutatja be.
param utcValue string = utcNow()
param utcShortValue string = utcNow('d')
param utcCustomValue string = utcNow('M d')
output utcOutput string = utcValue
output utcShortOutput string = utcShortValue
output utcCustomOutput string = 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.
param utcShort string = utcNow('d')
param rgName string
resource myRg 'Microsoft.Resources/resourceGroups@2024-03-01' = {
name: rgName
location: 'westeurope'
tags: {
createdDate: utcShort
}
}
output utcShortOutput string = utcShort
Következő lépések
- A Bicep-fájlok szakaszainak leírását a Bicep-fájlok szerkezetének és szintaxisának ismertetése című témakörben találja.