average-optician-67817
10/31/2024, 9:22 PMacm
to generate some certificates so that I can store them on SSM and then reference them on my application code serverless framework
.
I exported the required values as outputs so that I could take a look at them but to my surprise they are `null`and empty ([]
).
The funny thing is that everything was created correctly on AWS
average-optician-67817
10/31/2024, 9:22 PMimport * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const stack = pulumi.getStack();
const certificate = new aws.acm.Certificate("core-certificate", {
domainName: `api.${stack}.<http://app.example.io|app.example.io>`,
validationMethod: "DNS",
subjectAlternativeNames: [`*.api.${stack}.<http://app.example.io|app.example.io>`],
// default
keyAlgorithm: "RSA_2048",
// stick to serverless conventions
tags: {
STAGE: stack,
},
});
const zone = aws.route53.getZone({
name: `${stack}.<http://app.example.io|app.example.io>`,
privateZone: false,
});
const certificationRecords: aws.route53.Record[] = [];
certificate.domainValidationOptions.apply((domainValidationOptions) => {
for (const [index, dvo] of Object.entries(domainValidationOptions)) {
certificationRecords.push(
new aws.route53.Record(`certification-validation-record-${index}`, {
name: dvo.resourceRecordName,
zoneId: zone.then((zone) => zone.zoneId),
records: [dvo.resourceRecordValue],
type: dvo.resourceRecordType,
allowOverwrite: true,
ttl: 10,
})
);
}
});
const certificateValidation = new aws.acm.CertificateValidation(
"certificate-validation",
{
certificateArn: certificate.arn,
validationRecordFqdns: certificationRecords.map((record) => record.fqdn),
}
);
export const records = certificationRecords;
export const validation = certificateValidation.validationRecordFqdns;
average-optician-67817
10/31/2024, 9:25 PM{
"records": [],
"validation": null
}
average-optician-67817
10/31/2024, 9:26 PMaverage-optician-67817
10/31/2024, 9:26 PMaverage-optician-67817
10/31/2024, 9:29 PMlittle-cartoon-10569
10/31/2024, 9:48 PMaverage-optician-67817
10/31/2024, 10:01 PMdomainValidationOptions
?average-optician-67817
10/31/2024, 10:07 PMaverage-optician-67817
10/31/2024, 10:13 PMimport * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const stack = pulumi.getStack();
const certificate = new aws.acm.Certificate("core-certificate", {
domainName: `api.${stack}.<http://app.example.io|app.example.io>`,
validationMethod: "DNS",
subjectAlternativeNames: [`*.api.${stack}.<http://app.example.io|app.example.io>`],
// default
keyAlgorithm: "RSA_2048",
// stick to serverless conventions
tags: {
STAGE: stack,
},
});
const zone = aws.route53.getZone({
name: `${stack}.<http://app.example.io|app.example.io>`,
privateZone: false,
});
const certificationRecords = certificate.domainValidationOptions.apply(
(domainValidationOptions) => {
return Object.entries(domainValidationOptions).map(([index, dvo]) => {
return new aws.route53.Record(
`certification-validation-record-${index}`,
{
name: dvo.resourceRecordName,
zoneId: zone.then((zone) => zone.zoneId),
records: [dvo.resourceRecordValue],
type: dvo.resourceRecordType,
allowOverwrite: true,
ttl: 10,
}
);
});
}
);
const certificateValidation = new aws.acm.CertificateValidation(
"certificate-validation",
{
certificateArn: certificate.arn,
validationRecordFqdns: certificationRecords.apply((records) =>
records.map((record) => record.fqdn)
),
}
);
export const certificateOutput = certificate;
export const recordsOutput = certificationRecords;
export const validationOutput = certificateValidation;
average-optician-67817
10/31/2024, 10:13 PMlittle-cartoon-10569
10/31/2024, 10:13 PMlittle-cartoon-10569
10/31/2024, 10:15 PMaverage-optician-67817
10/31/2024, 10:32 PMconst certificationRecords = certificate.domainValidationOptions.apply(
(domainValidationOptions) =>
Object.entries(domainValidationOptions).map(
([index, dvo]) =>
new aws.route53.Record(`certification-validation-record-${index}`, {
name: dvo.resourceRecordName,
zoneId: zone.then((zone) => zone.zoneId),
records: [dvo.resourceRecordValue],
type: dvo.resourceRecordType,
allowOverwrite: true,
ttl: 10,
})
)
);
average-optician-67817
10/31/2024, 10:32 PM