m

    modern-branch-92818

    4 months ago
    Hello, I'm fairly experienced with Terraform but am diving into Pulumi for the first time and I'm getting tripped on the basics, I'm basically trying to write some inline pulumi config that will deploy an azure storage account container when a user clicks a button on the website:
    import * as pulumi from "@pulumi/pulumi";
    import * as azure from "@pulumi/azure";
    
    const config = new pulumi.Config();
    const location = config.require("location");
    const storageAccountName = config.require("storageAccountName");
    const storageContainerName = config.require("storageContainerName");
    const resourceGroupName = config.require("resourceGroupName");
    const storage = azure.core.getResourceGroup({
        name: resourceGroupName,
        location: location,
    });
    const container = new azure.storage.Container("container", {
        name: storageContainerName,
        storageAccountName: storageAccountName,
        containerAccessType: "private",
    });
    export const containerId = container.id;
    export const containerResourceId = container.resourceManagerId;
    This typescript code snippet was generated using tf2pulumi and I"m confuse about two things: • How do I add provider configuration to this to tell Pulumi which subscription I want to deploy the resource to? • How do I add backend configuraiton to this to tell Pulumi which backend I want to store my state file in (which in this case should be an Azure storage account) I've read through the documentation and can't seem to find the answer to these questions, any assistance would be greatly appreciated
    m

    miniature-musician-31262

    4 months ago
    Hi @modern-branch-92818 — for the provider configuration question, did you happen to find this page? https://www.pulumi.com/registry/packages/azure/installation-configuration/
    It explains generally the options for configuring the Azure Classic provider.
    For the second one, you can specify the backend with
    pulumi stack init
    — let me see if I can find the best doc for that
    m

    modern-branch-92818

    4 months ago
    Ah, I missed the part right at the bottom for the
    new azure.Provider
    construct, I think that answers my question regarding the provider configuration
    m

    miniature-musician-31262

    4 months ago
    or actually, i misspoke — it’s
    pulumi login
    for the backend
    Under Logging In, you’ll find a link to the section on using Azure Blob Storage.
    m

    modern-branch-92818

    4 months ago
    yup so
    pulumi login
    is the cli tool to use for configuring the backend but can this not be defined inline?
    m

    miniature-musician-31262

    4 months ago
    Ah, I don’t think it can be defined in the program itself, no — others may correct me on that, but to the best of my knowledge the backend is configured outside the program.
    m

    modern-branch-92818

    4 months ago
    I got the azure blob storage backend working with that cli tool yesterday but if I'm deploying this with my applicaiton i'm not going to be there to run
    pulumi login
    on the directory, so what's the usual expectation of how you initialise the pulumi backend for an unattended, inline function like that
    APologies for any confusion, I'm not a developer so I'm probably missing something really obvious
    m

    miniature-musician-31262

    4 months ago
    Not at all, happy to help. It sounds like what you’re trying to build would maybe be better served with the Automation API, which is made to be embedded into application code. Let me see if I can find a doc that can help you with this.
    Here’s a guide to getting started with Automation API: https://www.pulumi.com/docs/guides/automation-api/getting-started-automation-api
    I believe the way to do this, though, would still be to run
    pulumi login
    — you’d just run it as part of your application startup. So for example, if your app were running as a Node.js process on an Azure VM, and your startup script were something like
    node index.js
    , you’d just add a line before that
    node
    call to run
    pulumi login azblob://...
    first, and Automation API (running in your application) would use that as its configured backend.
    m

    modern-branch-92818

    4 months ago
    Alright, yeah so I was basically hoping to make use of the Automation API and I think I got a bit confused. So I can see pretty clearly in that page the provider configuration and the configuration of the pulumi stack for the provided deployment
    Oh, I think I may have figured it out
    On this page: https://www.pulumi.com/docs/intro/concepts/state/#logging-in it specifies setting the
    PULUMI_BACKEND_URL
    environment variable, so for Azure blob you set that to azblob://mycontainer and seet the
    AZURE_STORAGE_ACCOUNT
    and
    AZURE_STORAGE_KEY
    environment variables for the automation API to pick up on?
    or as the startup command I guess amkes sense too
    This basically answers my question
    m

    miniature-musician-31262

    4 months ago
    Awesome, glad you’re all set. I’ll make a note to get this added to the docs as well.