mysterious-australia-14256
07/06/2020, 10:11 AMtall-librarian-49374
07/06/2020, 11:21 AMmysterious-australia-14256
07/06/2020, 6:55 PMplain-eye-9759
07/07/2020, 11:26 AMinterface StickSettingsArgs {
functionAppName: pulumi.Input<string>;
hostingPlanName: pulumi.Input<string>;
location: pulumi.Input<string>;
resourceGroupName: pulumi.Input<string>;
settings: string[];
}
class StickySettings extends pulumi.ComponentResource {
constructor(name: string,
args: StickSettingsArgs,
opts: pulumi.ComponentResourceOptions = {}) {
super("custom:appservice:StickyConfig", name, args, opts);
const slotSettingsTemplate = {
$schema: "<http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#>",
contentVersion: "1.0.0.0",
variables: {
functionAppName: args.functionAppName,
hostingPlanName: args.hostingPlanName,
location: args.location
},
resources: [
{
apiVersion: "2015-08-01",
name: "[variables('functionAppName')]",
type: "Microsoft.Web/sites",
location: "[variables('location')]",
properties: {
serverFarmId: "[variables('hostingPlanName')]"
},
resources: [
{
apiVersion: "2015-08-01",
name: "slotConfigNames",
type: "config",
dependsOn: [
"[resourceId('Microsoft.Web/sites', variables('functionAppName'))]"
],
properties: {
appSettingNames: args.settings
}
},
]
}
]
}
const functionSlotConfigDeployment = new azure.core.TemplateDeployment(name, {
resourceGroupName: args.resourceGroupName,
name,
templateBody: pulumi.output(slotSettingsTemplate).apply(JSON.stringify),
deploymentMode: "Incremental",
}, { parent: this });
this.registerOutputs();
}
}
// then used it like this
const stickyConfigSettings = new StickySettings("stickySlotConfig", {
functionAppName: functionApp.name,
hostingPlanName: config.appServicePlanName,
location: resourceGroup.location,
resourceGroupName: resourceGroup.name,
settings: [an-array-of-the-sticky-app-settings-names]
});
mysterious-australia-14256
07/07/2020, 3:06 PM