aws-amplify / amplify-backend

Home to all tools related to Amplify's code-first DX (Gen 2) for building fullstack apps on AWS
Apache License 2.0
183 stars 62 forks source link

Support AppSync custom domains #1798

Open otottkovacstibor opened 3 months ago

otottkovacstibor commented 3 months ago

Environment information

System:
  OS: macOS 14.5
  CPU: (12) arm64 Apple M3 Pro
  Memory: 51.98 MB / 18.00 GB
  Shell: /bin/zsh
Binaries:
  Node: 20.15.1 - ~/.nvm/versions/node/v20.15.1/bin/node
  Yarn: undefined - undefined
  npm: 10.7.0 - ~/.nvm/versions/node/v20.15.1/bin/npm
  pnpm: undefined - undefined
NPM Packages:
  @aws-amplify/auth-construct: 1.2.0
  @aws-amplify/backend: 1.0.4
  @aws-amplify/backend-auth: 1.1.0
  @aws-amplify/backend-cli: 1.2.1
  @aws-amplify/backend-data: 1.1.0
  @aws-amplify/backend-deployer: 1.0.2
  @aws-amplify/backend-function: 1.3.0
  @aws-amplify/backend-output-schemas: 1.1.0
  @aws-amplify/backend-output-storage: 1.0.2
  @aws-amplify/backend-secret: 1.0.0
  @aws-amplify/backend-storage: 1.0.4
  @aws-amplify/cli-core: 1.1.1
  @aws-amplify/client-config: 1.1.1
  @aws-amplify/deployed-backend-client: 1.1.0
  @aws-amplify/form-generator: 1.0.0
  @aws-amplify/model-generator: 1.0.2
  @aws-amplify/platform-core: 1.0.3
  @aws-amplify/plugin-types: 1.1.0
  @aws-amplify/sandbox: 1.1.1
  @aws-amplify/schema-generator: 1.2.0
  aws-amplify: 6.4.3
  aws-cdk: 2.150.0
  aws-cdk-lib: 2.150.0
  typescript: 5.5.4
AWS environment variables:
  AWS_STS_REGIONAL_ENDPOINTS = regional
  AWS_NODEJS_CONNECTION_REUSE_ENABLED = 1
  AWS_SDK_LOAD_CONFIG = 1
No CDK environment variables

Description

A custom domain name and an API mapping can be created using CDK, however, the amplify_outputs.json always contains the original generated version of the GraphQL endpoint even if a custom domain is attached. This is not ideal to use this URL, especially for mobile applications since it can happen that the stack needs to be recreated for some reason, and the previously generated endpoint will be no longer available.

I tried to override the value by backend.addOutput({ data: { url: 'my-custom-url' } }), but this is not supported in this way.

Is there any other way to somehow automate this step? Thanks

josefaidt commented 3 months ago

Hey @otottkovacstibor :wave: thanks for raising this! I think this is a great idea to introduce first-class support for custom domains in Amplify resources. Marking as a feature request