Bicep의 파일 함수
이 문서에서는 외부 파일에서 콘텐츠를 로드하기 위한 Bicep 함수를 설명합니다.
loadFileAsBase64
loadFileAsBase64(filePath)
파일을 base64 문자열로 로드합니다.
네임스페이스: sys.
매개 변수
매개 변수 | 필수 | Type | 설명 |
---|---|---|---|
filePath | 예 | string | 로드할 파일의 경로입니다. 경로는 배포된 Bicep 파일을 기준으로 합니다. 변수를 포함할 수 없습니다. |
설명
배포에 포함할 이진 콘텐츠가 있는 경우 이 함수를 사용합니다. 수동으로 파일을 base64 문자열로 인코딩하고 Bicep 파일에 추가하는 대신 이 함수로 파일을 로드합니다. Bicep 파일이 JSON 템플릿에 컴파일될 때 파일이 로드됩니다. 템플릿으로 컴파일할 때 변수가 확인되지 않았기 때문에 파일 경로에서 변수를 사용할 수 없습니다. 배포하는 동안 JSON 템플릿에는 파일의 콘텐츠가 하드 코드된 문자열로 포함됩니다.
이 함수에는 Bicep CLI 버전 0.4.X 이상이 필요합니다.
파일의 최대 허용 크기는 96Kb입니다.
반환 값
base64 문자열인 파일입니다.
loadJsonContent
loadJsonContent(filePath, [jsonPath], [encoding])
지정된 JSON 파일을 Any 개체로 로드합니다.
네임스페이스: sys.
매개 변수
매개 변수 | 필수 | Type | 설명 |
---|---|---|---|
filePath | 예 | string | 로드할 파일의 경로입니다. 경로는 배포된 Bicep 파일을 기준으로 합니다. 변수를 포함할 수 없습니다. |
jsonPath | 아니요 | string | 파일의 일부만 로드되도록 지정하는 JSONPath 식입니다. |
encoding | 아니요 | string | 파일 인코딩입니다. 기본값은 utf-8 입니다. 사용 가능한 옵션은 iso-8859-1 , us-ascii , utf-16 , utf-16BE 또는 utf-8 입니다. |
설명
별도의 파일에 저장되어 있는 JSON 콘텐츠 또는 축소된 JSON 콘텐츠가 있는 경우 이 함수를 사용합니다. Bicep 파일의 JSON 콘텐츠를 복제하는 대신 이 함수로 콘텐츠를 로드합니다. JSON 경로를 지정하여 JSON 파일의 일부를 로드할 수 있습니다. Bicep 파일이 JSON 템플릿에 컴파일될 때 파일이 로드됩니다. 템플릿으로 컴파일할 때 변수가 확인되지 않았기 때문에 파일 경로에 변수를 포함할 수 없습니다. 배포하는 동안 JSON 템플릿에는 파일의 콘텐츠가 하드 코드된 문자열로 포함됩니다.
VS Code에서 로드된 개체의 속성은 사용 가능한 intellisense입니다. 예를 들어, 여러 Bicep 파일에서 공유할 값을 사용하여 파일을 만들 수 있습니다. 이 문서에 예제가 나와 있습니다.
이 함수에는 Bicep CLI 버전 0.7.X 이상이 필요합니다.
파일의 최대 허용 크기는 줄 끝을 포함하여 1,048,576자입니다.
반환 값
Any 개체로서의 파일 콘텐츠입니다.
예제
다음 예제에서는 네트워크 보안 그룹에 대한 값이 포함된 JSON 파일을 만듭니다.
{
"description": "Allows SSH traffic",
"protocol": "Tcp",
"sourcePortRange": "*",
"destinationPortRange": "22",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 100,
"direction": "Inbound"
}
해당 파일을 로드하고 JSON 개체로 변환합니다. 개체를 사용하여 리소스에 값을 할당합니다.
param location string = resourceGroup().location
var nsgconfig = loadJsonContent('nsg-security-rules.json')
resource newNSG 'Microsoft.Network/networkSecurityGroups@2023-11-01' = {
name: 'example-nsg'
location: location
properties: {
securityRules: [
{
name: 'SSH'
properties: nsgconfig
}
]
}
}
네트워크 보안 그룹을 배포하는 다른 Bicep 파일에서 값 파일을 다시 사용할 수 있습니다.
loadYamlContent
loadYamlContent(filePath, [pathFilter], [encoding])
지정된 YAML 파일을 Any 개체로 로드합니다.
네임스페이스: sys.
매개 변수
매개 변수 | 필수 | Type | 설명 |
---|---|---|---|
filePath | 예 | string | 로드할 파일의 경로입니다. 경로는 배포된 Bicep 파일을 기준으로 합니다. 변수를 포함할 수 없습니다. |
pathFilter | 아니요 | string | 경로 필터는 파일의 일부만 로드되도록 지정하는 JSONPath 식입니다. |
encoding | 아니요 | string | 파일 인코딩입니다. 기본값은 utf-8 입니다. 사용 가능한 옵션은 iso-8859-1 , us-ascii , utf-16 , utf-16BE 또는 utf-8 입니다. |
설명
별도의 파일에 저장되어 있는 YAML 콘텐츠 또는 축소된 YAML 콘텐츠가 있는 경우 이 함수를 사용합니다. Bicep 파일의 YAML 콘텐츠를 복제하는 대신 이 함수로 콘텐츠를 로드합니다. 경로 필터를 지정하여 YAML 파일의 일부를 로드할 수 있습니다. Bicep 파일이 YAML 템플릿에 컴파일될 때 파일이 로드됩니다. 템플릿으로 컴파일할 때 변수가 확인되지 않았기 때문에 파일 경로에 변수를 포함할 수 없습니다. 배포하는 동안 YAML 템플릿에는 파일의 콘텐츠가 하드 코드된 문자열로 포함됩니다.
VS Code에서 로드된 개체의 속성은 사용 가능한 intellisense입니다. 예를 들어, 여러 Bicep 파일에서 공유할 값을 사용하여 파일을 만들 수 있습니다. 이 문서에 예제가 나와 있습니다.
이 함수에는 Bicep CLI 버전 0.16.X 이상이 필요합니다.
파일의 최대 허용 크기는 줄 끝을 포함하여 1,048,576자입니다.
반환 값
Any 개체로서의 파일 콘텐츠입니다.
예제
다음 예제에서는 네트워크 보안 그룹에 대한 값이 포함된 YAML 파일을 만듭니다.
description: "Allows SSH traffic"
protocol: "Tcp"
sourcePortRange: "*"
destinationPortRange: "22"
sourceAddressPrefix: "*"
destinationAddressPrefix: "*"
access: "Allow"
priority: 100
direction: "Inbound"
해당 파일을 로드하고 JSON 개체로 변환합니다. 개체를 사용하여 리소스에 값을 할당합니다.
param location string = resourceGroup().location
var nsgconfig = loadYamlContent('nsg-security-rules.yaml')
resource newNSG 'Microsoft.Network/networkSecurityGroups@2023-11-01' = {
name: 'example-nsg'
location: location
properties: {
securityRules: [
{
name: 'SSH'
properties: nsgconfig
}
]
}
}
네트워크 보안 그룹을 배포하는 다른 Bicep 파일에서 값 파일을 다시 사용할 수 있습니다.
loadTextContent
loadTextContent(filePath, [encoding])
지정된 파일의 콘텐츠를 문자열로 로드합니다.
네임스페이스: sys.
매개 변수
매개 변수 | 필수 | Type | 설명 |
---|---|---|---|
filePath | 예 | string | 로드할 파일의 경로입니다. 경로는 배포된 Bicep 파일을 기준으로 합니다. 변수를 포함할 수 없습니다. |
encoding | 아니요 | string | 파일 인코딩입니다. 기본값은 utf-8 입니다. 사용 가능한 옵션은 iso-8859-1 , us-ascii , utf-16 , utf-16BE 또는 utf-8 입니다. |
설명
별도의 파일에 저장되는 콘텐츠가 있는 경우 이 함수를 사용합니다. Bicep 파일에서 콘텐츠를 복제하는 대신 로드할 수 있습니다. 예를 들어, 파일에서 배포 스크립트를 로드할 수 있습니다. Bicep 파일이 JSON 템플릿에 컴파일될 때 파일이 로드됩니다. 템플릿으로 컴파일할 때 변수가 확인되지 않았기 때문에 파일 경로에서 변수를 포함할 수 없습니다. 배포하는 동안 JSON 템플릿에는 파일의 콘텐츠가 하드 코드된 문자열로 포함됩니다.
loadJsonContent()
함수를 사용하여 JSON 파일을 로드합니다.
이 함수에는 Bicep CLI 버전 0.4.X 이상이 필요합니다.
파일의 최대 허용 크기는 줄 끝을 포함하여 131,072자입니다.
반환 값
문자열인 파일의 콘텐츠입니다.
예제
다음 예제에서는 파일에서 스크립트를 로드하고 배포 스크립트에 사용합니다.
resource exampleScript 'Microsoft.Resources/deploymentScripts@2023-08-01' = {
name: 'exampleScript'
location: resourceGroup().location
kind: 'AzurePowerShell'
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'/subscriptions/{sub-id}/resourcegroups/{rg-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{id-name}': {}
}
}
properties: {
azPowerShellVersion: '8.3'
scriptContent: loadTextContent('myscript.ps1')
retentionInterval: 'P1D'
}
}
다음 단계
- Bicep 파일의 섹션에 대한 설명은 Bicep 파일의 구조 및 구문 이해를 참조하세요.