Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
@azure/provisioning-corezapewnia model współtworzenia dla bibliotek zasobów Azure Provisioning.
Wprowadzenie
Stwórz stos wdrożeniowy, a następnie dołącz zasoby do stosu lub do innego komponentu provisioningowego:
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",
});
Użyj podstawowego Resource API, aby bezpośrednio dołączyć zasób Key Vault do grupy zasobów:
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" },
},
});
Dla klas zasobów typu specyficznych dla usług, zobacz przykład Key Vault provisioning.
Definicje provisioningu są tworzone przed wdrożeniem. Właściwości zasobów tylko do odczytu pozostają dostępne jako wyrażenia dla przewodów wyjściowych i zależnych zasobów, podczas gdy można przypisywać tylko właściwości zapisywalne.
Dyskryminatory w czasie wdrożenia
Właściwości dyskryminatora używają literalnych typów, aby TypeScript mógł wybrać właściwego członka unii. Gdy dyskryminator pochodzi z wyrażenia w czasie wdrożenia, używamy asDiscriminator do wyboru zamierzonego wariantu, zachowując sprawdzanie typów dla jego innych właściwości:
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,
};
Wolę dosłownych dyskryminatorów, kiedy tylko to możliwe.
asDiscriminator nie waliduje wartości czasu wdrożenia; ogranicza parametr do zamierzonego literalu za pomocą allowed.
Azure SDK for JavaScript