通过CloudFront与CDK一起使用AppSync

问题描述

我想在CloudFront发行版后面部署AppSync API。

CloudFront发行版需要HTTP起源,如何从一个CDK堆栈中的API对象中获取此信息?

解决方法

我找到了解决方案。必须使用内在函数从分布构造中获取正确的值。

const api = new appsync.GraphqlApi(...);

const origin = new origins.HttpOrigin(
  cdk.Fn.select(2,cdk.Fn.split("/",api.graphqlUrl))
);

const distribution = new cloudfront.Distribution(this,"DemoDistribution",{
  defaultBehavior: { origin },});