@azure/provisioning-core提供 Azure 配置資源庫的共享創作模型。
入門指南
建立部署堆疊,然後將資源附加到堆疊或其他配置元件上:
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",
});
使用核心 Resource API 直接將 金鑰保存庫 資源附加到資源群組:
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" },
},
});
關於服務特定的類型資源類別,請參見 金鑰保存庫 配置範例。
配置定義是在部署前撰寫的。 唯讀資源屬性仍可作為配線輸出與相依資源的表達式使用,而只能指派可寫屬性。
部署時間判別器
判別器屬性使用字面型別,讓 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。