in source/stackset-output-consolidator/index.ts [14:47]
async function handleCreate(props: ICustomResourceRequest["ResourceProperties"]): Promise<CompletionStatus> {
try {
const listInstancesParams: AWS.CloudFormation.ListStackInstancesInput = {
StackSetName: props.StackSetId
};
console.log('Listing StackSet Instances', listInstancesParams);
const response = await cfn.listStackInstances(listInstancesParams).promise();
console.log('List StackSet Instances Response', response);
const primaryStackSetInstanceId = response.Summaries.find(summary => summary.Region === props.PrimaryRegion).StackId;
const secondaryStackSetInstanceId = response.Summaries.find(summary => summary.Region === props.SecondaryRegion).StackId;
const primaryInstanceOutputs = await getStackSetInstanceOutputs(primaryStackSetInstanceId, props.PrimaryRegion);
const secondaryInstanceOutputs = await getStackSetInstanceOutputs(secondaryStackSetInstanceId, props.SecondaryRegion);
return {
Status: StatusTypes.Success,
Data: {
PrimaryRoutingLayerApiId: primaryInstanceOutputs.find(output => output.OutputKey === 'RoutingLayerApiId').OutputValue,
PrimaryPhotosApiId: primaryInstanceOutputs.find(output => output.OutputKey === 'PhotosApiId').OutputValue,
PrimaryObjectStoreBucket: primaryInstanceOutputs.find(output => output.OutputKey === 'ObjectStoreBucketName').OutputValue,
SecondaryRoutingLayerApiId: secondaryInstanceOutputs.find(output => output.OutputKey === 'RoutingLayerApiId').OutputValue,
SecondaryPhotosApiId: secondaryInstanceOutputs.find(output => output.OutputKey === 'PhotosApiId').OutputValue,
SecondaryObjectStoreBucket: secondaryInstanceOutputs.find(output => output.OutputKey === 'ObjectStoreBucketName').OutputValue
}
};
} catch (error) {
return {
Status: StatusTypes.Failed,
Data: error
};
}
}