Bicep エラー コード - BCP139
このエラーは、 resource
を使用して、ターゲットスコープとは異なるスコープにリソースをデプロイするときに発生します。 代わりに、module
を使用する必要があります。 詳細については、スコープに基づく次の記事を参照してください。
- リソース グループ: スコープを別のリソース グループにします。
- サブスクリプション: デプロイ スコープ。
- 管理グループ: 展開スコープ。
- テナント: 展開スコープ。
エラーの説明
A resource's scope must match the scope of the Bicep file for it to be deployable. You must use modules to deploy resources to a different scope.
解決策
ターゲット スコープではないスコープにリソースをデプロイするには、 module
を追加します。
例
次の例では、ストレージ アカウント リソースを同じサブスクリプション内の別のリソース グループにデプロイします。 この例では、 module
宣言型が使用されていないため、エラーが発生します。
param otherResourceGroup string
param location string
// resource deployed to a different resource group in the same subscription
resource storage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: uniqueString(resourceGroup().id)
scope: resourceGroup(otherResourceGroup)
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
module
宣言型を使用して、エラーを修正できます。
param otherResourceGroup string
// module deployed to a different resource group in the same subscription
module exampleModule 'module.bicep' = {
name: 'deployStorageToAnotherRG'
scope: resourceGroup(otherResourceGroup)
}
次の例では、リソース グループを別のサブスクリプションにデプロイします。 この例では、 module
が使用されていないため、エラーが発生します
targetScope = 'subscription'
param otherSubscriptionID string
// resource deployed to a different subscription
resource exampleResource 'Microsoft.Resources/resourceGroups@2024-03-01' = {
name: 'deployToDifferentSub'
scope: subscription(otherSubscriptionID)
location: 'eastus'
}
module
宣言型を使用して、エラーを修正できます。
targetScope = 'subscription'
param otherSubscriptionID string
// module deployed to a different subscription
module exampleModule 'module.bicep' = {
name: 'deployToDifferentSub'
scope: subscription(otherSubscriptionID)
}
次のステップ
Bicep エラーコードと警告コードの詳細については、「 Bicep コア診断を参照してください。