pulumi -azure-编写功能的打字稿问题

发布于 2025-02-10 19:44:45 字数 1858 浏览 3 评论 0原文

在以前的工作中使用Terraform之前,我没有Pulumi/Typescript的经验。

我有两个文件,index.ts和blob.ts,请参见下文。

我拥有创建存储帐户,资源组,斑点容器的创建功能,并且需要在监视器上发送存储帐户的密钥。

我对blob.ts文件

导出const storageaccountkeys = pulumi.all([resourcegroup.name,

如果有导出,我有错误,如果不导出,脚本在工作,但不写我的键 帐户

对于

存储 错误,还有其他方法吗

//     blob.ts       //

import * as pulumi from "@pulumi/pulumi";
import * as resources from "@pulumi/azure-native/resources";
import * as storage from "@pulumi/azure-native/storage";


export default function CreateStorageContainer() {


// Create an Azure Resource Group

const resourceGroup = new resources.ResourceGroup("somegroup", {
    location: "westeurope",
    resourceGroupName: "somegroup",
});


// Create an Azure resource (Storage Account)
const storageAccount = new storage.StorageAccount("sgsomestorageaccount", {
    accountName: "sgsomestorageaccount",
    resourceGroupName: resourceGroup.name,
    sku: {
        name: storage.SkuName.Standard_LRS,
    },
    kind: storage.Kind.StorageV2,
});

// Create Blob container with name : 
const blobContainer = new storage.BlobContainer("someblobcontainer", {
    accountName: storageAccount.name,
    containerName: "someblobcontainer",
    resourceGroupName: resourceGroup.name,
});


// Export the primary key of the Storage Account
export const storageAccountKeys = pulumi.all([resourceGroup.name, storageAccount.name]).apply(([resourceGroupName, accountName]) =>
    storage.listStorageAccountKeys({ resourceGroupName, accountName }));
const primaryStorageKey = storageAccountKeys.keys[0].value;

}

   //  index.ts //

import CreateStorageContainer from "./blob.ts"

CreateStorageContainer();

? /a>

请参阅ScreenShot

I don't have experience with Pulumi/typescript, before I used terraform at my previous jobs.

I have two files, index.ts and blob.ts please see below.

I have create function which is creating storage account,resource group, blob container, and needs to send on the monitor, key for storage account.

I am having issue with last part of blob.ts file

export const storageAccountKeys = pulumi.all([resourceGroup.name,

if there is export, I am having error, if is not export there, script is working, but not writing me key for storage account.

Error says : Modifiers cannot appear here.ts(1184)

Idea is to have only functions in index.ts, and all other code to be in other *.ts files.

Where is my mistake, what is wrong ? is there any other way how to write on monitor storage account key ?

//     blob.ts       //

import * as pulumi from "@pulumi/pulumi";
import * as resources from "@pulumi/azure-native/resources";
import * as storage from "@pulumi/azure-native/storage";


export default function CreateStorageContainer() {


// Create an Azure Resource Group

const resourceGroup = new resources.ResourceGroup("somegroup", {
    location: "westeurope",
    resourceGroupName: "somegroup",
});


// Create an Azure resource (Storage Account)
const storageAccount = new storage.StorageAccount("sgsomestorageaccount", {
    accountName: "sgsomestorageaccount",
    resourceGroupName: resourceGroup.name,
    sku: {
        name: storage.SkuName.Standard_LRS,
    },
    kind: storage.Kind.StorageV2,
});

// Create Blob container with name : 
const blobContainer = new storage.BlobContainer("someblobcontainer", {
    accountName: storageAccount.name,
    containerName: "someblobcontainer",
    resourceGroupName: resourceGroup.name,
});


// Export the primary key of the Storage Account
export const storageAccountKeys = pulumi.all([resourceGroup.name, storageAccount.name]).apply(([resourceGroupName, accountName]) =>
    storage.listStorageAccountKeys({ resourceGroupName, accountName }));
const primaryStorageKey = storageAccountKeys.keys[0].value;

}

   //  index.ts //

import CreateStorageContainer from "./blob.ts"

CreateStorageContainer();

Please see screenshot

Please see screenshot

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最丧也最甜 2025-02-17 19:44:45

您不能从函数中导出值,需要返回某些内容。

//     blob.ts       //

import * as pulumi from "@pulumi/pulumi";
import * as resources from "@pulumi/azure-native/resources";
import * as storage from "@pulumi/azure-native/storage";
import { ProximityPlacementGroupType } from "@pulumi/azure-native/compute/v20191201";

export default function CreateStorageContainer() {
  // Create an Azure Resource Group

  const resourceGroup = new resources.ResourceGroup("somegroup", {
    location: "westeurope",
    resourceGroupName: "somegroup",
  });

  // Create an Azure resource (Storage Account)
  const storageAccount = new storage.StorageAccount("sgsomestorageaccount", {
    accountName: "sgsomestorageaccount",
    resourceGroupName: resourceGroup.name,
    sku: {
      name: storage.SkuName.Standard_LRS,
    },
    kind: storage.Kind.StorageV2,
  });

  // Create Blob container with name :
  const blobContainer = new storage.BlobContainer("someblobcontainer", {
    accountName: storageAccount.name,
    containerName: "someblobcontainer",
    resourceGroupName: resourceGroup.name,
  });

  // Export the primary key of the Storage Account
  const storageAccountKeys = pulumi
    .all([resourceGroup.name, storageAccount.name])
    .apply(([resourceGroupName, accountName]) =>
      storage.listStorageAccountKeys({ resourceGroupName, accountName })
    );
  const primaryStorageKey = storageAccountKeys.keys[0].value;

  return [ storageAccountKeys, primaryStorageKey ] // return whatever you need here

}

如果您想从pulumi导出这些值,则需要在index.ts中执行此操作。

import CreateStorageContainer from "./blob"

export const foo = CreateStorageContainer();

You can't export a value from a function, you need to return something.

//     blob.ts       //

import * as pulumi from "@pulumi/pulumi";
import * as resources from "@pulumi/azure-native/resources";
import * as storage from "@pulumi/azure-native/storage";
import { ProximityPlacementGroupType } from "@pulumi/azure-native/compute/v20191201";

export default function CreateStorageContainer() {
  // Create an Azure Resource Group

  const resourceGroup = new resources.ResourceGroup("somegroup", {
    location: "westeurope",
    resourceGroupName: "somegroup",
  });

  // Create an Azure resource (Storage Account)
  const storageAccount = new storage.StorageAccount("sgsomestorageaccount", {
    accountName: "sgsomestorageaccount",
    resourceGroupName: resourceGroup.name,
    sku: {
      name: storage.SkuName.Standard_LRS,
    },
    kind: storage.Kind.StorageV2,
  });

  // Create Blob container with name :
  const blobContainer = new storage.BlobContainer("someblobcontainer", {
    accountName: storageAccount.name,
    containerName: "someblobcontainer",
    resourceGroupName: resourceGroup.name,
  });

  // Export the primary key of the Storage Account
  const storageAccountKeys = pulumi
    .all([resourceGroup.name, storageAccount.name])
    .apply(([resourceGroupName, accountName]) =>
      storage.listStorageAccountKeys({ resourceGroupName, accountName })
    );
  const primaryStorageKey = storageAccountKeys.keys[0].value;

  return [ storageAccountKeys, primaryStorageKey ] // return whatever you need here

}

If you then want to export those values from Pulumi, you'll need to do that in your index.ts

import CreateStorageContainer from "./blob"

export const foo = CreateStorageContainer();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文