Azure Provisioning core library for JavaScript

@azure/provisioning-coreAzureのプロビジョニングリソースライブラリの共有オーサリングモデルを提供します。

作業の開始

デプロイスタックを作成し、その後、リソースをスタックまたは他のプロビジョニングコンポーネントにアタッチします。

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",
});

コアResourceAPIを使って、Key Vaultリソースを直接リソースグループにアタッチしてください:

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" },
  },
});

サービス固有の型付きリソースクラスについては、Key Vaultのプロビジョニング例を参照してください。

プロビジョニングの定義は展開前に作成されます。 読み取り専用のリソースプロパティは配線出力や依存リソースの式として利用可能ですが、書き込み可能なプロパティのみを割り当てることができます。

展開時間識別器

判別子プロパティはリテラル型を使うため、TypeScriptが正しい和集合メンバーを選択できます。 判別子がデプロイ時の式から来た場合、 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,
};

可能な限り文字通りの識別者を好む。 asDiscriminator デプロイメント時間の値を検証しません。パラメータを意図したリテラルに制限します allowed。