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
164 stars 55 forks source link

[Gen2]Add a no-minify option to defineFunction #2027

Open antennix opened 3 days ago

antennix commented 3 days ago

Environment information

System:
  OS: macOS 14.5
  CPU: (8) x64 Apple M2
  Memory: 18.87 MB / 16.00 GB
  Shell: Unknown
Binaries:
  Node: 18.18.0 - ~/.nvm/versions/node/v18.18.0/bin/node
  Yarn: undefined - undefined
  npm: 10.8.2 - ~/.nvm/versions/node/v18.18.0/bin/npm
  pnpm: 8.15.4 - ~/.nvm/versions/node/v18.18.0/bin/pnpm
NPM Packages:
  @aws-amplify/auth-construct: 1.3.0
  @aws-amplify/backend: 1.2.1
  @aws-amplify/backend-auth: 1.1.4
  @aws-amplify/backend-cli: 1.2.6
  @aws-amplify/backend-data: 1.1.3
  @aws-amplify/backend-deployer: 1.1.2
  @aws-amplify/backend-function: 1.4.0
  @aws-amplify/backend-output-schemas: 1.2.0
  @aws-amplify/backend-output-storage: 1.1.1
  @aws-amplify/backend-secret: 1.1.1
  @aws-amplify/backend-storage: 1.1.2
  @aws-amplify/cli-core: 1.1.2
  @aws-amplify/client-config: 1.3.0
  @aws-amplify/deployed-backend-client: 1.4.0
  @aws-amplify/form-generator: 1.0.1
  @aws-amplify/model-generator: 1.0.6
  @aws-amplify/platform-core: 1.1.0
  @aws-amplify/plugin-types: 1.2.1
  @aws-amplify/sandbox: 1.2.1
  @aws-amplify/schema-generator: 1.2.2
  aws-amplify: 6.6.1
  aws-cdk: 2.158.0
  aws-cdk-lib: 2.158.0
  typescript: 5.6.2
AWS environment variables:
  AWS_STS_REGIONAL_ENDPOINTS = regional
  AWS_NODEJS_CONNECTION_REUSE_ENABLED = 1
  AWS_SDK_LOAD_CONFIG = 1
No CDK environment variables

Describe the feature

When using defineFunction in Amplify Gen2, TypeScript code is transpiled and minified, making it difficult to directly modify the Lambda function when opening it in the management console.

There may be times when we want to make small additions to the code for debugging or verifying functionality. I would like an option to be added to defineFunction that prevents minification.

Use case

export const function = defineFunction({
  name: 'function-name',
  entry: './handler.ts',
  runtime: 20,
  timeoutSeconds: 900,
  environment :{
    TABLE_NAME: 'xxx',
  },
  schedule: "0 0 ? * 1",  
  minify: false,    << like this
});
ykethan commented 2 days ago

Hey @antennix, thank you for filing this, marking this as feature request.

note: https://github.com/aws-amplify/amplify-backend/blob/603b75dd8f988135f2074c0ef3a6f4d42d799248/packages/backend-function/src/factory.ts#L371