다음을 통해 공유


Bicep의 배포 함수

이 문서에서는 현재 배포와 관련된 값을 가져오기 위한 Bicep 함수를 설명합니다.

배포자

deployer()

현재 배포를 시작한 보안 주체(ID)에 대한 정보를 반환합니다. 보안 주체는 배포가 시작된 방법에 따라 사용자, 서비스 주체 또는 관리 ID일 수 있습니다.

네임스페이스: az.

반환 값

이 함수는 다음을 포함하여 배포 주체에 대한 세부 정보가 포함된 개체를 반환합니다.

  • objectId: 보안 주체의 Microsoft Entra ID 개체 ID입니다.
  • tenantId: Microsoft Entra ID 테넌트 ID입니다.
  • userPrincipalName: 사용 가능한 경우 UPN(사용자 계정 이름)입니다. 서비스 주체 또는 관리 ID의 경우 이 속성이 비어 있을 수 있습니다.

비고

반환된 값은 배포 컨텍스트에 따라 달라집니다. 예를 들어 userPrincipalName 서비스 주체 또는 관리 ID의 경우 비어 있을 수 있습니다.

{
  "objectId": "<principal-object-id>",
  "tenantId": "<tenant-id>",
  "userPrincipalName": "<user@___domain.com or empty>"
}

예시

다음 예제 Bicep 파일은 배포자 개체를 반환합니다.

output deployer object = deployer()

샘플 출력(값은 배포에 따라 다릅니다.):

{
  "objectId":"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "tenantId":"aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
  "userPrincipalName":"john.doe@contoso.com"
}

Azure ID에 대한 자세한 내용은 Azure Active Directory ID란?을 참조하세요.

확인

deployment()

현재 배포 작업에 대한 정보를 반환합니다.

네임스페이스: az.

반환 값

이 함수는 배포하는 동안 전달되는 개체를 반환합니다. 반환된 개체의 속성은 다음 여부에 따라 달라집니다.

리소스 그룹에 로컬 Bicep 파일을 배포하는 경우 함수는 다음 형식을 반환합니다.

{
  "name": "",
  "properties": {
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Azure 구독, 관리 그룹 또는 테넌트에 배포하는 경우 반환 개체에는 ___location 속성이 포함됩니다. 로컬 Bicep 파일을 배포할 때는 ___location 속성이 포함되지 않습니다. 형식:

{
  "name": "",
  "___location": "",
  "properties": {
    "template": {
      "$schema": "",
      "contentVersion": "",
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

예시

다음 예제에서는 배포 개체를 반환합니다.

output deploymentOutput object = deployment()

앞의 예제에서는 다음 개체를 반환합니다.

{
  "name": "deployment",
  "properties": {
    "template": {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "resources": [],
      "outputs": {
        "deploymentOutput": {
          "type": "Object",
          "value": "[deployment()]"
        }
      }
    },
    "templateHash": "13135986259522608210",
    "parameters": {},
    "mode": "Incremental",
    "provisioningState": "Accepted"
  }
}

환경

environment()

배포에 사용되는 Azure 환경에 대한 정보를 반환합니다. 함수는 environment() 리소스 구성을 인식하지 못합니다. 각 리소스 종류에 대해 단일 기본 DNS 접미사만 반환할 수 있습니다.

네임스페이스: az.

설명

계정에 등록된 환경 목록을 보려면 az cloud list 또는 Get-AzEnvironment를 사용합니다.

반환 값

이 함수는 현재 Azure 환경에 대한 속성을 반환합니다. 다음 예제는 전체 Azure에 대한 속성을 보여 줍니다. 소버린 클라우드가 반환하는 속성은 약간 다를 수 있습니다.

{
  "name": "",
  "gallery": "",
  "graph": "",
  "portal": "",
  "graphAudience": "",
  "activeDirectoryDataLake": "",
  "batch": "",
  "media": "",
  "sqlManagement": "",
  "vmImageAliasDoc": "",
  "resourceManager": "",
  "authentication": {
    "loginEndpoint": "",
    "audiences": [
      "",
      ""
    ],
    "tenant": "",
    "identityProvider": ""
  },
  "suffixes": {
    "acrLoginServer": "",
    "azureDatalakeAnalyticsCatalogAndJob": "",
    "azureDatalakeStoreFileSystem": "",
    "azureFrontDoorEndpointSuffix": "",
    "keyvaultDns": "",
    "sqlServerHostname": "",
    "storage": ""
  }
}

예시

다음 예제 Bicep 파일은 환경 개체를 반환합니다.

output environmentOutput object = environment()

위의 예제는 전체 Azure에 배포되는 경우 다음 개체를 반환합니다.

{
  "name": "AzureCloud",
  "gallery": "https://gallery.azure.com/",
  "graph": "https://graph.windows.net/",
  "portal": "https://portal.azure.com",
  "graphAudience": "https://graph.windows.net/",
  "activeDirectoryDataLake": "https://datalake.azure.net/",
  "batch": "https://batch.core.windows.net/",
  "media": "https://rest.media.azure.net",
  "sqlManagement": "https://management.core.windows.net:8443/",
  "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json",
  "resourceManager": "https://management.azure.com/",
  "authentication": {
    "loginEndpoint": "https://login.microsoftonline.com/",
    "audiences": [ "https://management.core.windows.net/", "https://management.azure.com/" ],
    "tenant": "common",
    "identityProvider": "AAD"
  },
  "suffixes": {
    "acrLoginServer": ".azurecr.io",
    "azureDatalakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net",
    "azureDatalakeStoreFileSystem": "azuredatalakestore.net",
    "azureFrontDoorEndpointSuffix": "azurefd.net",
    "keyvaultDns": ".vault.azure.net",
    "sqlServerHostname": ".database.windows.net",
    "storage": "core.windows.net"
  }
}

다음 단계

  • 리소스, 리소스 그룹 또는 구독에서 값을 가져오려면 리소스 함수를 참조하세요.