1. Packages
  2. Azure Classic
  3. API Docs
  4. eventhub
  5. getSas

We recommend using Azure Native.

Azure v6.22.0 published on Tuesday, Apr 1, 2025 by Pulumi

azure.eventhub.getSas

Explore with Pulumi AI

We recommend using Azure Native.

Azure v6.22.0 published on Tuesday, Apr 1, 2025 by Pulumi

Use this data source to obtain a Shared Access Signature (SAS Token) for an existing Event Hub.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";

const exampleResourceGroup = new azure.core.ResourceGroup("example", {
    name: "example-resources",
    location: "West Europe",
});
const exampleEventHubNamespace = new azure.eventhub.EventHubNamespace("example", {
    name: "example-ehn",
    location: exampleResourceGroup.location,
    resourceGroupName: exampleResourceGroup.name,
    sku: "Basic",
});
const exampleEventHub = new azure.eventhub.EventHub("example", {
    name: "example-eh",
    namespaceName: exampleEventHubNamespace.name,
    resourceGroupName: exampleResourceGroup.name,
    partitionCount: 1,
    messageRetention: 1,
});
const exampleAuthorizationRule = new azure.eventhub.AuthorizationRule("example", {
    name: "example-ehar",
    namespaceName: exampleEventHubNamespace.name,
    eventhubName: exampleEventHub.name,
    resourceGroupName: exampleResourceGroup.name,
    listen: true,
    send: true,
    manage: true,
});
const example = azure.eventhub.getAuthorizationRuleOutput({
    name: exampleAuthorizationRule.name,
    namespaceName: exampleEventHubNamespace.name,
    eventhubName: exampleEventHub.name,
    resourceGroupName: exampleResourceGroup.name,
});
const exampleGetSas = example.apply(example => azure.eventhub.getSasOutput({
    connectionString: example.primaryConnectionString,
    expiry: "2023-06-23T00:00:00Z",
}));
Copy
import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("example",
    name="example-resources",
    location="West Europe")
example_event_hub_namespace = azure.eventhub.EventHubNamespace("example",
    name="example-ehn",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    sku="Basic")
example_event_hub = azure.eventhub.EventHub("example",
    name="example-eh",
    namespace_name=example_event_hub_namespace.name,
    resource_group_name=example_resource_group.name,
    partition_count=1,
    message_retention=1)
example_authorization_rule = azure.eventhub.AuthorizationRule("example",
    name="example-ehar",
    namespace_name=example_event_hub_namespace.name,
    eventhub_name=example_event_hub.name,
    resource_group_name=example_resource_group.name,
    listen=True,
    send=True,
    manage=True)
example = azure.eventhub.get_authorization_rule_output(name=example_authorization_rule.name,
    namespace_name=example_event_hub_namespace.name,
    eventhub_name=example_event_hub.name,
    resource_group_name=example_resource_group.name)
example_get_sas = example.apply(lambda example: azure.eventhub.get_sas_output(connection_string=example.primary_connection_string,
    expiry="2023-06-23T00:00:00Z"))
Copy
package main

import (
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/eventhub"
	"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
		}
		exampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, "example", &eventhub.EventHubNamespaceArgs{
			Name:              pulumi.String("example-ehn"),
			Location:          exampleResourceGroup.Location,
			ResourceGroupName: exampleResourceGroup.Name,
			Sku:               pulumi.String("Basic"),
		})
		if err != nil {
			return err
		}
		exampleEventHub, err := eventhub.NewEventHub(ctx, "example", &eventhub.EventHubArgs{
			Name:              pulumi.String("example-eh"),
			NamespaceName:     exampleEventHubNamespace.Name,
			ResourceGroupName: exampleResourceGroup.Name,
			PartitionCount:    pulumi.Int(1),
			MessageRetention:  pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		exampleAuthorizationRule, err := eventhub.NewAuthorizationRule(ctx, "example", &eventhub.AuthorizationRuleArgs{
			Name:              pulumi.String("example-ehar"),
			NamespaceName:     exampleEventHubNamespace.Name,
			EventhubName:      exampleEventHub.Name,
			ResourceGroupName: exampleResourceGroup.Name,
			Listen:            pulumi.Bool(true),
			Send:              pulumi.Bool(true),
			Manage:            pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		example := eventhub.LookupAuthorizationRuleOutput(ctx, eventhub.GetAuthorizationRuleOutputArgs{
			Name:              exampleAuthorizationRule.Name,
			NamespaceName:     exampleEventHubNamespace.Name,
			EventhubName:      exampleEventHub.Name,
			ResourceGroupName: exampleResourceGroup.Name,
		}, nil)
		_ = example.ApplyT(func(example eventhub.GetAuthorizationRuleResult) (eventhub.GetSasResult, error) {
			return eventhub.GetSasResult(interface{}(eventhub.GetSasOutput(ctx, eventhub.GetSasOutputArgs{
				ConnectionString: example.PrimaryConnectionString,
				Expiry:           "2023-06-23T00:00:00Z",
			}, nil))), nil
		}).(eventhub.GetSasResultOutput)
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;

return await Deployment.RunAsync(() => 
{
    var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
    {
        Name = "example-resources",
        Location = "West Europe",
    });

    var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace("example", new()
    {
        Name = "example-ehn",
        Location = exampleResourceGroup.Location,
        ResourceGroupName = exampleResourceGroup.Name,
        Sku = "Basic",
    });

    var exampleEventHub = new Azure.EventHub.EventHub("example", new()
    {
        Name = "example-eh",
        NamespaceName = exampleEventHubNamespace.Name,
        ResourceGroupName = exampleResourceGroup.Name,
        PartitionCount = 1,
        MessageRetention = 1,
    });

    var exampleAuthorizationRule = new Azure.EventHub.AuthorizationRule("example", new()
    {
        Name = "example-ehar",
        NamespaceName = exampleEventHubNamespace.Name,
        EventhubName = exampleEventHub.Name,
        ResourceGroupName = exampleResourceGroup.Name,
        Listen = true,
        Send = true,
        Manage = true,
    });

    var example = Azure.EventHub.GetAuthorizationRule.Invoke(new()
    {
        Name = exampleAuthorizationRule.Name,
        NamespaceName = exampleEventHubNamespace.Name,
        EventhubName = exampleEventHub.Name,
        ResourceGroupName = exampleResourceGroup.Name,
    });

    var exampleGetSas = Azure.EventHub.GetSas.Invoke(new()
    {
        ConnectionString = example.Apply(getAuthorizationRuleResult => getAuthorizationRuleResult.PrimaryConnectionString),
        Expiry = "2023-06-23T00:00:00Z",
    });

});
Copy
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.eventhub.EventHubNamespace;
import com.pulumi.azure.eventhub.EventHubNamespaceArgs;
import com.pulumi.azure.eventhub.EventHub;
import com.pulumi.azure.eventhub.EventHubArgs;
import com.pulumi.azure.eventhub.AuthorizationRule;
import com.pulumi.azure.eventhub.AuthorizationRuleArgs;
import com.pulumi.azure.eventhub.EventhubFunctions;
import com.pulumi.azure.eventhub.inputs.GetAuthorizationRuleArgs;
import com.pulumi.azure.eventhub.inputs.GetSasArgs;
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 exampleEventHubNamespace = new EventHubNamespace("exampleEventHubNamespace", EventHubNamespaceArgs.builder()
            .name("example-ehn")
            .location(exampleResourceGroup.location())
            .resourceGroupName(exampleResourceGroup.name())
            .sku("Basic")
            .build());

        var exampleEventHub = new EventHub("exampleEventHub", EventHubArgs.builder()
            .name("example-eh")
            .namespaceName(exampleEventHubNamespace.name())
            .resourceGroupName(exampleResourceGroup.name())
            .partitionCount(1)
            .messageRetention(1)
            .build());

        var exampleAuthorizationRule = new AuthorizationRule("exampleAuthorizationRule", AuthorizationRuleArgs.builder()
            .name("example-ehar")
            .namespaceName(exampleEventHubNamespace.name())
            .eventhubName(exampleEventHub.name())
            .resourceGroupName(exampleResourceGroup.name())
            .listen(true)
            .send(true)
            .manage(true)
            .build());

        final var example = EventhubFunctions.getAuthorizationRule(GetAuthorizationRuleArgs.builder()
            .name(exampleAuthorizationRule.name())
            .namespaceName(exampleEventHubNamespace.name())
            .eventhubName(exampleEventHub.name())
            .resourceGroupName(exampleResourceGroup.name())
            .build());

        final var exampleGetSas = EventhubFunctions.getSas(GetSasArgs.builder()
            .connectionString(example.applyValue(getAuthorizationRuleResult -> getAuthorizationRuleResult).applyValue(example -> example.applyValue(getAuthorizationRuleResult -> getAuthorizationRuleResult.primaryConnectionString())))
            .expiry("2023-06-23T00:00:00Z")
            .build());

    }
}
Copy
resources:
  exampleResourceGroup:
    type: azure:core:ResourceGroup
    name: example
    properties:
      name: example-resources
      location: West Europe
  exampleEventHubNamespace:
    type: azure:eventhub:EventHubNamespace
    name: example
    properties:
      name: example-ehn
      location: ${exampleResourceGroup.location}
      resourceGroupName: ${exampleResourceGroup.name}
      sku: Basic
  exampleEventHub:
    type: azure:eventhub:EventHub
    name: example
    properties:
      name: example-eh
      namespaceName: ${exampleEventHubNamespace.name}
      resourceGroupName: ${exampleResourceGroup.name}
      partitionCount: 1
      messageRetention: 1
  exampleAuthorizationRule:
    type: azure:eventhub:AuthorizationRule
    name: example
    properties:
      name: example-ehar
      namespaceName: ${exampleEventHubNamespace.name}
      eventhubName: ${exampleEventHub.name}
      resourceGroupName: ${exampleResourceGroup.name}
      listen: true
      send: true
      manage: true
variables:
  example:
    fn::invoke:
      function: azure:eventhub:getAuthorizationRule
      arguments:
        name: ${exampleAuthorizationRule.name}
        namespaceName: ${exampleEventHubNamespace.name}
        eventhubName: ${exampleEventHub.name}
        resourceGroupName: ${exampleResourceGroup.name}
  exampleGetSas:
    fn::invoke:
      function: azure:eventhub:getSas
      arguments:
        connectionString: ${example.primaryConnectionString}
        expiry: 2023-06-23T00:00:00Z
Copy

Using getSas

Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

function getSas(args: GetSasArgs, opts?: InvokeOptions): Promise<GetSasResult>
function getSasOutput(args: GetSasOutputArgs, opts?: InvokeOptions): Output<GetSasResult>
Copy
def get_sas(connection_string: Optional[str] = None,
            expiry: Optional[str] = None,
            opts: Optional[InvokeOptions] = None) -> GetSasResult
def get_sas_output(connection_string: Optional[pulumi.Input[str]] = None,
            expiry: Optional[pulumi.Input[str]] = None,
            opts: Optional[InvokeOptions] = None) -> Output[GetSasResult]
Copy
func GetSas(ctx *Context, args *GetSasArgs, opts ...InvokeOption) (*GetSasResult, error)
func GetSasOutput(ctx *Context, args *GetSasOutputArgs, opts ...InvokeOption) GetSasResultOutput
Copy

> Note: This function is named GetSas in the Go SDK.

public static class GetSas 
{
    public static Task<GetSasResult> InvokeAsync(GetSasArgs args, InvokeOptions? opts = null)
    public static Output<GetSasResult> Invoke(GetSasInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetSasResult> getSas(GetSasArgs args, InvokeOptions options)
public static Output<GetSasResult> getSas(GetSasArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: azure:eventhub/getSas:getSas
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

ConnectionString This property is required. string
The connection string for the Event Hub to which this SAS applies.
Expiry This property is required. string
The expiration time and date of this SAS. Must be a valid ISO-8601 format time/date string.
ConnectionString This property is required. string
The connection string for the Event Hub to which this SAS applies.
Expiry This property is required. string
The expiration time and date of this SAS. Must be a valid ISO-8601 format time/date string.
connectionString This property is required. String
The connection string for the Event Hub to which this SAS applies.
expiry This property is required. String
The expiration time and date of this SAS. Must be a valid ISO-8601 format time/date string.
connectionString This property is required. string
The connection string for the Event Hub to which this SAS applies.
expiry This property is required. string
The expiration time and date of this SAS. Must be a valid ISO-8601 format time/date string.
connection_string This property is required. str
The connection string for the Event Hub to which this SAS applies.
expiry This property is required. str
The expiration time and date of this SAS. Must be a valid ISO-8601 format time/date string.
connectionString This property is required. String
The connection string for the Event Hub to which this SAS applies.
expiry This property is required. String
The expiration time and date of this SAS. Must be a valid ISO-8601 format time/date string.

getSas Result

The following output properties are available:

ConnectionString string
Expiry string
Id string
The provider-assigned unique ID for this managed resource.
Sas string
The computed Event Hub Shared Access Signature (SAS).
ConnectionString string
Expiry string
Id string
The provider-assigned unique ID for this managed resource.
Sas string
The computed Event Hub Shared Access Signature (SAS).
connectionString String
expiry String
id String
The provider-assigned unique ID for this managed resource.
sas String
The computed Event Hub Shared Access Signature (SAS).
connectionString string
expiry string
id string
The provider-assigned unique ID for this managed resource.
sas string
The computed Event Hub Shared Access Signature (SAS).
connection_string str
expiry str
id str
The provider-assigned unique ID for this managed resource.
sas str
The computed Event Hub Shared Access Signature (SAS).
connectionString String
expiry String
id String
The provider-assigned unique ID for this managed resource.
sas String
The computed Event Hub Shared Access Signature (SAS).

Package Details

Repository
Azure Classic pulumi/pulumi-azure
License
Apache-2.0
Notes
This Pulumi package is based on the azurerm Terraform Provider.

We recommend using Azure Native.

Azure v6.22.0 published on Tuesday, Apr 1, 2025 by Pulumi