amplify-cli icon indicating copy to clipboard operation
amplify-cli copied to clipboard

Exported Amplify backend is not fully building in Cdk deployment

Open PadraicPairceir opened this issue 1 year ago • 11 comments

How did you install the Amplify CLI?

npm

If applicable, what version of Node.js are you using?

v16.19.1

Amplify CLI Version

11.0.3

What operating system are you using?

Amazon Linux 2 (running in docker on Ubuntu WSL2)

Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.

No

Describe the bug

In /app03/amp, using amplify init, I generated a new amplify backend for dev env. I generated the backend for flutter, so the amplifyconfiguration.dart file etc was generated. I see 2 IAM roles, 1 S3 bucket, with 3 files (1 zip, 3 json files), 1 cloudformation stack, and the generated backend project in amplify console.

In /app03/cdkapp, I generated a new cdk project with cdk init app --language=typescript --generate-only.

I export the backend using amplify export --out ../cdkapp/lib.

I delete the existing backend using amplify delete.

I update the cdk project to generate the exported amplify backend. I run cdk deploy.

I see 2 IAM roles, 1 S3 bucket (empty), 1 cloudformation stack. I see no project in the amplify console.

Expected behavior

To have the same number of files in the associated S3 bucket which is generated, and to see the project generated in the amplify console.

Reproduction steps

  1. cd /app03
  2. mkdir amp
  3. mkdir cdkapp
  4. cd amp
  5. amplify init
  • Choose access token access
  • Input token values
  • Choose app type "flutter"
  1. cd ../cdkapp
  2. cdk init app --language=typescript --generate-only
  3. npm i
  4. cdk bootstrap
  5. cd ..\amp
  6. amplify export --out ../cdkapp/lib
  7. amplify delete
  8. cd ..\cdkapp
  9. npm i @aws-amplify/cdk-exported-backend
  10. npm i lodash
  11. Update bin/cdkapp.ts to have content
#!/usr/bin/env node
import 'source-map-support/register';
import * as cdk from 'aws-cdk-lib';
import { AmplifyExportedBackend } from '@aws-amplify/cdk-exported-backend'
import * as path from 'path' // To resolve the path to your exported Amplify backend assets

const app = new cdk.App();

const amplifyBackend = new AmplifyExportedBackend(app, "amplifyExportedBackend", {
  amplifyEnvironment: "dev", // Specify your Amplify environment
  path: path.resolve(__dirname, '../lib/amplify-export-app04')
})
  1. cdk deploy

Project Identifier

No response

Log output

# Put your logs below this line


Additional information

No response

Before submitting, please confirm:

  • [X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • [X] I have removed any sensitive information from my code snippets and submission.

PadraicPairceir avatar Mar 30 '23 22:03 PadraicPairceir

Hey @PadraicPairceir , I was able to reproduce the issue. making as bug. The CDK appears to be creating the backend resources but not the Amplify project on console.

ykethan avatar Mar 31 '23 23:03 ykethan

@ykethan Great, thanks for the update.

PadraicPairceir avatar Apr 01 '23 11:04 PadraicPairceir

I'm looking forward to this update as well, thank you! Will it be possible to associate a frontend app with the exported backend using the same CDK stack? I'd like to use something like this after the backend is ready:

const amplifyApp = new amplify.App(this, 'amplifyapp', {
      sourceCodeProvider: new amplify.CodeCommitSourceCodeProvider({
        repository: repo,
      }),
      customRules: [
        {
          source:
            '</^[^.]+$|.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json|webp)$)([^.]+$)/>',
          target: '/index.html',
          status: amplify.RedirectStatus.REWRITE,
        },
      ],
      environmentVariables: {
        REGION: this.region,
      },
    });

    amplifyApp.addBranch('main');
    amplifyApp.addBranch('dev');

mmitchan avatar Apr 02 '23 13:04 mmitchan

@mmitchan Yes, I'll need to consider this also. My other problem is how to get the generated config file (amplifyconfiguration.dart in the flutter case), to point to the cdk generated resource details.

PadraicPairceir avatar Apr 03 '23 09:04 PadraicPairceir

Ok. If you have any questions about my use case please let me know, I'm happy share if helps push this through.

mmitchan avatar Apr 03 '23 12:04 mmitchan

Hey folks, we've reclassified this issue as a feature-request to improve this experience when we export an Amplify project to connect to a new/existing Amplify project

josefaidt avatar Apr 04 '23 20:04 josefaidt

Thank you for the update.

mmitchan avatar Apr 04 '23 20:04 mmitchan

Hello. is there any update to this?

ghost avatar Jul 05 '23 06:07 ghost

Any updates on this ? this is holding back our adoption of amplify

nickyshankar avatar Nov 14 '23 08:11 nickyshankar

hello guys any update on this. Bumping this up.

richardokonicha avatar Feb 06 '24 11:02 richardokonicha

me too!

bolasater avatar Apr 19 '24 21:04 bolasater