- Newest
- Most votes
- Most comments
This functionality of "UPSERT" type does not exist in CFn natively. You would need to use a Custom Resource to handle this logic. One alternative that is not exactly what you asked for but might be a decent compromise is to use a Parameter to supply the endpoint if it does exist. Then use a condition to check the value. If the paramter is blank then create an endpoint if not use the value supplied. I know this is not what you asked for but it allows you to avoid the custom resource solution.
Sample of similiar UPSERT example for a VPC:
Parameters :
Vpc:
Type: AWS::EC2::VPC::Id
Conditions:
VpcNotSupplied: !Equals [!Ref Vpc, '']
Resources:
NewVpc:
Type: AWS::EC2::VPC
Condition: VpcNotSupplied
Properties:
CidrBlock: 10.0.0.0/16
SecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Sample
GroupName: Sample
VpcId: !If [VpcNotSupplied, !Ref NewVpc, !Ref Vpc ]
Here the Vpc
input parameter can be supplied if the VPC you wish to use already exists, left blank if you want to create a new one. The NewVPC resource uses the Condition
to only create if the supplied Vpc parameter value is blank. The Security group then uses the same condition to decide whetehr to use and existing Vpc or the newly created one.
Hope this makes sense.
Relevant content
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 8 months ago
- AWS OFFICIALUpdated 2 years ago