broad-doctor-18421
11/29/2023, 10:02 PMhosted_zone = aws.route53.Zone(
"myHostedZone",
name="testzone.testing", # replace with your domain name
)
pulumi.export("zone_id", hosted_zone.id)
Example, not working:
# a component class with this function, called from the constructor.
def create_private_zone(
self: pulumi.ComponentResource,
args: Route53ZoneArgs,
opts: pulumi.ResourceOptions,
):
zone = aws.route53.Zone(
f"{args.domain_name}",
name=args.domain_name,
comment=args.comment,
vpcs=[
aws.route53.ZoneVpcArgs(vpc_id=args.vpc_id, vpc_region=args.vpc_region)
],
force_destroy=args.force_destroy,
tags=args.tags,
opts=opts,
)
self.zone
and the usage:
publicAwsDomain = Route53Zone(
"public-zone",
Route53ZoneArgs(
domain_name="aws.test.com",
),
)
pulumi.export(
Outputs.PUBLIC_ZONE_ID, publicAwsDomain.zone.zone_id
)
Gives me this error:
File "/Users/bswift/src/client/xxx/datacenter_migration/account/venv/lib/python3.11/site-packages/pulumi/runtime/stack.py", line 242, in <dictcomp>
key: massage(attr[key], seen) for key in attr if not key.startswith("_")
^^^^^^^^^^^^^^
AttributeError: 'Outputs' object has no attribute 'startswith'
little-cartoon-10569
11/29/2023, 11:10 PMlittle-cartoon-10569
11/29/2023, 11:11 PMlittle-cartoon-10569
11/29/2023, 11:11 PMf"{singlevar}"
? If you see that, you can use singlevar
, right?broad-doctor-18421
11/29/2023, 11:17 PMclass Outputs(Enum):
...
def __str__(self):
return str(self.value).
The error didn't really give me any stack trace on my line of code that would make sense.broad-doctor-18421
11/29/2023, 11:18 PMdomain_name.apply()
block, however the zone_id was not required.
Even though both were brought in as ouptuts.broad-doctor-18421
11/29/2023, 11:19 PMzone_id = self.account_stack.get_output(Outputs.PUBLIC_ZONE_ID.value)
zone_name = self.account_stack.get_output(Outputs.PUBLIC_ZONE_NAME.value)
# zone ID is known but zone name is not, so it has to be applied here.
zone_name.apply(
lambda x: aws.route53.Record(
"cnameRecord",
name=f"{self.stack}.{x}", # replace with your domain name
records=[self.alb.dns_name],
ttl=300,
type="CNAME",
zone_id=zone_id,
)
)
little-cartoon-10569
11/29/2023, 11:20 PMlittle-cartoon-10569
11/29/2023, 11:20 PMbroad-doctor-18421
11/29/2023, 11:21 PMbroad-doctor-18421
11/29/2023, 11:21 PMrecord_name = zone_name.apply(lambda x: f"{self.stack}.{zone_name}")
cname_record = aws.route53.Record(
"cnameRecord",
name=record_name, # replace with your domain name
records=[self.alb.dns_name],
ttl=300,
type="CNAME",
zone_id=zone_id,
)
broad-doctor-18421
11/29/2023, 11:22 PMlittle-cartoon-10569
11/29/2023, 11:22 PMlittle-cartoon-10569
11/29/2023, 11:22 PMlittle-cartoon-10569
11/29/2023, 11:23 PMlittle-cartoon-10569
11/29/2023, 11:23 PMbroad-doctor-18421
11/29/2023, 11:23 PMbroad-doctor-18421
11/29/2023, 11:23 PMbroad-doctor-18421
11/29/2023, 11:23 PMbroad-doctor-18421
11/29/2023, 11:24 PMlittle-cartoon-10569
11/29/2023, 11:24 PMlittle-cartoon-10569
11/29/2023, 11:24 PMbroad-doctor-18421
11/29/2023, 11:25 PM+ aws:route53/record:Record: (create)
[urn=urn:pulumi:bswift::LB::aws:route53/record:Record::cnameRecord]
[provider=urn:pulumi:bswift::LB::pulumi:providers:aws::default_6_10_0::d5cf0383-2cb0-435f-b791-5a48e913f244]
name : "bswift.Calling __str__ on an Output[T] is not supported.\n\nTo get the value of an Output[T] as an Output[str] consider:\n1. o.apply(lambda v: f\"prefix{v}suffix\")\n\nSee <https://www.pulumi.com/docs/concepts/inputs-outputs> for more details.\nThis function may throw in a future version of Pulumi."
records : [
[0]: "<http://bswift-load-balancer-lb-4f6f446-1324424032.us-west-2.elb.amazonaws.com|bswift-load-balancer-lb-4f6f446-1324424032.us-west-2.elb.amazonaws.com>"
]
ttl : 300
type : "CNAME"
little-cartoon-10569
11/29/2023, 11:26 PMlittle-cartoon-10569
11/29/2023, 11:26 PMRoute53ZoneArgs
isn't a Pulumi type. Is that right?broad-doctor-18421
11/29/2023, 11:26 PMbroad-doctor-18421
11/29/2023, 11:27 PMlittle-cartoon-10569
11/29/2023, 11:28 PMbroad-doctor-18421
11/29/2023, 11:28 PMlittle-cartoon-10569
11/29/2023, 11:28 PMlittle-cartoon-10569
11/29/2023, 11:28 PMlittle-cartoon-10569
11/29/2023, 11:29 PMbroad-doctor-18421
11/29/2023, 11:30 PMlittle-cartoon-10569
11/29/2023, 11:31 PMlittle-cartoon-10569
11/29/2023, 11:31 PMbroad-doctor-18421
11/29/2023, 11:31 PMbroad-doctor-18421
11/29/2023, 11:32 PMbroad-doctor-18421
11/29/2023, 11:33 PMlittle-cartoon-10569
11/29/2023, 11:33 PMlittle-cartoon-10569
11/29/2023, 11:34 PMbroad-doctor-18421
11/29/2023, 11:35 PM