sparse-intern-71089
08/25/2022, 8:37 PMsquare-hair-965
08/25/2022, 8:37 PMimport * as aws from "@pulumi/aws";
import * as pulumi from "@pulumi/pulumi";
const config = new pulumi.Config();
export interface WorkerLaunchTemplateArgs {
stack: pulumi.Input<string>;
instanceType: string;
vpcSecurityGroupIds: pulumi.Output<any>[];
userData: pulumi.Output<string>;
ami: pulumi.Input<string>;
}
export default class WorkerLaunchTemplate extends pulumi.ComponentResource {
launchTemplateId;
constructor(name: string, args: WorkerLaunchTemplateArgs, opts?: pulumi.ResourceOptions) {
super("pkg:index:WorkerLaunchTemplate", name, {}, opts);
const launchTemplate = new aws.ec2.LaunchTemplate(`${args.stack}-${name}`, {
imageId: args.ami,
instanceType: args.instanceType,
userData: Buffer.from(`${args.userData}`, 'utf8').toString('base64'),
vpcSecurityGroupIds: args.vpcSecurityGroupIds,
tagSpecifications: [{
resourceType: "instance",
tags: {
Name: `${args.stack}-${name}`
},
}],
});
this.launchTemplateId = launchTemplate.id;
}
}
square-hair-965
08/25/2022, 8:38 PMsteep-toddler-94095
08/25/2022, 8:44 PMargs.userData
is an Output<string>
so you cannot treat it like a string. Similarly to a Promise
, you can only access its string value in a callback function within the apply
method (`sort of like Promise's then
method)
userData: args.userData.apply(userData => Buffer.from(userData, 'utf8').toString('base64'),
square-hair-965
08/25/2022, 8:53 PMbillowy-army-68599
square-hair-965
08/25/2022, 9:05 PMbreezy-airplane-94478
09/09/2022, 4:00 AMNo matter how you like to participate in developer communities, Pulumi wants to meet you there. If you want to meet other Pulumi users to share use-cases and best practices, contribute code or documentation, see us at an event, or just tell a story about something cool you did with Pulumi, you are part of our community.
Powered by