Cache Blob Target
Manages a Blob Target within a HPC Cache.
NOTE:: By request of the service team the provider no longer automatically registering the
Microsoft.StorageCache
Resource Provider for this resource. To register it you can runaz provider register --namespace 'Microsoft.StorageCache'
.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as azuread from "@pulumi/azuread";
const exampleResourceGroup = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
name: "examplevn",
addressSpaces: ["10.0.0.0/16"],
location: exampleResourceGroup.location,
resourceGroupName: exampleResourceGroup.name,
});
const exampleSubnet = new azure.network.Subnet("example", {
name: "examplesubnet",
resourceGroupName: exampleResourceGroup.name,
virtualNetworkName: exampleVirtualNetwork.name,
addressPrefixes: ["10.0.1.0/24"],
});
const exampleCache = new azure.hpc.Cache("example", {
name: "examplehpccache",
resourceGroupName: exampleResourceGroup.name,
location: exampleResourceGroup.location,
cacheSizeInGb: 3072,
subnetId: exampleSubnet.id,
skuName: "Standard_2G",
});
const exampleAccount = new azure.storage.Account("example", {
name: "examplestorgaccount",
resourceGroupName: exampleResourceGroup.name,
location: exampleResourceGroup.location,
accountTier: "Standard",
accountReplicationType: "LRS",
});
const exampleContainer = new azure.storage.Container("example", {
name: "examplestoragecontainer",
storageAccountName: exampleAccount.name,
});
const example = azuread.getServicePrincipal({
displayName: "HPC Cache Resource Provider",
});
const exampleStorageAccountContrib = new azure.authorization.Assignment("example_storage_account_contrib", {
scope: exampleAccount.id,
roleDefinitionName: "Storage Account Contributor",
principalId: example.then(example => example.objectId),
});
const exampleStorageBlobDataContrib = new azure.authorization.Assignment("example_storage_blob_data_contrib", {
scope: exampleAccount.id,
roleDefinitionName: "Storage Blob Data Contributor",
principalId: example.then(example => example.objectId),
});
const exampleCacheBlobTarget = new azure.hpc.CacheBlobTarget("example", {
name: "examplehpccblobtarget",
resourceGroupName: exampleResourceGroup.name,
cacheName: exampleCache.name,
storageContainerId: exampleContainer.resourceManagerId,
namespacePath: "/blob_storage",
});
Content copied to clipboard
import pulumi
import pulumi_azure as azure
import pulumi_azuread as azuread
example_resource_group = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("example",
name="examplevn",
address_spaces=["10.0.0.0/16"],
location=example_resource_group.location,
resource_group_name=example_resource_group.name)
example_subnet = azure.network.Subnet("example",
name="examplesubnet",
resource_group_name=example_resource_group.name,
virtual_network_name=example_virtual_network.name,
address_prefixes=["10.0.1.0/24"])
example_cache = azure.hpc.Cache("example",
name="examplehpccache",
resource_group_name=example_resource_group.name,
location=example_resource_group.location,
cache_size_in_gb=3072,
subnet_id=example_subnet.id,
sku_name="Standard_2G")
example_account = azure.storage.Account("example",
name="examplestorgaccount",
resource_group_name=example_resource_group.name,
location=example_resource_group.location,
account_tier="Standard",
account_replication_type="LRS")
example_container = azure.storage.Container("example",
name="examplestoragecontainer",
storage_account_name=example_account.name)
example = azuread.get_service_principal(display_name="HPC Cache Resource Provider")
example_storage_account_contrib = azure.authorization.Assignment("example_storage_account_contrib",
scope=example_account.id,
role_definition_name="Storage Account Contributor",
principal_id=example.object_id)
example_storage_blob_data_contrib = azure.authorization.Assignment("example_storage_blob_data_contrib",
scope=example_account.id,
role_definition_name="Storage Blob Data Contributor",
principal_id=example.object_id)
example_cache_blob_target = azure.hpc.CacheBlobTarget("example",
name="examplehpccblobtarget",
resource_group_name=example_resource_group.name,
cache_name=example_cache.name,
storage_container_id=example_container.resource_manager_id,
namespace_path="/blob_storage")
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using AzureAD = Pulumi.AzureAD;
return await Deployment.RunAsync(() =>
{
var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
{
Name = "examplevn",
AddressSpaces = new[]
{
"10.0.0.0/16",
},
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
});
var exampleSubnet = new Azure.Network.Subnet("example", new()
{
Name = "examplesubnet",
ResourceGroupName = exampleResourceGroup.Name,
VirtualNetworkName = exampleVirtualNetwork.Name,
AddressPrefixes = new[]
{
"10.0.1.0/24",
},
});
var exampleCache = new Azure.Hpc.Cache("example", new()
{
Name = "examplehpccache",
ResourceGroupName = exampleResourceGroup.Name,
Location = exampleResourceGroup.Location,
CacheSizeInGb = 3072,
SubnetId = exampleSubnet.Id,
SkuName = "Standard_2G",
});
var exampleAccount = new Azure.Storage.Account("example", new()
{
Name = "examplestorgaccount",
ResourceGroupName = exampleResourceGroup.Name,
Location = exampleResourceGroup.Location,
AccountTier = "Standard",
AccountReplicationType = "LRS",
});
var exampleContainer = new Azure.Storage.Container("example", new()
{
Name = "examplestoragecontainer",
StorageAccountName = exampleAccount.Name,
});
var example = AzureAD.GetServicePrincipal.Invoke(new()
{
DisplayName = "HPC Cache Resource Provider",
});
var exampleStorageAccountContrib = new Azure.Authorization.Assignment("example_storage_account_contrib", new()
{
Scope = exampleAccount.Id,
RoleDefinitionName = "Storage Account Contributor",
PrincipalId = example.Apply(getServicePrincipalResult => getServicePrincipalResult.ObjectId),
});
var exampleStorageBlobDataContrib = new Azure.Authorization.Assignment("example_storage_blob_data_contrib", new()
{
Scope = exampleAccount.Id,
RoleDefinitionName = "Storage Blob Data Contributor",
PrincipalId = example.Apply(getServicePrincipalResult => getServicePrincipalResult.ObjectId),
});
var exampleCacheBlobTarget = new Azure.Hpc.CacheBlobTarget("example", new()
{
Name = "examplehpccblobtarget",
ResourceGroupName = exampleResourceGroup.Name,
CacheName = exampleCache.Name,
StorageContainerId = exampleContainer.ResourceManagerId,
NamespacePath = "/blob_storage",
});
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/authorization"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/hpc"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/storage"
"github.com/pulumi/pulumi-azuread/sdk/v5/go/azuread"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
Name: pulumi.String("examplevn"),
AddressSpaces: pulumi.StringArray{
pulumi.String("10.0.0.0/16"),
},
Location: exampleResourceGroup.Location,
ResourceGroupName: exampleResourceGroup.Name,
})
if err != nil {
return err
}
exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
Name: pulumi.String("examplesubnet"),
ResourceGroupName: exampleResourceGroup.Name,
VirtualNetworkName: exampleVirtualNetwork.Name,
AddressPrefixes: pulumi.StringArray{
pulumi.String("10.0.1.0/24"),
},
})
if err != nil {
return err
}
exampleCache, err := hpc.NewCache(ctx, "example", &hpc.CacheArgs{
Name: pulumi.String("examplehpccache"),
ResourceGroupName: exampleResourceGroup.Name,
Location: exampleResourceGroup.Location,
CacheSizeInGb: pulumi.Int(3072),
SubnetId: exampleSubnet.ID(),
SkuName: pulumi.String("Standard_2G"),
})
if err != nil {
return err
}
exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("examplestorgaccount"),
ResourceGroupName: exampleResourceGroup.Name,
Location: exampleResourceGroup.Location,
AccountTier: pulumi.String("Standard"),
AccountReplicationType: pulumi.String("LRS"),
})
if err != nil {
return err
}
exampleContainer, err := storage.NewContainer(ctx, "example", &storage.ContainerArgs{
Name: pulumi.String("examplestoragecontainer"),
StorageAccountName: exampleAccount.Name,
})
if err != nil {
return err
}
example, err := azuread.LookupServicePrincipal(ctx, &azuread.LookupServicePrincipalArgs{
DisplayName: pulumi.StringRef("HPC Cache Resource Provider"),
}, nil)
if err != nil {
return err
}
_, err = authorization.NewAssignment(ctx, "example_storage_account_contrib", &authorization.AssignmentArgs{
Scope: exampleAccount.ID(),
RoleDefinitionName: pulumi.String("Storage Account Contributor"),
PrincipalId: pulumi.String(example.ObjectId),
})
if err != nil {
return err
}
_, err = authorization.NewAssignment(ctx, "example_storage_blob_data_contrib", &authorization.AssignmentArgs{
Scope: exampleAccount.ID(),
RoleDefinitionName: pulumi.String("Storage Blob Data Contributor"),
PrincipalId: pulumi.String(example.ObjectId),
})
if err != nil {
return err
}
_, err = hpc.NewCacheBlobTarget(ctx, "example", &hpc.CacheBlobTargetArgs{
Name: pulumi.String("examplehpccblobtarget"),
ResourceGroupName: exampleResourceGroup.Name,
CacheName: exampleCache.Name,
StorageContainerId: exampleContainer.ResourceManagerId,
NamespacePath: pulumi.String("/blob_storage"),
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.network.VirtualNetwork;
import com.pulumi.azure.network.VirtualNetworkArgs;
import com.pulumi.azure.network.Subnet;
import com.pulumi.azure.network.SubnetArgs;
import com.pulumi.azure.hpc.Cache;
import com.pulumi.azure.hpc.CacheArgs;
import com.pulumi.azure.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
import com.pulumi.azure.storage.Container;
import com.pulumi.azure.storage.ContainerArgs;
import com.pulumi.azuread.AzureadFunctions;
import com.pulumi.azuread.inputs.GetServicePrincipalArgs;
import com.pulumi.azure.authorization.Assignment;
import com.pulumi.azure.authorization.AssignmentArgs;
import com.pulumi.azure.hpc.CacheBlobTarget;
import com.pulumi.azure.hpc.CacheBlobTargetArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
.name("examplevn")
.addressSpaces("10.0.0.0/16")
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.build());
var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
.name("examplesubnet")
.resourceGroupName(exampleResourceGroup.name())
.virtualNetworkName(exampleVirtualNetwork.name())
.addressPrefixes("10.0.1.0/24")
.build());
var exampleCache = new Cache("exampleCache", CacheArgs.builder()
.name("examplehpccache")
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.cacheSizeInGb(3072)
.subnetId(exampleSubnet.id())
.skuName("Standard_2G")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("examplestorgaccount")
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.accountTier("Standard")
.accountReplicationType("LRS")
.build());
var exampleContainer = new Container("exampleContainer", ContainerArgs.builder()
.name("examplestoragecontainer")
.storageAccountName(exampleAccount.name())
.build());
final var example = AzureadFunctions.getServicePrincipal(GetServicePrincipalArgs.builder()
.displayName("HPC Cache Resource Provider")
.build());
var exampleStorageAccountContrib = new Assignment("exampleStorageAccountContrib", AssignmentArgs.builder()
.scope(exampleAccount.id())
.roleDefinitionName("Storage Account Contributor")
.principalId(example.applyValue(getServicePrincipalResult -> getServicePrincipalResult.objectId()))
.build());
var exampleStorageBlobDataContrib = new Assignment("exampleStorageBlobDataContrib", AssignmentArgs.builder()
.scope(exampleAccount.id())
.roleDefinitionName("Storage Blob Data Contributor")
.principalId(example.applyValue(getServicePrincipalResult -> getServicePrincipalResult.objectId()))
.build());
var exampleCacheBlobTarget = new CacheBlobTarget("exampleCacheBlobTarget", CacheBlobTargetArgs.builder()
.name("examplehpccblobtarget")
.resourceGroupName(exampleResourceGroup.name())
.cacheName(exampleCache.name())
.storageContainerId(exampleContainer.resourceManagerId())
.namespacePath("/blob_storage")
.build());
}
}
Content copied to clipboard
resources:
exampleResourceGroup:
type: azure:core:ResourceGroup
name: example
properties:
name: example-resources
location: West Europe
exampleVirtualNetwork:
type: azure:network:VirtualNetwork
name: example
properties:
name: examplevn
addressSpaces:
- 10.0.0.0/16
location: ${exampleResourceGroup.location}
resourceGroupName: ${exampleResourceGroup.name}
exampleSubnet:
type: azure:network:Subnet
name: example
properties:
name: examplesubnet
resourceGroupName: ${exampleResourceGroup.name}
virtualNetworkName: ${exampleVirtualNetwork.name}
addressPrefixes:
- 10.0.1.0/24
exampleCache:
type: azure:hpc:Cache
name: example
properties:
name: examplehpccache
resourceGroupName: ${exampleResourceGroup.name}
location: ${exampleResourceGroup.location}
cacheSizeInGb: 3072
subnetId: ${exampleSubnet.id}
skuName: Standard_2G
exampleAccount:
type: azure:storage:Account
name: example
properties:
name: examplestorgaccount
resourceGroupName: ${exampleResourceGroup.name}
location: ${exampleResourceGroup.location}
accountTier: Standard
accountReplicationType: LRS
exampleContainer:
type: azure:storage:Container
name: example
properties:
name: examplestoragecontainer
storageAccountName: ${exampleAccount.name}
exampleStorageAccountContrib:
type: azure:authorization:Assignment
name: example_storage_account_contrib
properties:
scope: ${exampleAccount.id}
roleDefinitionName: Storage Account Contributor
principalId: ${example.objectId}
exampleStorageBlobDataContrib:
type: azure:authorization:Assignment
name: example_storage_blob_data_contrib
properties:
scope: ${exampleAccount.id}
roleDefinitionName: Storage Blob Data Contributor
principalId: ${example.objectId}
exampleCacheBlobTarget:
type: azure:hpc:CacheBlobTarget
name: example
properties:
name: examplehpccblobtarget
resourceGroupName: ${exampleResourceGroup.name}
cacheName: ${exampleCache.name}
storageContainerId: ${exampleContainer.resourceManagerId}
namespacePath: /blob_storage
variables:
example:
fn::invoke:
function: azuread:getServicePrincipal
arguments:
displayName: HPC Cache Resource Provider
Content copied to clipboard
Import
Blob Targets within an HPC Cache can be imported using the resource id
, e.g.
$ pulumi import azure:hpc/cacheBlobTarget:CacheBlobTarget example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.StorageCache/caches/cache1/storageTargets/target1
Content copied to clipboard
Properties
Link copied to clipboard
The name of the access policy applied to this target. Defaults to default
.
Link copied to clipboard
The client-facing file path of the HPC Cache Blob Target.
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
The name of the Resource Group in which to create the HPC Cache Blob Target. Changing this forces a new resource to be created.
Link copied to clipboard
The Resource Manager ID of the Storage Container used as the HPC Cache Blob Target. Changing this forces a new resource to be created.