Azure Provisioning core library for JavaScript

@azure/provisioning-coreAzure provisioning resource kütüphaneleri için paylaşılan yazarlık modelini sağlar.

Başlangıç Yapmak

Bir dağıtım yığını oluşturun, ardından kaynakları yığına veya başka bir provisioning bileşenine ekleyin:

import { Stack, ResourceGroup, fn } from "@azure/provisioning-core";

const stack = new Stack("application");
new ResourceGroup(stack, {
  name: fn.concat("rg-", fn.uniqueString("application")),
  location: "eastus",
});

Bir Key Vault kaynağını doğrudan bir kaynak grubuna bağlamak için çekirdek Resource API'yi kullanın:

import { Stack, ResourceGroup, Resource, fn } from "@azure/provisioning-core";

const stack = new Stack("keyvault-deployment");
const resourceGroup = new ResourceGroup(stack, {
  name: "rg-keyvault",
  location: "eastus",
});
new Resource(resourceGroup, {
  type: "Microsoft.KeyVault/vaults",
  apiVersion: "2024-11-01",
  name: fn.concat("kv-", fn.uniqueString(resourceGroup.id)),
  location: resourceGroup.location,
  properties: {
    tenantId: "00000000-0000-0000-0000-000000000000",
    sku: { family: "A", name: "standard" },
  },
});

Servise özgü tipli kaynak sınıfları için Key Vault provisioning örneğine bakınız.

Sağlama tanımları dağıtımdan önce yazılır. Yalnızca okunabilir kaynak özellikleri, kablolama çıktıları ve bağımlı kaynaklar için ifade olarak kullanılabilir hale gelirken, yalnızca yazılabilir özellikler atanabilir.

Görev zamanı ayrımcıları

Ayrımcı özellikler, TypeScript'in doğru sendika üyesini seçebilmesi için literal tipler kullanır. Bir ayrımcı, dağıtım zamanı ifadesinden geldiğinde, diğer özellikleri için tür kontrolü korunurken amaçlanan varyantı seçmek için kullanın asDiscriminator :

import { ParameterCollection, asDiscriminator } from "@azure/provisioning-core";

type Rule =
  | {
      kind: "cache";
      cacheKind: "long" | "short";
      days: number;
    }
  | {
      kind: "redirect";
      url: string;
    };
const ruleKind = new ParameterCollection().add("ruleKind", "string", {
  allowed: ["cache"],
});
const widget: {
  properties: {
    primaryRule?: Rule;
  };
} = {
  properties: {},
};
widget.properties.primaryRule = {
  kind: asDiscriminator(ruleKind),
  cacheKind: "long",
  days: 7,
};

Mümkün olduğunda kelimenin tam anlamıyla ayrımcıları tercih edin. asDiscriminator dağıtım süresi değerini doğrulamaz; parametreyi amaçlanan literal ile sınırlar ve allowed.