monorise 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base/index.d.ts +254 -0
- package/dist/base/index.js +44 -0
- package/dist/base/index.js.map +1 -0
- package/dist/cli/cli.d.ts +1 -0
- package/dist/cli/cli.js +461 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/core/index.d.ts +4767 -0
- package/dist/core/index.js +7941 -0
- package/dist/core/index.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +11 -0
- package/dist/react/actions/app.action.d.ts +46 -0
- package/dist/react/actions/app.action.d.ts.map +1 -0
- package/dist/react/actions/auth.action.d.ts +24 -0
- package/dist/react/actions/auth.action.d.ts.map +1 -0
- package/dist/react/actions/config.action.d.ts +10 -0
- package/dist/react/actions/config.action.d.ts.map +1 -0
- package/dist/react/actions/core.action.d.ts +219 -0
- package/dist/react/actions/core.action.d.ts.map +1 -0
- package/dist/react/index.d.ts +1093 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +2344 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/lib/api.d.ts +38 -0
- package/dist/react/lib/api.d.ts.map +1 -0
- package/dist/react/lib/constant.d.ts +2 -0
- package/dist/react/lib/constant.d.ts.map +1 -0
- package/dist/react/lib/entity.d.ts +10 -0
- package/dist/react/lib/entity.d.ts.map +1 -0
- package/dist/react/lib/utils.d.ts +10 -0
- package/dist/react/lib/utils.d.ts.map +1 -0
- package/dist/react/services/auth.service.d.ts +21 -0
- package/dist/react/services/auth.service.d.ts.map +1 -0
- package/dist/react/services/core.service.d.ts +76 -0
- package/dist/react/services/core.service.d.ts.map +1 -0
- package/dist/react/services/filestore.service.d.ts +22 -0
- package/dist/react/services/filestore.service.d.ts.map +1 -0
- package/dist/react/store/monorise.store.d.ts +169 -0
- package/dist/react/store/monorise.store.d.ts.map +1 -0
- package/dist/react/tsup.config.d.ts +3 -0
- package/dist/react/tsup.config.d.ts.map +1 -0
- package/dist/react/types/api.type.d.ts +30 -0
- package/dist/react/types/api.type.d.ts.map +1 -0
- package/dist/react/types/axios.type.d.ts +13 -0
- package/dist/react/types/axios.type.d.ts.map +1 -0
- package/dist/react/types/monorise.type.d.ts +8 -0
- package/dist/react/types/monorise.type.d.ts.map +1 -0
- package/dist/react/types/mutual.type.d.ts +21 -0
- package/dist/react/types/mutual.type.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/analog.d.ts +423 -0
- package/dist/sst/.sst/platform/src/components/aws/analog.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigateway-websocket-route.d.ts +74 -0
- package/dist/sst/.sst/platform/src/components/aws/apigateway-websocket-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigateway-websocket.d.ts +542 -0
- package/dist/sst/.sst/platform/src/components/aws/apigateway-websocket.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-api-key.d.ts +48 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-api-key.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-authorizer.d.ts +55 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-authorizer.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-base-route.d.ts +36 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-base-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-integration-route.d.ts +39 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-integration-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-lambda-route.d.ts +53 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-lambda-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-usage-plan.d.ts +53 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1-usage-plan.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1.d.ts +1002 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv1.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2-authorizer.d.ts +54 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2-authorizer.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2-base-route.d.ts +28 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2-base-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2-lambda-route.d.ts +59 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2-lambda-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2-private-route.d.ts +54 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2-private-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2-url-route.d.ts +44 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2-url-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2.d.ts +931 -0
- package/dist/sst/.sst/platform/src/components/aws/apigatewayv2.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/app-sync-data-source.d.ts +52 -0
- package/dist/sst/.sst/platform/src/components/aws/app-sync-data-source.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/app-sync-function.d.ts +33 -0
- package/dist/sst/.sst/platform/src/components/aws/app-sync-function.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/app-sync-resolver.d.ts +41 -0
- package/dist/sst/.sst/platform/src/components/aws/app-sync-resolver.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/app-sync.d.ts +638 -0
- package/dist/sst/.sst/platform/src/components/aws/app-sync.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/astro.d.ts +421 -0
- package/dist/sst/.sst/platform/src/components/aws/astro.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/aurora.d.ts +702 -0
- package/dist/sst/.sst/platform/src/components/aws/aurora.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/auth-v1.d.ts +26 -0
- package/dist/sst/.sst/platform/src/components/aws/auth-v1.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/auth.d.ts +295 -0
- package/dist/sst/.sst/platform/src/components/aws/auth.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/bucket-lambda-subscriber.d.ts +61 -0
- package/dist/sst/.sst/platform/src/components/aws/bucket-lambda-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/bucket-notification.d.ts +47 -0
- package/dist/sst/.sst/platform/src/components/aws/bucket-notification.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/bucket-queue-subscriber.d.ts +55 -0
- package/dist/sst/.sst/platform/src/components/aws/bucket-queue-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/bucket-topic-subscriber.d.ts +55 -0
- package/dist/sst/.sst/platform/src/components/aws/bucket-topic-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/bucket.d.ts +1216 -0
- package/dist/sst/.sst/platform/src/components/aws/bucket.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/bus-base-subscriber.d.ts +20 -0
- package/dist/sst/.sst/platform/src/components/aws/bus-base-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/bus-lambda-subscriber.d.ts +49 -0
- package/dist/sst/.sst/platform/src/components/aws/bus-lambda-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/bus-queue-subscriber.d.ts +44 -0
- package/dist/sst/.sst/platform/src/components/aws/bus-queue-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/bus.d.ts +403 -0
- package/dist/sst/.sst/platform/src/components/aws/bus.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/cdn.d.ts +299 -0
- package/dist/sst/.sst/platform/src/components/aws/cdn.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/cluster-v1.d.ts +882 -0
- package/dist/sst/.sst/platform/src/components/aws/cluster-v1.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/cluster.d.ts +306 -0
- package/dist/sst/.sst/platform/src/components/aws/cluster.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/cognito-identity-pool.d.ts +194 -0
- package/dist/sst/.sst/platform/src/components/aws/cognito-identity-pool.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/cognito-identity-provider.d.ts +38 -0
- package/dist/sst/.sst/platform/src/components/aws/cognito-identity-provider.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/cognito-user-pool-client.d.ts +50 -0
- package/dist/sst/.sst/platform/src/components/aws/cognito-user-pool-client.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/cognito-user-pool.d.ts +603 -0
- package/dist/sst/.sst/platform/src/components/aws/cognito-user-pool.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/cron.d.ts +250 -0
- package/dist/sst/.sst/platform/src/components/aws/cron.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/dns-validated-certificate.d.ts +27 -0
- package/dist/sst/.sst/platform/src/components/aws/dns-validated-certificate.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/dns.d.ts +94 -0
- package/dist/sst/.sst/platform/src/components/aws/dns.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/dynamo-lambda-subscriber.d.ts +55 -0
- package/dist/sst/.sst/platform/src/components/aws/dynamo-lambda-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/dynamo.d.ts +568 -0
- package/dist/sst/.sst/platform/src/components/aws/dynamo.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/efs.d.ts +217 -0
- package/dist/sst/.sst/platform/src/components/aws/efs.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/email.d.ts +291 -0
- package/dist/sst/.sst/platform/src/components/aws/email.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/fargate.d.ts +803 -0
- package/dist/sst/.sst/platform/src/components/aws/fargate.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/function.d.ts +1629 -0
- package/dist/sst/.sst/platform/src/components/aws/function.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/apigateway-account.d.ts +3 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/apigateway-account.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/apigatewayv2-domain.d.ts +144 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/apigatewayv2-domain.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/arn.d.ts +40 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/arn.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/bootstrap.d.ts +13 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/bootstrap.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/container-builder.d.ts +4 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/container-builder.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/function-builder.d.ts +10 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/function-builder.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/provider.d.ts +3 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/provider.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/quota.d.ts +7 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/quota.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/site-builder.d.ts +4 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/site-builder.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/subscriber.d.ts +6 -0
- package/dist/sst/.sst/platform/src/components/aws/helpers/subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/https-redirect.d.ts +38 -0
- package/dist/sst/.sst/platform/src/components/aws/https-redirect.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/iam-edit.d.ts +39 -0
- package/dist/sst/.sst/platform/src/components/aws/iam-edit.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/index.d.ts +48 -0
- package/dist/sst/.sst/platform/src/components/aws/index.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/kinesis-stream-lambda-subscriber.d.ts +48 -0
- package/dist/sst/.sst/platform/src/components/aws/kinesis-stream-lambda-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/kinesis-stream.d.ts +249 -0
- package/dist/sst/.sst/platform/src/components/aws/kinesis-stream.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/linkable.d.ts +17 -0
- package/dist/sst/.sst/platform/src/components/aws/linkable.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/logging.d.ts +26 -0
- package/dist/sst/.sst/platform/src/components/aws/logging.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/mysql.d.ts +496 -0
- package/dist/sst/.sst/platform/src/components/aws/mysql.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/nextjs.d.ts +517 -0
- package/dist/sst/.sst/platform/src/components/aws/nextjs.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/nuxt.d.ts +495 -0
- package/dist/sst/.sst/platform/src/components/aws/nuxt.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/open-search.d.ts +295 -0
- package/dist/sst/.sst/platform/src/components/aws/open-search.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/opencontrol.d.ts +165 -0
- package/dist/sst/.sst/platform/src/components/aws/opencontrol.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/permission.d.ts +40 -0
- package/dist/sst/.sst/platform/src/components/aws/permission.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/postgres-v1.d.ts +317 -0
- package/dist/sst/.sst/platform/src/components/aws/postgres-v1.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/postgres.d.ts +500 -0
- package/dist/sst/.sst/platform/src/components/aws/postgres.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/bucket-files.d.ts +18 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/bucket-files.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/distribution-deployment-waiter.d.ts +13 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/distribution-deployment-waiter.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/distribution-invalidation.d.ts +11 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/distribution-invalidation.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/function-environment-update.d.ts +29 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/function-environment-update.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/hosted-zone-lookup.d.ts +11 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/hosted-zone-lookup.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/kv-keys.d.ts +11 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/kv-keys.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/kv-routes-update.d.ts +11 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/kv-routes-update.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/origin-access-control.d.ts +8 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/origin-access-control.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/rds-role-lookup.d.ts +8 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/rds-role-lookup.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/vector-table.d.ts +12 -0
- package/dist/sst/.sst/platform/src/components/aws/providers/vector-table.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/queue-lambda-subscriber.d.ts +48 -0
- package/dist/sst/.sst/platform/src/components/aws/queue-lambda-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/queue.d.ts +485 -0
- package/dist/sst/.sst/platform/src/components/aws/queue.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/react.d.ts +416 -0
- package/dist/sst/.sst/platform/src/components/aws/react.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/realtime-lambda-subscriber.d.ts +53 -0
- package/dist/sst/.sst/platform/src/components/aws/realtime-lambda-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/realtime.d.ts +232 -0
- package/dist/sst/.sst/platform/src/components/aws/realtime.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/redis-v1.d.ts +338 -0
- package/dist/sst/.sst/platform/src/components/aws/redis-v1.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/redis.d.ts +364 -0
- package/dist/sst/.sst/platform/src/components/aws/redis.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/remix.d.ts +423 -0
- package/dist/sst/.sst/platform/src/components/aws/remix.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/router-base-route.d.ts +28 -0
- package/dist/sst/.sst/platform/src/components/aws/router-base-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/router-bucket-route.d.ts +29 -0
- package/dist/sst/.sst/platform/src/components/aws/router-bucket-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/router-url-route.d.ts +28 -0
- package/dist/sst/.sst/platform/src/components/aws/router-url-route.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/router.d.ts +1272 -0
- package/dist/sst/.sst/platform/src/components/aws/router.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/service-v1.d.ts +78 -0
- package/dist/sst/.sst/platform/src/components/aws/service-v1.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/service.d.ts +1625 -0
- package/dist/sst/.sst/platform/src/components/aws/service.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/sns-topic-lambda-subscriber.d.ts +53 -0
- package/dist/sst/.sst/platform/src/components/aws/sns-topic-lambda-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/sns-topic-queue-subscriber.d.ts +55 -0
- package/dist/sst/.sst/platform/src/components/aws/sns-topic-queue-subscriber.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/sns-topic.d.ts +389 -0
- package/dist/sst/.sst/platform/src/components/aws/sns-topic.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/solid-start.d.ts +414 -0
- package/dist/sst/.sst/platform/src/components/aws/solid-start.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/ssr-site.d.ts +685 -0
- package/dist/sst/.sst/platform/src/components/aws/ssr-site.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/static-site.d.ts +736 -0
- package/dist/sst/.sst/platform/src/components/aws/static-site.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/choice.d.ts +73 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/choice.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/fail.d.ts +63 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/fail.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/map.d.ts +236 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/map.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/parallel.d.ts +127 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/parallel.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/pass.d.ts +39 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/pass.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/state.d.ts +231 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/state.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/succeed.d.ts +26 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/succeed.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/task.d.ts +477 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/task.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/wait.d.ts +91 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions/wait.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions.d.ts +473 -0
- package/dist/sst/.sst/platform/src/components/aws/step-functions.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/svelte-kit.d.ts +417 -0
- package/dist/sst/.sst/platform/src/components/aws/svelte-kit.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/tan-stack-start.d.ts +354 -0
- package/dist/sst/.sst/platform/src/components/aws/tan-stack-start.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/task.d.ts +322 -0
- package/dist/sst/.sst/platform/src/components/aws/task.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/vector.d.ts +150 -0
- package/dist/sst/.sst/platform/src/components/aws/vector.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/vpc-v1.d.ts +208 -0
- package/dist/sst/.sst/platform/src/components/aws/vpc-v1.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/aws/vpc.d.ts +444 -0
- package/dist/sst/.sst/platform/src/components/aws/vpc.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/base/base-site.d.ts +53 -0
- package/dist/sst/.sst/platform/src/components/base/base-site.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/base/base-ssr-site.d.ts +13 -0
- package/dist/sst/.sst/platform/src/components/base/base-ssr-site.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/base/base-static-site.d.ts +199 -0
- package/dist/sst/.sst/platform/src/components/base/base-static-site.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/account-id.d.ts +2 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/account-id.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/auth.d.ts +22 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/auth.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/binding.d.ts +69 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/binding.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/bucket.d.ts +103 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/bucket.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/cron.d.ts +121 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/cron.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/d1.d.ts +107 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/d1.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/dns.d.ts +94 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/dns.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/experimental/astro.d.ts +186 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/experimental/astro.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/experimental/index.d.ts +4 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/experimental/index.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/experimental/solid-start.d.ts +171 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/experimental/solid-start.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/experimental/static-site.d.ts +222 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/experimental/static-site.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/helpers/fetch.d.ts +19 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/helpers/fetch.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/helpers/worker-builder.d.ts +10 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/helpers/worker-builder.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/index.d.ts +16 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/index.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/kv.d.ts +107 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/kv.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/providers/dns-record.d.ts +20 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/providers/dns-record.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/providers/kv-data.d.ts +23 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/providers/kv-data.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/providers/worker-assets.d.ts +18 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/providers/worker-assets.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/providers/worker-url.d.ts +22 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/providers/worker-url.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/providers/zone-lookup.d.ts +22 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/providers/zone-lookup.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/queue.d.ts +60 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/queue.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/ssr-site.d.ts +51 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/ssr-site.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/static-site.d.ts +262 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/static-site.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/worker.d.ts +295 -0
- package/dist/sst/.sst/platform/src/components/cloudflare/worker.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/component.d.ts +37 -0
- package/dist/sst/.sst/platform/src/components/component.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/cpu.d.ts +3 -0
- package/dist/sst/.sst/platform/src/components/cpu.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/dns.d.ts +59 -0
- package/dist/sst/.sst/platform/src/components/dns.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/duration.d.ts +7 -0
- package/dist/sst/.sst/platform/src/components/duration.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/error.d.ts +4 -0
- package/dist/sst/.sst/platform/src/components/error.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/experimental/dev-command.d.ts +99 -0
- package/dist/sst/.sst/platform/src/components/experimental/dev-command.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/experimental/index.d.ts +2 -0
- package/dist/sst/.sst/platform/src/components/experimental/index.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/index.d.ts +16 -0
- package/dist/sst/.sst/platform/src/components/index.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/input.d.ts +3 -0
- package/dist/sst/.sst/platform/src/components/input.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/link.d.ts +41 -0
- package/dist/sst/.sst/platform/src/components/link.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/linkable.d.ts +271 -0
- package/dist/sst/.sst/platform/src/components/linkable.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/naming.d.ts +7 -0
- package/dist/sst/.sst/platform/src/components/naming.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/path.d.ts +2 -0
- package/dist/sst/.sst/platform/src/components/path.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/rpc/rpc.d.ts +19 -0
- package/dist/sst/.sst/platform/src/components/rpc/rpc.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/secret.d.ts +125 -0
- package/dist/sst/.sst/platform/src/components/secret.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/size.d.ts +5 -0
- package/dist/sst/.sst/platform/src/components/size.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/vercel/account-id.d.ts +2 -0
- package/dist/sst/.sst/platform/src/components/vercel/account-id.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/vercel/dns.d.ts +73 -0
- package/dist/sst/.sst/platform/src/components/vercel/dns.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/vercel/index.d.ts +3 -0
- package/dist/sst/.sst/platform/src/components/vercel/index.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/components/vercel/providers/dns-record.d.ts +14 -0
- package/dist/sst/.sst/platform/src/components/vercel/providers/dns-record.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/config.d.ts +1258 -0
- package/dist/sst/.sst/platform/src/config.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/util/compare-semver.d.ts +4 -0
- package/dist/sst/.sst/platform/src/util/compare-semver.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/util/fs.d.ts +5 -0
- package/dist/sst/.sst/platform/src/util/fs.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/util/lazy.d.ts +2 -0
- package/dist/sst/.sst/platform/src/util/lazy.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/util/semaphore.d.ts +9 -0
- package/dist/sst/.sst/platform/src/util/semaphore.d.ts.map +1 -0
- package/dist/sst/.sst/platform/src/util/warn.d.ts +2 -0
- package/dist/sst/.sst/platform/src/util/warn.d.ts.map +1 -0
- package/dist/sst/components/dashboard.d.ts +2 -0
- package/dist/sst/components/dashboard.d.ts.map +1 -0
- package/dist/sst/components/monorise-core.d.ts +18 -0
- package/dist/sst/components/monorise-core.d.ts.map +1 -0
- package/dist/sst/components/q-function.d.ts +17 -0
- package/dist/sst/components/q-function.d.ts.map +1 -0
- package/dist/sst/components/single-table.d.ts +14 -0
- package/dist/sst/components/single-table.d.ts.map +1 -0
- package/dist/sst/constants/event.d.ts +73 -0
- package/dist/sst/constants/event.d.ts.map +1 -0
- package/dist/sst/constants/table.d.ts +3 -0
- package/dist/sst/constants/table.d.ts.map +1 -0
- package/dist/sst/index.d.ts +11 -0
- package/dist/sst/index.d.ts.map +1 -0
- package/dist/sst/index.js +609 -0
- package/dist/sst/index.js.map +1 -0
- package/dist/sst/sst.config.d.ts +3 -0
- package/dist/sst/sst.config.d.ts.map +1 -0
- package/dist/sst/tsup.config.d.ts +3 -0
- package/dist/sst/tsup.config.d.ts.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,1629 @@
|
|
|
1
|
+
import type { BuildOptions, Loader } from "esbuild";
|
|
2
|
+
import { ComponentResourceOptions, Output } from "@pulumi/pulumi";
|
|
3
|
+
import { Duration, DurationMinutes } from "../duration.js";
|
|
4
|
+
import { Size } from "../size.js";
|
|
5
|
+
import { Component, Prettify, Transform } from "../component.js";
|
|
6
|
+
import { Link } from "../link.js";
|
|
7
|
+
import type { Input } from "../input.js";
|
|
8
|
+
import { RETENTION } from "./logging.js";
|
|
9
|
+
import { cloudwatch, iam, lambda } from "@pulumi/aws";
|
|
10
|
+
import { Vpc } from "./vpc.js";
|
|
11
|
+
import { Efs } from "./efs.js";
|
|
12
|
+
import { FunctionEnvironmentUpdate } from "./providers/function-environment-update.js";
|
|
13
|
+
import { RouterRouteArgs, RouterRouteArgsDeprecated } from "./router.js";
|
|
14
|
+
/**
|
|
15
|
+
* Helper type to define function ARN type
|
|
16
|
+
*/
|
|
17
|
+
export type FunctionArn = `arn:${string}` & {};
|
|
18
|
+
export type FunctionPermissionArgs = {
|
|
19
|
+
/**
|
|
20
|
+
* Configures whether the permission is allowed or denied.
|
|
21
|
+
* @default `"allow"`
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* {
|
|
25
|
+
* effect: "deny"
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
effect?: "allow" | "deny";
|
|
30
|
+
/**
|
|
31
|
+
* The [IAM actions](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html#actions_table) that can be performed.
|
|
32
|
+
* @example
|
|
33
|
+
* ```js
|
|
34
|
+
* {
|
|
35
|
+
* actions: ["s3:*"]
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
actions: string[];
|
|
40
|
+
/**
|
|
41
|
+
* The resourcess specified using the [IAM ARN format](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html).
|
|
42
|
+
* @example
|
|
43
|
+
* ```js
|
|
44
|
+
* {
|
|
45
|
+
* resources: ["arn:aws:s3:::my-bucket/*"]
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
resources: Input<Input<string>[]>;
|
|
50
|
+
};
|
|
51
|
+
interface FunctionUrlCorsArgs {
|
|
52
|
+
/**
|
|
53
|
+
* Allow cookies or other credentials in requests to the function URL.
|
|
54
|
+
* @default `false`
|
|
55
|
+
* @example
|
|
56
|
+
* ```js
|
|
57
|
+
* {
|
|
58
|
+
* url: {
|
|
59
|
+
* cors: {
|
|
60
|
+
* allowCredentials: true
|
|
61
|
+
* }
|
|
62
|
+
* }
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
allowCredentials?: Input<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* The HTTP headers that origins can include in requests to the function URL.
|
|
69
|
+
* @default `["*"]`
|
|
70
|
+
* @example
|
|
71
|
+
* ```js
|
|
72
|
+
* {
|
|
73
|
+
* url: {
|
|
74
|
+
* cors: {
|
|
75
|
+
* allowHeaders: ["date", "keep-alive", "x-custom-header"]
|
|
76
|
+
* }
|
|
77
|
+
* }
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
allowHeaders?: Input<Input<string>[]>;
|
|
82
|
+
/**
|
|
83
|
+
* The origins that can access the function URL.
|
|
84
|
+
* @default `["*"]`
|
|
85
|
+
* @example
|
|
86
|
+
* ```js
|
|
87
|
+
* {
|
|
88
|
+
* url: {
|
|
89
|
+
* cors: {
|
|
90
|
+
* allowOrigins: ["https://www.example.com", "http://localhost:60905"]
|
|
91
|
+
* }
|
|
92
|
+
* }
|
|
93
|
+
* }
|
|
94
|
+
* ```
|
|
95
|
+
* Or the wildcard for all origins.
|
|
96
|
+
* ```js
|
|
97
|
+
* {
|
|
98
|
+
* url: {
|
|
99
|
+
* cors: {
|
|
100
|
+
* allowOrigins: ["*"]
|
|
101
|
+
* }
|
|
102
|
+
* }
|
|
103
|
+
* }
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
allowOrigins?: Input<Input<string>[]>;
|
|
107
|
+
/**
|
|
108
|
+
* The HTTP methods that are allowed when calling the function URL.
|
|
109
|
+
* @default `["*"]`
|
|
110
|
+
* @example
|
|
111
|
+
* ```js
|
|
112
|
+
* {
|
|
113
|
+
* url: {
|
|
114
|
+
* cors: {
|
|
115
|
+
* allowMethods: ["GET", "POST", "DELETE"]
|
|
116
|
+
* }
|
|
117
|
+
* }
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
* Or the wildcard for all methods.
|
|
121
|
+
* ```js
|
|
122
|
+
* {
|
|
123
|
+
* url: {
|
|
124
|
+
* cors: {
|
|
125
|
+
* allowMethods: ["*"]
|
|
126
|
+
* }
|
|
127
|
+
* }
|
|
128
|
+
* }
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
allowMethods?: Input<Input<"*" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT">[]>;
|
|
132
|
+
/**
|
|
133
|
+
* The HTTP headers you want to expose in your function to an origin that calls the function URL.
|
|
134
|
+
* @default `[]`
|
|
135
|
+
* @example
|
|
136
|
+
* ```js
|
|
137
|
+
* {
|
|
138
|
+
* url: {
|
|
139
|
+
* cors: {
|
|
140
|
+
* exposeHeaders: ["date", "keep-alive", "x-custom-header"]
|
|
141
|
+
* }
|
|
142
|
+
* }
|
|
143
|
+
* }
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
exposeHeaders?: Input<Input<string>[]>;
|
|
147
|
+
/**
|
|
148
|
+
* The maximum amount of time the browser can cache results of a preflight request. By
|
|
149
|
+
* default the browser doesn't cache the results. The maximum value is `86400 seconds` or `1 day`.
|
|
150
|
+
* @default `"0 seconds"`
|
|
151
|
+
* @example
|
|
152
|
+
* ```js
|
|
153
|
+
* {
|
|
154
|
+
* url: {
|
|
155
|
+
* cors: {
|
|
156
|
+
* maxAge: "1 day"
|
|
157
|
+
* }
|
|
158
|
+
* }
|
|
159
|
+
* }
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
maxAge?: Input<Duration>;
|
|
163
|
+
}
|
|
164
|
+
export interface FunctionArgs {
|
|
165
|
+
/**
|
|
166
|
+
* Disable running this function [Live](/docs/live/) in `sst dev`.
|
|
167
|
+
* @deprecated Use `dev` instead.
|
|
168
|
+
* @default `true`
|
|
169
|
+
* @example
|
|
170
|
+
* ```js
|
|
171
|
+
* {
|
|
172
|
+
* live: false
|
|
173
|
+
* }
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
live?: Input<false>;
|
|
177
|
+
/**
|
|
178
|
+
* Disable running this function [_Live_](/docs/live/) in `sst dev`.
|
|
179
|
+
*
|
|
180
|
+
* By default, the functions in your app are run locally in `sst dev`. To do this, a _stub_
|
|
181
|
+
* version of your function is deployed, instead of the real function.
|
|
182
|
+
*
|
|
183
|
+
* :::note
|
|
184
|
+
* In `sst dev` a _stub_ version of your function is deployed.
|
|
185
|
+
* :::
|
|
186
|
+
*
|
|
187
|
+
* This shows under the **Functions** tab in the multiplexer sidebar where your invocations
|
|
188
|
+
* are logged. You can turn this off by setting `dev` to `false`.
|
|
189
|
+
*
|
|
190
|
+
* Read more about [Live](/docs/live/) and [`sst dev`](/docs/reference/cli/#dev).
|
|
191
|
+
*
|
|
192
|
+
* @default `true`
|
|
193
|
+
* @example
|
|
194
|
+
* ```js
|
|
195
|
+
* {
|
|
196
|
+
* dev: false
|
|
197
|
+
* }
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
dev?: Input<false>;
|
|
201
|
+
/**
|
|
202
|
+
* Configure the maximum number of retry attempts for this function when invoked
|
|
203
|
+
* asynchronously.
|
|
204
|
+
*
|
|
205
|
+
* This only affects asynchronous invocations of the function, ie. when subscribed to
|
|
206
|
+
* Topics, EventBuses, or Buckets. And not when directly invoking the function.
|
|
207
|
+
*
|
|
208
|
+
* Valid values are between 0 and 2.
|
|
209
|
+
*
|
|
210
|
+
* @default `2`
|
|
211
|
+
* @example
|
|
212
|
+
* ```js
|
|
213
|
+
* {
|
|
214
|
+
* retries: 0
|
|
215
|
+
* }
|
|
216
|
+
* ```
|
|
217
|
+
*/
|
|
218
|
+
retries?: Input<number>;
|
|
219
|
+
/**
|
|
220
|
+
* The name for the function.
|
|
221
|
+
*
|
|
222
|
+
* By default, the name is generated from the app name, stage name, and component name. This
|
|
223
|
+
* is displayed in the AWS Console for this function.
|
|
224
|
+
*
|
|
225
|
+
* :::caution
|
|
226
|
+
* To avoid the name from thrashing, you want to make sure that it includes the app and stage
|
|
227
|
+
* name.
|
|
228
|
+
* :::
|
|
229
|
+
*
|
|
230
|
+
* If you are going to set the name, you need to make sure:
|
|
231
|
+
* 1. It's unique across your app.
|
|
232
|
+
* 2. Uses the app and stage name, so it doesn't thrash when you deploy to different stages.
|
|
233
|
+
*
|
|
234
|
+
* Also, changing the name after your've deployed it once will create a new function and delete
|
|
235
|
+
* the old one.
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```js
|
|
239
|
+
* {
|
|
240
|
+
* name: `${$app.name}-${$app.stage}-my-function`
|
|
241
|
+
* }
|
|
242
|
+
* ```
|
|
243
|
+
*/
|
|
244
|
+
name?: Input<string>;
|
|
245
|
+
/**
|
|
246
|
+
* A description for the function. This is displayed in the AWS Console.
|
|
247
|
+
* @example
|
|
248
|
+
* ```js
|
|
249
|
+
* {
|
|
250
|
+
* description: "Handler function for my nightly cron job."
|
|
251
|
+
* }
|
|
252
|
+
* ```
|
|
253
|
+
*/
|
|
254
|
+
description?: Input<string>;
|
|
255
|
+
/**
|
|
256
|
+
* The language runtime for the function.
|
|
257
|
+
*
|
|
258
|
+
* Node.js and Golang are officially supported. While, Python and Rust are
|
|
259
|
+
* community supported. Support for other runtimes are on the roadmap.
|
|
260
|
+
*
|
|
261
|
+
* @default `"nodejs20.x"`
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* ```js
|
|
265
|
+
* {
|
|
266
|
+
* runtime: "nodejs22.x"
|
|
267
|
+
* }
|
|
268
|
+
* ```
|
|
269
|
+
*/
|
|
270
|
+
runtime?: Input<"nodejs18.x" | "nodejs20.x" | "nodejs22.x" | "go" | "rust" | "provided.al2023" | "python3.9" | "python3.10" | "python3.11" | "python3.12">;
|
|
271
|
+
/**
|
|
272
|
+
* Path to the source code directory for the function. By default, the handler is
|
|
273
|
+
* bundled with [esbuild](https://esbuild.github.io/). Use `bundle` to skip bundling.
|
|
274
|
+
*
|
|
275
|
+
* :::caution
|
|
276
|
+
* Use `bundle` only when you want to bundle the function yourself.
|
|
277
|
+
* :::
|
|
278
|
+
*
|
|
279
|
+
* If the `bundle` option is specified, the `handler` needs to be in the root of the bundle.
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
*
|
|
283
|
+
* Here, the entire `packages/functions/src` directory is zipped. And the handler is
|
|
284
|
+
* in the `src` directory.
|
|
285
|
+
*
|
|
286
|
+
* ```js
|
|
287
|
+
* {
|
|
288
|
+
* bundle: "packages/functions/src",
|
|
289
|
+
* handler: "index.handler"
|
|
290
|
+
* }
|
|
291
|
+
* ```
|
|
292
|
+
*/
|
|
293
|
+
bundle?: Input<string>;
|
|
294
|
+
/**
|
|
295
|
+
* Path to the handler for the function.
|
|
296
|
+
*
|
|
297
|
+
* - For Node.js this is in the format `{path}/{file}.{method}`.
|
|
298
|
+
* - For Python this is also `{path}/{file}.{method}`.
|
|
299
|
+
* - For Golang this is `{path}` to the Go module.
|
|
300
|
+
* - For Rust this is `{path}` to the Rust crate.
|
|
301
|
+
*
|
|
302
|
+
* @example
|
|
303
|
+
*
|
|
304
|
+
* ##### Node.js
|
|
305
|
+
*
|
|
306
|
+
* For example with Node.js you might have.
|
|
307
|
+
*
|
|
308
|
+
* ```js
|
|
309
|
+
* {
|
|
310
|
+
* handler: "packages/functions/src/main.handler"
|
|
311
|
+
* }
|
|
312
|
+
* ```
|
|
313
|
+
*
|
|
314
|
+
* Where `packages/functions/src` is the path. And `main` is the file, where you might have
|
|
315
|
+
* a `main.ts` or `main.js`. And `handler` is the method exported in that file.
|
|
316
|
+
*
|
|
317
|
+
* :::note
|
|
318
|
+
* You don't need to specify the file extension.
|
|
319
|
+
* :::
|
|
320
|
+
*
|
|
321
|
+
* If `bundle` is specified, the handler needs to be in the root of the bundle directory.
|
|
322
|
+
*
|
|
323
|
+
* ```js
|
|
324
|
+
* {
|
|
325
|
+
* bundle: "packages/functions/src",
|
|
326
|
+
* handler: "index.handler"
|
|
327
|
+
* }
|
|
328
|
+
* ```
|
|
329
|
+
*
|
|
330
|
+
* ##### Python
|
|
331
|
+
*
|
|
332
|
+
* For Python, [uv](https://docs.astral.sh/uv/) is used to package the function.
|
|
333
|
+
* You need to have it installed.
|
|
334
|
+
*
|
|
335
|
+
* :::note
|
|
336
|
+
* You need uv installed for Python functions.
|
|
337
|
+
* :::
|
|
338
|
+
*
|
|
339
|
+
* The functions need to be in a [uv workspace](https://docs.astral.sh/uv/concepts/projects/workspaces/#workspace-sources).
|
|
340
|
+
*
|
|
341
|
+
* ```js
|
|
342
|
+
* {
|
|
343
|
+
* handler: "functions/src/functions/api.handler"
|
|
344
|
+
* }
|
|
345
|
+
* ```
|
|
346
|
+
*
|
|
347
|
+
* The project structure might look something like this. Where there is a
|
|
348
|
+
* `pyproject.toml` file in the root and the `functions/` directory is a uv
|
|
349
|
+
* workspace with its own `pyproject.toml`.
|
|
350
|
+
*
|
|
351
|
+
* ```txt
|
|
352
|
+
* ├── sst.config.ts
|
|
353
|
+
* ├── pyproject.toml
|
|
354
|
+
* └── functions
|
|
355
|
+
* ├── pyproject.toml
|
|
356
|
+
* └── src
|
|
357
|
+
* └── functions
|
|
358
|
+
* ├── __init__.py
|
|
359
|
+
* └── api.py
|
|
360
|
+
* ```
|
|
361
|
+
*
|
|
362
|
+
* To make sure that the right runtime is used in `sst dev`, make sure to set the
|
|
363
|
+
* version of Python in your `pyproject.toml` to match the runtime you are using.
|
|
364
|
+
*
|
|
365
|
+
* ```toml title="functions/pyproject.toml"
|
|
366
|
+
* requires-python = "==3.11.*"
|
|
367
|
+
* ```
|
|
368
|
+
*
|
|
369
|
+
* You can refer to [this example of deploying a Python function](/docs/examples/#aws-lambda-python).
|
|
370
|
+
*
|
|
371
|
+
* ##### Golang
|
|
372
|
+
*
|
|
373
|
+
* For Golang the handler looks like.
|
|
374
|
+
*
|
|
375
|
+
* ```js
|
|
376
|
+
* {
|
|
377
|
+
* handler: "packages/functions/go/some_module"
|
|
378
|
+
* }
|
|
379
|
+
* ```
|
|
380
|
+
*
|
|
381
|
+
* Where `packages/functions/go/some_module` is the path to the Go module. This
|
|
382
|
+
* includes the name of the module in your `go.mod`. So in this case your `go.mod`
|
|
383
|
+
* might be in `packages/functions/go` and `some_module` is the name of the
|
|
384
|
+
* module.
|
|
385
|
+
*
|
|
386
|
+
* You can refer to [this example of deploying a Go function](/docs/examples/#aws-lambda-go).
|
|
387
|
+
*
|
|
388
|
+
* ##### Rust
|
|
389
|
+
*
|
|
390
|
+
* For Rust, the handler looks like.
|
|
391
|
+
*
|
|
392
|
+
* ```js
|
|
393
|
+
* {
|
|
394
|
+
* handler: "crates/api"
|
|
395
|
+
* }
|
|
396
|
+
* ```
|
|
397
|
+
*
|
|
398
|
+
* Where `crates/api` is the path to the Rust crate. This means there is a
|
|
399
|
+
* `Cargo.toml` file in `crates/api`, and the main() function handles the lambda.
|
|
400
|
+
*/
|
|
401
|
+
handler: Input<string>;
|
|
402
|
+
/**
|
|
403
|
+
* The maximum amount of time the function can run. The minimum timeout is 1 second and the maximum is 900 seconds or 15 minutes.
|
|
404
|
+
*
|
|
405
|
+
* :::note
|
|
406
|
+
* If a function is connected to another service, the request will time out based on the service's limits.
|
|
407
|
+
* :::
|
|
408
|
+
*
|
|
409
|
+
* While the maximum timeout is 15 minutes, if a function is connected to other
|
|
410
|
+
* services, it'll time out based on those limits.
|
|
411
|
+
*
|
|
412
|
+
* - API Gateway has a timeout of 30 seconds. So even if the function has a
|
|
413
|
+
* timeout of 15 minutes, the API request will time out after 30 seconds.
|
|
414
|
+
* - CloudFront has a default timeout of 60 seconds. You can have this limit
|
|
415
|
+
* increased by [contacting AWS Support](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase).
|
|
416
|
+
*
|
|
417
|
+
* @default `"20 seconds"`
|
|
418
|
+
* @example
|
|
419
|
+
* ```js
|
|
420
|
+
* {
|
|
421
|
+
* timeout: "900 seconds"
|
|
422
|
+
* }
|
|
423
|
+
* ```
|
|
424
|
+
*/
|
|
425
|
+
timeout?: Input<DurationMinutes>;
|
|
426
|
+
/**
|
|
427
|
+
* The amount of memory allocated for the function. Takes values between 128 MB
|
|
428
|
+
* and 10240 MB in 1 MB increments. The amount of memory affects the amount of
|
|
429
|
+
* virtual CPU available to the function.
|
|
430
|
+
*
|
|
431
|
+
* :::tip
|
|
432
|
+
* While functions with less memory are cheaper, larger functions can process faster.
|
|
433
|
+
* And might end up being more [cost effective](https://docs.aws.amazon.com/lambda/latest/operatorguide/computing-power.html).
|
|
434
|
+
* :::
|
|
435
|
+
*
|
|
436
|
+
* @default `"1024 MB"`
|
|
437
|
+
* @example
|
|
438
|
+
* ```js
|
|
439
|
+
* {
|
|
440
|
+
* memory: "10240 MB"
|
|
441
|
+
* }
|
|
442
|
+
* ```
|
|
443
|
+
*/
|
|
444
|
+
memory?: Input<Size>;
|
|
445
|
+
/**
|
|
446
|
+
* The amount of ephemeral storage allocated for the function. This sets the ephemeral
|
|
447
|
+
* storage of the lambda function (/tmp). Must be between "512 MB" and "10240 MB" ("10 GB")
|
|
448
|
+
* in 1 MB increments.
|
|
449
|
+
*
|
|
450
|
+
* @default `"512 MB"`
|
|
451
|
+
* @example
|
|
452
|
+
* ```js
|
|
453
|
+
* {
|
|
454
|
+
* storage: "5 GB"
|
|
455
|
+
* }
|
|
456
|
+
* ```
|
|
457
|
+
*/
|
|
458
|
+
storage?: Input<Size>;
|
|
459
|
+
/**
|
|
460
|
+
* Key-value pairs of values that are set as [Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).
|
|
461
|
+
* The keys need to:
|
|
462
|
+
* - Start with a letter
|
|
463
|
+
* - Be at least 2 characters long
|
|
464
|
+
* - Contain only letters, numbers, or underscores
|
|
465
|
+
*
|
|
466
|
+
* They can be accessed in your function using `process.env.<key>`.
|
|
467
|
+
*
|
|
468
|
+
* :::note
|
|
469
|
+
* The total size of the environment variables cannot exceed 4 KB.
|
|
470
|
+
* :::
|
|
471
|
+
*
|
|
472
|
+
* @example
|
|
473
|
+
*
|
|
474
|
+
* ```js
|
|
475
|
+
* {
|
|
476
|
+
* environment: {
|
|
477
|
+
* DEBUG: "true"
|
|
478
|
+
* }
|
|
479
|
+
* }
|
|
480
|
+
* ```
|
|
481
|
+
*/
|
|
482
|
+
environment?: Input<Record<string, Input<string>>>;
|
|
483
|
+
/**
|
|
484
|
+
* Permissions and the resources that the function needs to access. These permissions are
|
|
485
|
+
* used to create the function's IAM role.
|
|
486
|
+
*
|
|
487
|
+
* :::tip
|
|
488
|
+
* If you `link` the function to a resource, the permissions to access it are
|
|
489
|
+
* automatically added.
|
|
490
|
+
* :::
|
|
491
|
+
*
|
|
492
|
+
* @example
|
|
493
|
+
* Allow the function to read and write to an S3 bucket called `my-bucket`.
|
|
494
|
+
* ```js
|
|
495
|
+
* {
|
|
496
|
+
* permissions: [
|
|
497
|
+
* {
|
|
498
|
+
* actions: ["s3:GetObject", "s3:PutObject"],
|
|
499
|
+
* resources: ["arn:aws:s3:::my-bucket/*"]
|
|
500
|
+
* }
|
|
501
|
+
* ]
|
|
502
|
+
* }
|
|
503
|
+
* ```
|
|
504
|
+
*
|
|
505
|
+
* Allow the function to perform all actions on an S3 bucket called `my-bucket`.
|
|
506
|
+
*
|
|
507
|
+
* ```js
|
|
508
|
+
* {
|
|
509
|
+
* permissions: [
|
|
510
|
+
* {
|
|
511
|
+
* actions: ["s3:*"],
|
|
512
|
+
* resources: ["arn:aws:s3:::my-bucket/*"]
|
|
513
|
+
* }
|
|
514
|
+
* ]
|
|
515
|
+
* }
|
|
516
|
+
* ```
|
|
517
|
+
*
|
|
518
|
+
* Granting the function permissions to access all resources.
|
|
519
|
+
*
|
|
520
|
+
* ```js
|
|
521
|
+
* {
|
|
522
|
+
* permissions: [
|
|
523
|
+
* {
|
|
524
|
+
* actions: ["*"],
|
|
525
|
+
* resources: ["*"]
|
|
526
|
+
* }
|
|
527
|
+
* ]
|
|
528
|
+
* }
|
|
529
|
+
* ```
|
|
530
|
+
*/
|
|
531
|
+
permissions?: Input<Prettify<FunctionPermissionArgs>[]>;
|
|
532
|
+
/**
|
|
533
|
+
* Policies to attach to the function. These policies will be added to the
|
|
534
|
+
* function's IAM role.
|
|
535
|
+
*
|
|
536
|
+
* Attaching policies lets you grant a set of predefined permissions to the
|
|
537
|
+
* function without having to specify the permissions in the `permissions` prop.
|
|
538
|
+
*
|
|
539
|
+
* @example
|
|
540
|
+
* For example, allow the function to have read-only access to all resources.
|
|
541
|
+
* ```js
|
|
542
|
+
* {
|
|
543
|
+
* policies: ["arn:aws:iam::aws:policy/ReadOnlyAccess"]
|
|
544
|
+
* }
|
|
545
|
+
* ```
|
|
546
|
+
*/
|
|
547
|
+
policies?: Input<string[]>;
|
|
548
|
+
/**
|
|
549
|
+
* [Link resources](/docs/linking/) to your function. This will:
|
|
550
|
+
*
|
|
551
|
+
* 1. Grant the permissions needed to access the resources.
|
|
552
|
+
* 2. Allow you to access it in your function using the [SDK](/docs/reference/sdk/).
|
|
553
|
+
*
|
|
554
|
+
* @example
|
|
555
|
+
*
|
|
556
|
+
* Takes a list of components to link to the function.
|
|
557
|
+
*
|
|
558
|
+
* ```js
|
|
559
|
+
* {
|
|
560
|
+
* link: [bucket, stripeKey]
|
|
561
|
+
* }
|
|
562
|
+
* ```
|
|
563
|
+
*/
|
|
564
|
+
link?: Input<any[]>;
|
|
565
|
+
/**
|
|
566
|
+
* Enable streaming for the function.
|
|
567
|
+
*
|
|
568
|
+
* Streaming is only supported when using the function `url` is enabled and not when using it
|
|
569
|
+
* with API Gateway.
|
|
570
|
+
*
|
|
571
|
+
* You'll also need to [wrap your handler](https://docs.aws.amazon.com/lambda/latest/dg/configuration-response-streaming.html) with `awslambda.streamifyResponse` to enable streaming.
|
|
572
|
+
*
|
|
573
|
+
* :::note
|
|
574
|
+
* Streaming is currently not supported in `sst dev`.
|
|
575
|
+
* :::
|
|
576
|
+
*
|
|
577
|
+
* While `sst dev` doesn't support streaming, you can use the
|
|
578
|
+
* [`lambda-stream`](https://github.com/astuyve/lambda-stream) package to test locally.
|
|
579
|
+
*
|
|
580
|
+
* Check out the [AWS Lambda streaming example](/docs/examples/#aws-lambda-streaming) for more
|
|
581
|
+
* details.
|
|
582
|
+
*
|
|
583
|
+
* @default `false`
|
|
584
|
+
* @example
|
|
585
|
+
* ```js
|
|
586
|
+
* {
|
|
587
|
+
* streaming: true
|
|
588
|
+
* }
|
|
589
|
+
* ```
|
|
590
|
+
*/
|
|
591
|
+
streaming?: Input<boolean>;
|
|
592
|
+
/**
|
|
593
|
+
* @internal
|
|
594
|
+
*/
|
|
595
|
+
injections?: Input<string[]>;
|
|
596
|
+
/**
|
|
597
|
+
* Configure the function logs in CloudWatch. Or pass in `false` to disable writing logs.
|
|
598
|
+
* @default `{retention: "1 month", format: "text"}`
|
|
599
|
+
* @example
|
|
600
|
+
* ```js
|
|
601
|
+
* {
|
|
602
|
+
* logging: false
|
|
603
|
+
* }
|
|
604
|
+
* ```
|
|
605
|
+
* When set to `false`, the function is not given permissions to write to CloudWatch.
|
|
606
|
+
* Logs.
|
|
607
|
+
*/
|
|
608
|
+
logging?: Input<false | {
|
|
609
|
+
/**
|
|
610
|
+
* The duration the function logs are kept in CloudWatch.
|
|
611
|
+
*
|
|
612
|
+
* Not application when an existing log group is provided.
|
|
613
|
+
*
|
|
614
|
+
* @default `1 month`
|
|
615
|
+
* @example
|
|
616
|
+
* ```js
|
|
617
|
+
* {
|
|
618
|
+
* logging: {
|
|
619
|
+
* retention: "forever"
|
|
620
|
+
* }
|
|
621
|
+
* }
|
|
622
|
+
* ```
|
|
623
|
+
*/
|
|
624
|
+
retention?: Input<keyof typeof RETENTION>;
|
|
625
|
+
/**
|
|
626
|
+
* Assigns the given CloudWatch log group name to the function. This allows you to pass in a previously created log group.
|
|
627
|
+
*
|
|
628
|
+
* By default, the function creates a new log group when it's created.
|
|
629
|
+
*
|
|
630
|
+
* @default Creates a log group
|
|
631
|
+
* @example
|
|
632
|
+
* ```js
|
|
633
|
+
* {
|
|
634
|
+
* logging: {
|
|
635
|
+
* logGroup: "/existing/log-group"
|
|
636
|
+
* }
|
|
637
|
+
* }
|
|
638
|
+
* ```
|
|
639
|
+
*/
|
|
640
|
+
logGroup?: Input<string>;
|
|
641
|
+
/**
|
|
642
|
+
* The [log format](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs-advanced.html)
|
|
643
|
+
* of the Lambda function.
|
|
644
|
+
* @default `"text"`
|
|
645
|
+
* @example
|
|
646
|
+
* ```js
|
|
647
|
+
* {
|
|
648
|
+
* logging: {
|
|
649
|
+
* format: "json"
|
|
650
|
+
* }
|
|
651
|
+
* }
|
|
652
|
+
* ```
|
|
653
|
+
*/
|
|
654
|
+
format?: Input<"text" | "json">;
|
|
655
|
+
}>;
|
|
656
|
+
/**
|
|
657
|
+
* The [architecture](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html)
|
|
658
|
+
* of the Lambda function.
|
|
659
|
+
*
|
|
660
|
+
* @default `"x86_64"`
|
|
661
|
+
* @example
|
|
662
|
+
* ```js
|
|
663
|
+
* {
|
|
664
|
+
* architecture: "arm64"
|
|
665
|
+
* }
|
|
666
|
+
* ```
|
|
667
|
+
*/
|
|
668
|
+
architecture?: Input<"x86_64" | "arm64">;
|
|
669
|
+
/**
|
|
670
|
+
* Assigns the given IAM role ARN to the function. This allows you to pass in a previously created role.
|
|
671
|
+
*
|
|
672
|
+
* :::caution
|
|
673
|
+
* When you pass in a role, the function will not update it if you add `permissions` or `link` resources.
|
|
674
|
+
* :::
|
|
675
|
+
*
|
|
676
|
+
* By default, the function creates a new IAM role when it's created. It'll update this role if you add `permissions` or `link` resources.
|
|
677
|
+
*
|
|
678
|
+
* However, if you pass in a role, you'll need to update it manually if you add `permissions` or `link` resources.
|
|
679
|
+
*
|
|
680
|
+
* @default Creates a new role
|
|
681
|
+
* @example
|
|
682
|
+
* ```js
|
|
683
|
+
* {
|
|
684
|
+
* role: "arn:aws:iam::123456789012:role/my-role"
|
|
685
|
+
* }
|
|
686
|
+
* ```
|
|
687
|
+
*/
|
|
688
|
+
role?: Input<string>;
|
|
689
|
+
/**
|
|
690
|
+
* Enable [Lambda function URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html).
|
|
691
|
+
* These are dedicated endpoints for your Lambda functions.
|
|
692
|
+
* @default `false`
|
|
693
|
+
* @example
|
|
694
|
+
* Enable it with the default options.
|
|
695
|
+
* ```js
|
|
696
|
+
* {
|
|
697
|
+
* url: true
|
|
698
|
+
* }
|
|
699
|
+
* ```
|
|
700
|
+
*
|
|
701
|
+
* Configure the authorization and CORS settings for the endpoint.
|
|
702
|
+
* ```js
|
|
703
|
+
* {
|
|
704
|
+
* url: {
|
|
705
|
+
* authorization: "iam",
|
|
706
|
+
* cors: {
|
|
707
|
+
* allowOrigins: ['https://example.com']
|
|
708
|
+
* }
|
|
709
|
+
* }
|
|
710
|
+
* }
|
|
711
|
+
* ```
|
|
712
|
+
*/
|
|
713
|
+
url?: Input<boolean | {
|
|
714
|
+
/**
|
|
715
|
+
* @deprecated The `url.router` prop is now the recommended way to serve your
|
|
716
|
+
* function URL through a `Router` component.
|
|
717
|
+
*/
|
|
718
|
+
route?: Prettify<RouterRouteArgsDeprecated>;
|
|
719
|
+
/**
|
|
720
|
+
* Serve your function URL through a `Router` instead of a standalone Function URL.
|
|
721
|
+
*
|
|
722
|
+
* By default, this component creates a direct function URL endpoint. But you might
|
|
723
|
+
* want to serve it through the distribution of your `Router` as a:
|
|
724
|
+
*
|
|
725
|
+
* - A path like `/api/users`
|
|
726
|
+
* - A subdomain like `api.example.com`
|
|
727
|
+
* - Or a combined pattern like `dev.example.com/api`
|
|
728
|
+
*
|
|
729
|
+
* @example
|
|
730
|
+
*
|
|
731
|
+
* To serve your function **from a path**, you'll need to configure the root domain
|
|
732
|
+
* in your `Router` component.
|
|
733
|
+
*
|
|
734
|
+
* ```ts title="sst.config.ts" {2}
|
|
735
|
+
* const router = new sst.aws.Router("Router", {
|
|
736
|
+
* domain: "example.com"
|
|
737
|
+
* });
|
|
738
|
+
* ```
|
|
739
|
+
*
|
|
740
|
+
* Now set the `router` and the `path` in the `url` prop.
|
|
741
|
+
*
|
|
742
|
+
* ```ts {4,5}
|
|
743
|
+
* {
|
|
744
|
+
* url: {
|
|
745
|
+
* router: {
|
|
746
|
+
* instance: router,
|
|
747
|
+
* path: "/api/users"
|
|
748
|
+
* }
|
|
749
|
+
* }
|
|
750
|
+
* }
|
|
751
|
+
* ```
|
|
752
|
+
*
|
|
753
|
+
* To serve your function **from a subdomain**, you'll need to configure the
|
|
754
|
+
* domain in your `Router` component to match both the root and the subdomain.
|
|
755
|
+
*
|
|
756
|
+
* ```ts title="sst.config.ts" {3,4}
|
|
757
|
+
* const router = new sst.aws.Router("Router", {
|
|
758
|
+
* domain: {
|
|
759
|
+
* name: "example.com",
|
|
760
|
+
* aliases: ["*.example.com"]
|
|
761
|
+
* }
|
|
762
|
+
* });
|
|
763
|
+
* ```
|
|
764
|
+
*
|
|
765
|
+
* Now set the `domain` in the `router` prop.
|
|
766
|
+
*
|
|
767
|
+
* ```ts {5}
|
|
768
|
+
* {
|
|
769
|
+
* url: {
|
|
770
|
+
* router: {
|
|
771
|
+
* instance: router,
|
|
772
|
+
* domain: "api.example.com"
|
|
773
|
+
* }
|
|
774
|
+
* }
|
|
775
|
+
* }
|
|
776
|
+
* ```
|
|
777
|
+
*
|
|
778
|
+
* Finally, to serve your function **from a combined pattern** like
|
|
779
|
+
* `dev.example.com/api`, you'll need to configure the domain in your `Router` to
|
|
780
|
+
* match the subdomain.
|
|
781
|
+
*
|
|
782
|
+
* ```ts title="sst.config.ts" {3,4}
|
|
783
|
+
* const router = new sst.aws.Router("Router", {
|
|
784
|
+
* domain: {
|
|
785
|
+
* name: "example.com",
|
|
786
|
+
* aliases: ["*.example.com"]
|
|
787
|
+
* }
|
|
788
|
+
* });
|
|
789
|
+
* ```
|
|
790
|
+
*
|
|
791
|
+
* And set the `domain` and the `path`.
|
|
792
|
+
*
|
|
793
|
+
* ```ts {5,6}
|
|
794
|
+
* {
|
|
795
|
+
* url: {
|
|
796
|
+
* router: {
|
|
797
|
+
* instance: router,
|
|
798
|
+
* domain: "dev.example.com",
|
|
799
|
+
* path: "/api/users"
|
|
800
|
+
* }
|
|
801
|
+
* }
|
|
802
|
+
* }
|
|
803
|
+
* ```
|
|
804
|
+
*/
|
|
805
|
+
router?: Prettify<RouterRouteArgs>;
|
|
806
|
+
/**
|
|
807
|
+
* The authorization used for the function URL. Supports [IAM authorization](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).
|
|
808
|
+
* @default `"none"`
|
|
809
|
+
* @example
|
|
810
|
+
* ```js
|
|
811
|
+
* {
|
|
812
|
+
* url: {
|
|
813
|
+
* authorization: "iam"
|
|
814
|
+
* }
|
|
815
|
+
* }
|
|
816
|
+
* ```
|
|
817
|
+
*/
|
|
818
|
+
authorization?: Input<"none" | "iam">;
|
|
819
|
+
/**
|
|
820
|
+
* Customize the CORS (Cross-origin resource sharing) settings for the function URL.
|
|
821
|
+
* @default `true`
|
|
822
|
+
* @example
|
|
823
|
+
* Disable CORS.
|
|
824
|
+
* ```js
|
|
825
|
+
* {
|
|
826
|
+
* url: {
|
|
827
|
+
* cors: false
|
|
828
|
+
* }
|
|
829
|
+
* }
|
|
830
|
+
* ```
|
|
831
|
+
* Only enable the `GET` and `POST` methods for `https://example.com`.
|
|
832
|
+
* ```js
|
|
833
|
+
* {
|
|
834
|
+
* url: {
|
|
835
|
+
* cors: {
|
|
836
|
+
* allowMethods: ["GET", "POST"],
|
|
837
|
+
* allowOrigins: ["https://example.com"]
|
|
838
|
+
* }
|
|
839
|
+
* }
|
|
840
|
+
* }
|
|
841
|
+
* ```
|
|
842
|
+
*/
|
|
843
|
+
cors?: Input<boolean | Prettify<FunctionUrlCorsArgs>>;
|
|
844
|
+
}>;
|
|
845
|
+
/**
|
|
846
|
+
* Configure how your function is bundled.
|
|
847
|
+
*
|
|
848
|
+
* By default, SST will bundle your function
|
|
849
|
+
* code using [esbuild](https://esbuild.github.io/). This tree shakes your code to
|
|
850
|
+
* only include what's used; reducing the size of your function package and improving
|
|
851
|
+
* cold starts.
|
|
852
|
+
*/
|
|
853
|
+
nodejs?: Input<{
|
|
854
|
+
/**
|
|
855
|
+
* @internal
|
|
856
|
+
* Point to a file that exports a list of esbuild plugins to use.
|
|
857
|
+
*
|
|
858
|
+
* @example
|
|
859
|
+
* ```js
|
|
860
|
+
* {
|
|
861
|
+
* nodejs: {
|
|
862
|
+
* plugins: "./plugins.mjs"
|
|
863
|
+
* }
|
|
864
|
+
* }
|
|
865
|
+
* ```
|
|
866
|
+
*
|
|
867
|
+
* The path is relative to the location of the `sst.config.ts`.
|
|
868
|
+
*
|
|
869
|
+
* ```js title="plugins.mjs"
|
|
870
|
+
* import { somePlugin } from "some-plugin";
|
|
871
|
+
*
|
|
872
|
+
* export default [
|
|
873
|
+
* somePlugin()
|
|
874
|
+
* ];
|
|
875
|
+
* ```
|
|
876
|
+
*
|
|
877
|
+
* You'll also need to install the npm package of the plugin.
|
|
878
|
+
*/
|
|
879
|
+
plugins?: Input<string>;
|
|
880
|
+
/**
|
|
881
|
+
* Configure additional esbuild loaders for other file extensions. This is useful
|
|
882
|
+
* when your code is importing non-JS files like `.png`, `.css`, etc.
|
|
883
|
+
*
|
|
884
|
+
* @example
|
|
885
|
+
* ```js
|
|
886
|
+
* {
|
|
887
|
+
* nodejs: {
|
|
888
|
+
* loader: {
|
|
889
|
+
* ".png": "file"
|
|
890
|
+
* }
|
|
891
|
+
* }
|
|
892
|
+
* }
|
|
893
|
+
* ```
|
|
894
|
+
*/
|
|
895
|
+
loader?: Input<Record<string, Loader>>;
|
|
896
|
+
/**
|
|
897
|
+
* Dependencies that need to be excluded from the function package.
|
|
898
|
+
*
|
|
899
|
+
* Certain npm packages cannot be bundled using esbuild. This allows you to exclude them
|
|
900
|
+
* from the bundle. Instead they'll be moved into a `node_modules/` directory in the
|
|
901
|
+
* function package.
|
|
902
|
+
*
|
|
903
|
+
* :::tip
|
|
904
|
+
* If esbuild is giving you an error about a package, try adding it to the `install` list.
|
|
905
|
+
* :::
|
|
906
|
+
*
|
|
907
|
+
* This will allow your functions to be able to use these dependencies when deployed. They
|
|
908
|
+
* just won't be tree shaken. You however still need to have them in your `package.json`.
|
|
909
|
+
*
|
|
910
|
+
* :::caution
|
|
911
|
+
* Packages listed here still need to be in your `package.json`.
|
|
912
|
+
* :::
|
|
913
|
+
*
|
|
914
|
+
* Esbuild will ignore them while traversing the imports in your code. So these are the
|
|
915
|
+
* **package names as seen in the imports**. It also works on packages that are not directly
|
|
916
|
+
* imported by your code.
|
|
917
|
+
*
|
|
918
|
+
* @example
|
|
919
|
+
* ```js
|
|
920
|
+
* {
|
|
921
|
+
* nodejs: {
|
|
922
|
+
* install: ["pg"]
|
|
923
|
+
* }
|
|
924
|
+
* }
|
|
925
|
+
* ```
|
|
926
|
+
*/
|
|
927
|
+
install?: Input<string[]>;
|
|
928
|
+
/**
|
|
929
|
+
* Use this to insert a string at the beginning of the generated JS file.
|
|
930
|
+
*
|
|
931
|
+
* @example
|
|
932
|
+
* ```js
|
|
933
|
+
* {
|
|
934
|
+
* nodejs: {
|
|
935
|
+
* banner: "console.log('Function starting')"
|
|
936
|
+
* }
|
|
937
|
+
* }
|
|
938
|
+
* ```
|
|
939
|
+
*/
|
|
940
|
+
banner?: Input<string>;
|
|
941
|
+
/**
|
|
942
|
+
* This allows you to customize esbuild config that is used.
|
|
943
|
+
*
|
|
944
|
+
* :::tip
|
|
945
|
+
* Check out the _JS tab_ in the code snippets in the esbuild docs for the
|
|
946
|
+
* [`BuildOptions`](https://esbuild.github.io/api/#build).
|
|
947
|
+
* :::
|
|
948
|
+
*/
|
|
949
|
+
esbuild?: Input<BuildOptions>;
|
|
950
|
+
/**
|
|
951
|
+
* Disable if the function code is minified when bundled.
|
|
952
|
+
*
|
|
953
|
+
* @default `true`
|
|
954
|
+
*
|
|
955
|
+
* @example
|
|
956
|
+
* ```js
|
|
957
|
+
* {
|
|
958
|
+
* nodejs: {
|
|
959
|
+
* minify: false
|
|
960
|
+
* }
|
|
961
|
+
* }
|
|
962
|
+
* ```
|
|
963
|
+
*/
|
|
964
|
+
minify?: Input<boolean>;
|
|
965
|
+
/**
|
|
966
|
+
* Configure the format of the generated JS code; ESM or CommonJS.
|
|
967
|
+
*
|
|
968
|
+
* @default `"esm"`
|
|
969
|
+
*
|
|
970
|
+
* @example
|
|
971
|
+
* ```js
|
|
972
|
+
* {
|
|
973
|
+
* nodejs: {
|
|
974
|
+
* format: "cjs"
|
|
975
|
+
* }
|
|
976
|
+
* }
|
|
977
|
+
* ```
|
|
978
|
+
*/
|
|
979
|
+
format?: Input<"cjs" | "esm">;
|
|
980
|
+
/**
|
|
981
|
+
* Configure if source maps are added to the function bundle when **deployed**. Since they
|
|
982
|
+
* increase payload size and potentially cold starts, they are not added by default.
|
|
983
|
+
* However, they are always generated during `sst dev`.
|
|
984
|
+
*
|
|
985
|
+
* :::tip[SST Console]
|
|
986
|
+
* For the [Console](/docs/console/), source maps are always generated and uploaded
|
|
987
|
+
* to your bootstrap bucket. These are then downloaded and used to display
|
|
988
|
+
* Issues in the console.
|
|
989
|
+
* :::
|
|
990
|
+
*
|
|
991
|
+
* @default `false`
|
|
992
|
+
*
|
|
993
|
+
* @example
|
|
994
|
+
* ```js
|
|
995
|
+
* {
|
|
996
|
+
* nodejs: {
|
|
997
|
+
* sourcemap: true
|
|
998
|
+
* }
|
|
999
|
+
* }
|
|
1000
|
+
* ```
|
|
1001
|
+
*/
|
|
1002
|
+
sourcemap?: Input<boolean>;
|
|
1003
|
+
/**
|
|
1004
|
+
* If enabled, modules that are dynamically imported will be bundled in their own files
|
|
1005
|
+
* with common dependencies placed in shared chunks. This can help reduce cold starts
|
|
1006
|
+
* as your function grows in size.
|
|
1007
|
+
*
|
|
1008
|
+
* @default `false`
|
|
1009
|
+
*
|
|
1010
|
+
* @example
|
|
1011
|
+
* ```js
|
|
1012
|
+
* {
|
|
1013
|
+
* nodejs: {
|
|
1014
|
+
* splitting: true
|
|
1015
|
+
* }
|
|
1016
|
+
* }
|
|
1017
|
+
* ```
|
|
1018
|
+
*/
|
|
1019
|
+
splitting?: Input<boolean>;
|
|
1020
|
+
}>;
|
|
1021
|
+
/**
|
|
1022
|
+
* Configure how your Python function is packaged.
|
|
1023
|
+
*/
|
|
1024
|
+
python?: Input<{
|
|
1025
|
+
/**
|
|
1026
|
+
* Set this to `true` if you want to deploy this function as a container image.
|
|
1027
|
+
* There are a couple of reasons why you might want to do this.
|
|
1028
|
+
*
|
|
1029
|
+
* 1. The Lambda package size has an unzipped limit of 250MB. Whereas the
|
|
1030
|
+
* container image size has a limit of 10GB.
|
|
1031
|
+
* 2. Even if you are below the 250MB limit, larger Lambda function packages
|
|
1032
|
+
* have longer cold starts when compared to container image.
|
|
1033
|
+
* 3. You might want to use a custom Dockerfile to handle complex builds.
|
|
1034
|
+
*
|
|
1035
|
+
* @default `false`
|
|
1036
|
+
* @example
|
|
1037
|
+
* ```ts
|
|
1038
|
+
* {
|
|
1039
|
+
* python: {
|
|
1040
|
+
* container: true
|
|
1041
|
+
* }
|
|
1042
|
+
* }
|
|
1043
|
+
* ```
|
|
1044
|
+
*
|
|
1045
|
+
* When you run `sst deploy`, it uses a built-in Dockerfile. It also needs
|
|
1046
|
+
* the Docker daemon to be running.
|
|
1047
|
+
*
|
|
1048
|
+
* :::note
|
|
1049
|
+
* This needs the Docker daemon to be running.
|
|
1050
|
+
* :::
|
|
1051
|
+
*
|
|
1052
|
+
* To use a custom Dockerfile, add one to the rooot of the uv workspace
|
|
1053
|
+
* of the function.
|
|
1054
|
+
*
|
|
1055
|
+
*
|
|
1056
|
+
* ```txt {5}
|
|
1057
|
+
* ├── sst.config.ts
|
|
1058
|
+
* ├── pyproject.toml
|
|
1059
|
+
* └── function
|
|
1060
|
+
* ├── pyproject.toml
|
|
1061
|
+
* ├── Dockerfile
|
|
1062
|
+
* └── src
|
|
1063
|
+
* └── function
|
|
1064
|
+
* └── api.py
|
|
1065
|
+
* ```
|
|
1066
|
+
*
|
|
1067
|
+
* You can refer to [this example of using a container image](/docs/examples/#aws-lambda-python-container).
|
|
1068
|
+
*/
|
|
1069
|
+
container?: Input<boolean>;
|
|
1070
|
+
}>;
|
|
1071
|
+
/**
|
|
1072
|
+
* Add additional files to copy into the function package. Takes a list of objects
|
|
1073
|
+
* with `from` and `to` paths. These will be copied over before the function package
|
|
1074
|
+
* is zipped up.
|
|
1075
|
+
*
|
|
1076
|
+
* @example
|
|
1077
|
+
*
|
|
1078
|
+
* Copying over a single file from the `src` directory to the `src/` directory of the
|
|
1079
|
+
* function package.
|
|
1080
|
+
*
|
|
1081
|
+
* ```js
|
|
1082
|
+
* {
|
|
1083
|
+
* copyFiles: [{ from: "src/index.js" }]
|
|
1084
|
+
* }
|
|
1085
|
+
* ```
|
|
1086
|
+
*
|
|
1087
|
+
* Copying over a single file from the `src` directory to the `core/src` directory in
|
|
1088
|
+
* the function package.
|
|
1089
|
+
*
|
|
1090
|
+
* ```js
|
|
1091
|
+
* {
|
|
1092
|
+
* copyFiles: [{ from: "src/index.js", to: "core/src/index.js" }]
|
|
1093
|
+
* }
|
|
1094
|
+
* ```
|
|
1095
|
+
*
|
|
1096
|
+
* Copying over a couple of files.
|
|
1097
|
+
*
|
|
1098
|
+
* ```js
|
|
1099
|
+
* {
|
|
1100
|
+
* copyFiles: [
|
|
1101
|
+
* { from: "src/this.js", to: "core/src/this.js" },
|
|
1102
|
+
* { from: "src/that.js", to: "core/src/that.js" }
|
|
1103
|
+
* ]
|
|
1104
|
+
* }
|
|
1105
|
+
* ```
|
|
1106
|
+
*/
|
|
1107
|
+
copyFiles?: Input<{
|
|
1108
|
+
/**
|
|
1109
|
+
* Source path relative to the `sst.config.ts`.
|
|
1110
|
+
*/
|
|
1111
|
+
from: Input<string>;
|
|
1112
|
+
/**
|
|
1113
|
+
* Destination path relative to function root in the package. By default, it
|
|
1114
|
+
* creates the same directory structure as the `from` path and copies the file.
|
|
1115
|
+
*
|
|
1116
|
+
* @default The `from` path in the function package
|
|
1117
|
+
*/
|
|
1118
|
+
to?: Input<string>;
|
|
1119
|
+
}[]>;
|
|
1120
|
+
/**
|
|
1121
|
+
* Configure the concurrency settings for the function.
|
|
1122
|
+
*
|
|
1123
|
+
* @default No concurrency settings set
|
|
1124
|
+
* @example
|
|
1125
|
+
* ```js
|
|
1126
|
+
* {
|
|
1127
|
+
* concurrency: {
|
|
1128
|
+
* provisioned: 10,
|
|
1129
|
+
* reserved: 50
|
|
1130
|
+
* }
|
|
1131
|
+
* }
|
|
1132
|
+
* ```
|
|
1133
|
+
*/
|
|
1134
|
+
concurrency?: Input<{
|
|
1135
|
+
/**
|
|
1136
|
+
* Provisioned concurrency ensures a specific number of Lambda instances are always
|
|
1137
|
+
* ready to handle requests, reducing cold start times. Enabling this will incur
|
|
1138
|
+
* extra charges.
|
|
1139
|
+
*
|
|
1140
|
+
* :::note
|
|
1141
|
+
* Enabling provisioned concurrency will incur extra charges.
|
|
1142
|
+
* :::
|
|
1143
|
+
*
|
|
1144
|
+
* Note that `versioning` needs to be enabled for provisioned concurrency.
|
|
1145
|
+
*
|
|
1146
|
+
* @default No provisioned concurrency
|
|
1147
|
+
* @example
|
|
1148
|
+
* ```js
|
|
1149
|
+
* {
|
|
1150
|
+
* concurrency: {
|
|
1151
|
+
* provisioned: 10
|
|
1152
|
+
* }
|
|
1153
|
+
* }
|
|
1154
|
+
* ```
|
|
1155
|
+
*/
|
|
1156
|
+
provisioned?: Input<number>;
|
|
1157
|
+
/**
|
|
1158
|
+
* Reserved concurrency limits the maximum number of concurrent executions for a
|
|
1159
|
+
* function, ensuring critical functions always have capacity. It does not incur
|
|
1160
|
+
* extra charges.
|
|
1161
|
+
*
|
|
1162
|
+
* :::note
|
|
1163
|
+
* Setting this to `0` will disable the function from being triggered.
|
|
1164
|
+
* :::
|
|
1165
|
+
*
|
|
1166
|
+
* @default No reserved concurrency
|
|
1167
|
+
* @example
|
|
1168
|
+
* ```js
|
|
1169
|
+
* {
|
|
1170
|
+
* concurrency: {
|
|
1171
|
+
* reserved: 50
|
|
1172
|
+
* }
|
|
1173
|
+
* }
|
|
1174
|
+
* ```
|
|
1175
|
+
*/
|
|
1176
|
+
reserved?: Input<number>;
|
|
1177
|
+
}>;
|
|
1178
|
+
/**
|
|
1179
|
+
* Enable versioning for the function.
|
|
1180
|
+
*
|
|
1181
|
+
* @default `false`
|
|
1182
|
+
* @example
|
|
1183
|
+
* ```js
|
|
1184
|
+
* {
|
|
1185
|
+
* versioning: true
|
|
1186
|
+
* }
|
|
1187
|
+
* ```
|
|
1188
|
+
*/
|
|
1189
|
+
versioning?: Input<boolean>;
|
|
1190
|
+
/**
|
|
1191
|
+
* A list of Lambda layer ARNs to add to the function.
|
|
1192
|
+
*
|
|
1193
|
+
* :::note
|
|
1194
|
+
* Layers are only added when the function is deployed.
|
|
1195
|
+
* :::
|
|
1196
|
+
*
|
|
1197
|
+
* These are only added when the function is deployed. In `sst dev`, your functions are run
|
|
1198
|
+
* locally, so the layers are not used. Instead you should use a local version of what's
|
|
1199
|
+
* in the layer.
|
|
1200
|
+
*
|
|
1201
|
+
* @example
|
|
1202
|
+
* ```js
|
|
1203
|
+
* {
|
|
1204
|
+
* layers: ["arn:aws:lambda:us-east-1:123456789012:layer:my-layer:1"]
|
|
1205
|
+
* }
|
|
1206
|
+
* ```
|
|
1207
|
+
*/
|
|
1208
|
+
layers?: Input<Input<string>[]>;
|
|
1209
|
+
/**
|
|
1210
|
+
* Mount an EFS file system to the function.
|
|
1211
|
+
*
|
|
1212
|
+
* @example
|
|
1213
|
+
* Create an EFS file system.
|
|
1214
|
+
*
|
|
1215
|
+
* ```ts title="sst.config.ts"
|
|
1216
|
+
* const vpc = new sst.aws.Vpc("MyVpc");
|
|
1217
|
+
* const fileSystem = new sst.aws.Efs("MyFileSystem", { vpc });
|
|
1218
|
+
* ```
|
|
1219
|
+
*
|
|
1220
|
+
* And pass it in.
|
|
1221
|
+
*
|
|
1222
|
+
* ```js
|
|
1223
|
+
* {
|
|
1224
|
+
* volume: {
|
|
1225
|
+
* efs: fileSystem
|
|
1226
|
+
* }
|
|
1227
|
+
* }
|
|
1228
|
+
* ```
|
|
1229
|
+
*
|
|
1230
|
+
* By default, the file system will be mounted to `/mnt/efs`. You can change this by
|
|
1231
|
+
* passing in the `path` property.
|
|
1232
|
+
*
|
|
1233
|
+
* ```js
|
|
1234
|
+
* {
|
|
1235
|
+
* volume: {
|
|
1236
|
+
* efs: fileSystem,
|
|
1237
|
+
* path: "/mnt/my-files"
|
|
1238
|
+
* }
|
|
1239
|
+
* }
|
|
1240
|
+
* ```
|
|
1241
|
+
*
|
|
1242
|
+
* To use an existing EFS, you can pass in an EFS access point ARN.
|
|
1243
|
+
*
|
|
1244
|
+
* ```js
|
|
1245
|
+
* {
|
|
1246
|
+
* volume: {
|
|
1247
|
+
* efs: "arn:aws:elasticfilesystem:us-east-1:123456789012:access-point/fsap-12345678",
|
|
1248
|
+
* }
|
|
1249
|
+
* }
|
|
1250
|
+
* ```
|
|
1251
|
+
*/
|
|
1252
|
+
volume?: Input<{
|
|
1253
|
+
/**
|
|
1254
|
+
* The EFS file system to mount. Or an EFS access point ARN.
|
|
1255
|
+
*/
|
|
1256
|
+
efs: Input<Efs | string>;
|
|
1257
|
+
/**
|
|
1258
|
+
* The path to mount the volume.
|
|
1259
|
+
* @default `"/mnt/efs"`
|
|
1260
|
+
*/
|
|
1261
|
+
path?: Input<string>;
|
|
1262
|
+
}>;
|
|
1263
|
+
/**
|
|
1264
|
+
* A list of tags to add to the function.
|
|
1265
|
+
*
|
|
1266
|
+
* @example
|
|
1267
|
+
* ```js
|
|
1268
|
+
* {
|
|
1269
|
+
* tags: {
|
|
1270
|
+
* "my-tag": "my-value"
|
|
1271
|
+
* }
|
|
1272
|
+
* }
|
|
1273
|
+
* ```
|
|
1274
|
+
*/
|
|
1275
|
+
tags?: Input<Record<string, Input<string>>>;
|
|
1276
|
+
/**
|
|
1277
|
+
* Configure the function to connect to private subnets in a virtual private cloud or VPC. This allows your function to access private resources.
|
|
1278
|
+
*
|
|
1279
|
+
* @example
|
|
1280
|
+
* Create a `Vpc` component.
|
|
1281
|
+
*
|
|
1282
|
+
* ```js title="sst.config.ts"
|
|
1283
|
+
* const myVpc = new sst.aws.Vpc("MyVpc");
|
|
1284
|
+
* ```
|
|
1285
|
+
*
|
|
1286
|
+
* Or reference an existing VPC.
|
|
1287
|
+
*
|
|
1288
|
+
* ```js title="sst.config.ts"
|
|
1289
|
+
* const myVpc = sst.aws.Vpc.get("MyVpc", "vpc-12345678901234567");
|
|
1290
|
+
* ```
|
|
1291
|
+
*
|
|
1292
|
+
* And pass it in.
|
|
1293
|
+
*
|
|
1294
|
+
* ```js
|
|
1295
|
+
* {
|
|
1296
|
+
* vpc: myVpc
|
|
1297
|
+
* }
|
|
1298
|
+
* ```
|
|
1299
|
+
*/
|
|
1300
|
+
vpc?: Vpc | Input<{
|
|
1301
|
+
/**
|
|
1302
|
+
* A list of VPC security group IDs.
|
|
1303
|
+
*/
|
|
1304
|
+
securityGroups: Input<Input<string>[]>;
|
|
1305
|
+
/**
|
|
1306
|
+
* A list of VPC subnet IDs.
|
|
1307
|
+
*/
|
|
1308
|
+
privateSubnets: Input<Input<string>[]>;
|
|
1309
|
+
/**
|
|
1310
|
+
* A list of VPC subnet IDs.
|
|
1311
|
+
* @deprecated Use `privateSubnets` instead.
|
|
1312
|
+
*/
|
|
1313
|
+
subnets?: Input<Input<string>[]>;
|
|
1314
|
+
}>;
|
|
1315
|
+
/**
|
|
1316
|
+
* Hook into the Lambda function build process.
|
|
1317
|
+
*/
|
|
1318
|
+
hook?: {
|
|
1319
|
+
/**
|
|
1320
|
+
* Specify a callback that'll be run after the Lambda function is built.
|
|
1321
|
+
*
|
|
1322
|
+
* :::note
|
|
1323
|
+
* This is not called in `sst dev`.
|
|
1324
|
+
* :::
|
|
1325
|
+
*
|
|
1326
|
+
* Useful for modifying the generated Lambda function code before it's
|
|
1327
|
+
* deployed to AWS. It can also be used for uploading the generated sourcemaps
|
|
1328
|
+
* to a service like Sentry.
|
|
1329
|
+
*
|
|
1330
|
+
* @param dir The directory where the function code is generated.
|
|
1331
|
+
*/
|
|
1332
|
+
postbuild(dir: string): Promise<void>;
|
|
1333
|
+
};
|
|
1334
|
+
/**
|
|
1335
|
+
* [Transform](/docs/components#transform) how this component creates its underlying
|
|
1336
|
+
* resources.
|
|
1337
|
+
*/
|
|
1338
|
+
transform?: {
|
|
1339
|
+
/**
|
|
1340
|
+
* Transform the Lambda Function resource.
|
|
1341
|
+
*/
|
|
1342
|
+
function?: Transform<lambda.FunctionArgs>;
|
|
1343
|
+
/**
|
|
1344
|
+
* Transform the IAM Role resource.
|
|
1345
|
+
*/
|
|
1346
|
+
role?: Transform<iam.RoleArgs>;
|
|
1347
|
+
/**
|
|
1348
|
+
* Transform the CloudWatch LogGroup resource.
|
|
1349
|
+
*/
|
|
1350
|
+
logGroup?: Transform<cloudwatch.LogGroupArgs>;
|
|
1351
|
+
/**
|
|
1352
|
+
* Transform the Function Event Invoke Config resource. This is only created
|
|
1353
|
+
* when the `retries` property is set.
|
|
1354
|
+
*/
|
|
1355
|
+
eventInvokeConfig?: Transform<lambda.FunctionEventInvokeConfigArgs>;
|
|
1356
|
+
};
|
|
1357
|
+
/**
|
|
1358
|
+
* @internal
|
|
1359
|
+
*/
|
|
1360
|
+
_skipMetadata?: boolean;
|
|
1361
|
+
/**
|
|
1362
|
+
* @internal
|
|
1363
|
+
*/
|
|
1364
|
+
_skipHint?: boolean;
|
|
1365
|
+
}
|
|
1366
|
+
/**
|
|
1367
|
+
* The `Function` component lets you add serverless functions to your app.
|
|
1368
|
+
* It uses [AWS Lambda](https://aws.amazon.com/lambda/).
|
|
1369
|
+
*
|
|
1370
|
+
* #### Supported runtimes
|
|
1371
|
+
*
|
|
1372
|
+
* Currently supports **Node.js** and **Golang** functions. **Python** and **Rust**
|
|
1373
|
+
* are community supported. Other runtimes are on the roadmap.
|
|
1374
|
+
*
|
|
1375
|
+
* @example
|
|
1376
|
+
*
|
|
1377
|
+
* #### Minimal example
|
|
1378
|
+
*
|
|
1379
|
+
*
|
|
1380
|
+
* <Tabs>
|
|
1381
|
+
* <TabItem label="Node">
|
|
1382
|
+
* Pass in the path to your handler function.
|
|
1383
|
+
*
|
|
1384
|
+
* ```ts title="sst.config.ts"
|
|
1385
|
+
* new sst.aws.Function("MyFunction", {
|
|
1386
|
+
* handler: "src/lambda.handler"
|
|
1387
|
+
* });
|
|
1388
|
+
* ```
|
|
1389
|
+
*
|
|
1390
|
+
* [Learn more below](#handler).
|
|
1391
|
+
* </TabItem>
|
|
1392
|
+
* <TabItem label="Python">
|
|
1393
|
+
* Pass in the path to your handler function.
|
|
1394
|
+
*
|
|
1395
|
+
* ```ts title="sst.config.ts"
|
|
1396
|
+
* new sst.aws.Function("MyFunction", {
|
|
1397
|
+
* runtime: "python3.11",
|
|
1398
|
+
* handler: "functions/src/functions/api.handler"
|
|
1399
|
+
* });
|
|
1400
|
+
* ```
|
|
1401
|
+
*
|
|
1402
|
+
* You need to have uv installed and your handler function needs to be in a uv workspace. [Learn more below](#handler).
|
|
1403
|
+
* </TabItem>
|
|
1404
|
+
* <TabItem label="Go">
|
|
1405
|
+
* Pass in the directory to your Go module.
|
|
1406
|
+
*
|
|
1407
|
+
* ```ts title="sst.config.ts"
|
|
1408
|
+
* new sst.aws.Function("MyFunction", {
|
|
1409
|
+
* runtime: "go",
|
|
1410
|
+
* handler: "./src"
|
|
1411
|
+
* });
|
|
1412
|
+
* ```
|
|
1413
|
+
*
|
|
1414
|
+
* [Learn more below](#handler).
|
|
1415
|
+
* </TabItem>
|
|
1416
|
+
* <TabItem label="Rust">
|
|
1417
|
+
* Pass in the directory where your Cargo.toml lives.
|
|
1418
|
+
*
|
|
1419
|
+
* ```ts title="sst.config.ts"
|
|
1420
|
+
* new sst.aws.Function("MyFunction", {
|
|
1421
|
+
* runtime: "rust",
|
|
1422
|
+
* handler: "./crates/api/"
|
|
1423
|
+
* });
|
|
1424
|
+
* ```
|
|
1425
|
+
*
|
|
1426
|
+
* [Learn more below](#handler).
|
|
1427
|
+
* </TabItem>
|
|
1428
|
+
* </Tabs>
|
|
1429
|
+
*
|
|
1430
|
+
* #### Set additional config
|
|
1431
|
+
*
|
|
1432
|
+
* Pass in additional Lambda config.
|
|
1433
|
+
*
|
|
1434
|
+
* ```ts {3,4} title="sst.config.ts"
|
|
1435
|
+
* new sst.aws.Function("MyFunction", {
|
|
1436
|
+
* handler: "src/lambda.handler",
|
|
1437
|
+
* timeout: "3 minutes",
|
|
1438
|
+
* memory: "1024 MB"
|
|
1439
|
+
* });
|
|
1440
|
+
* ```
|
|
1441
|
+
*
|
|
1442
|
+
* #### Link resources
|
|
1443
|
+
*
|
|
1444
|
+
* [Link resources](/docs/linking/) to the function. This will grant permissions
|
|
1445
|
+
* to the resources and allow you to access it in your handler.
|
|
1446
|
+
*
|
|
1447
|
+
* ```ts {5} title="sst.config.ts"
|
|
1448
|
+
* const bucket = new sst.aws.Bucket("MyBucket");
|
|
1449
|
+
*
|
|
1450
|
+
* new sst.aws.Function("MyFunction", {
|
|
1451
|
+
* handler: "src/lambda.handler",
|
|
1452
|
+
* link: [bucket]
|
|
1453
|
+
* });
|
|
1454
|
+
* ```
|
|
1455
|
+
*
|
|
1456
|
+
* You can use the [SDK](/docs/reference/sdk/) to access the linked resources
|
|
1457
|
+
* in your handler.
|
|
1458
|
+
*
|
|
1459
|
+
* <Tabs>
|
|
1460
|
+
* <TabItem label="Node">
|
|
1461
|
+
* ```ts title="src/lambda.ts"
|
|
1462
|
+
* import { Resource } from "sst";
|
|
1463
|
+
*
|
|
1464
|
+
* console.log(Resource.MyBucket.name);
|
|
1465
|
+
* ```
|
|
1466
|
+
* </TabItem>
|
|
1467
|
+
* <TabItem label="Python">
|
|
1468
|
+
* ```ts title="functions/src/functions/api.py"
|
|
1469
|
+
* from sst import Resource
|
|
1470
|
+
*
|
|
1471
|
+
* def handler(event, context):
|
|
1472
|
+
* print(Resource.MyBucket.name)
|
|
1473
|
+
* ```
|
|
1474
|
+
*
|
|
1475
|
+
* Where the `sst` package can be added to your `pyproject.toml`.
|
|
1476
|
+
*
|
|
1477
|
+
* ```toml title="functions/pyproject.toml"
|
|
1478
|
+
* [tool.uv.sources]
|
|
1479
|
+
* sst = { git = "https://github.com/sst/sst.git", subdirectory = "sdk/python", branch = "dev" }
|
|
1480
|
+
* ```
|
|
1481
|
+
* </TabItem>
|
|
1482
|
+
* <TabItem label="Go">
|
|
1483
|
+
* ```go title="src/main.go"
|
|
1484
|
+
* import (
|
|
1485
|
+
* "github.com/sst/sst/v3/sdk/golang/resource"
|
|
1486
|
+
* )
|
|
1487
|
+
*
|
|
1488
|
+
* resource.Get("MyBucket", "name")
|
|
1489
|
+
* ```
|
|
1490
|
+
* </TabItem>
|
|
1491
|
+
* <TabItem label="Rust">
|
|
1492
|
+
* ```rust title="src/main.rs"
|
|
1493
|
+
* use sst_sdk::Resource;
|
|
1494
|
+
* #[derive(serde::Deserialize, Debug)]
|
|
1495
|
+
* struct Bucket {
|
|
1496
|
+
* name: String,
|
|
1497
|
+
* }
|
|
1498
|
+
*
|
|
1499
|
+
* let resource = Resource::init().unwrap();
|
|
1500
|
+
* let Bucket { name } = resource.get("Bucket").unwrap();
|
|
1501
|
+
* ```
|
|
1502
|
+
* </TabItem>
|
|
1503
|
+
* </Tabs>
|
|
1504
|
+
*
|
|
1505
|
+
* #### Set environment variables
|
|
1506
|
+
*
|
|
1507
|
+
* Set environment variables that you can read in your function. For example, using
|
|
1508
|
+
* `process.env` in your Node.js functions.
|
|
1509
|
+
*
|
|
1510
|
+
* ```ts {4} title="sst.config.ts"
|
|
1511
|
+
* new sst.aws.Function("MyFunction", {
|
|
1512
|
+
* handler: "src/lambda.handler",
|
|
1513
|
+
* environment: {
|
|
1514
|
+
* DEBUG: "true"
|
|
1515
|
+
* }
|
|
1516
|
+
* });
|
|
1517
|
+
* ```
|
|
1518
|
+
*
|
|
1519
|
+
* #### Enable function URLs
|
|
1520
|
+
*
|
|
1521
|
+
* Enable function URLs to invoke the function over HTTP.
|
|
1522
|
+
*
|
|
1523
|
+
* ```ts {3} title="sst.config.ts"
|
|
1524
|
+
* new sst.aws.Function("MyFunction", {
|
|
1525
|
+
* handler: "src/lambda.handler",
|
|
1526
|
+
* url: true
|
|
1527
|
+
* });
|
|
1528
|
+
* ```
|
|
1529
|
+
*
|
|
1530
|
+
* #### Bundling
|
|
1531
|
+
*
|
|
1532
|
+
* Customize how SST uses [esbuild](https://esbuild.github.io/) to bundle your Node.js
|
|
1533
|
+
* functions with the `nodejs` property.
|
|
1534
|
+
*
|
|
1535
|
+
* ```ts title="sst.config.ts" {3-5}
|
|
1536
|
+
* new sst.aws.Function("MyFunction", {
|
|
1537
|
+
* handler: "src/lambda.handler",
|
|
1538
|
+
* nodejs: {
|
|
1539
|
+
* install: ["pg"]
|
|
1540
|
+
* }
|
|
1541
|
+
* });
|
|
1542
|
+
* ```
|
|
1543
|
+
*
|
|
1544
|
+
* Or override it entirely by passing in your own function `bundle`.
|
|
1545
|
+
*/
|
|
1546
|
+
export declare class Function extends Component implements Link.Linkable {
|
|
1547
|
+
private constructorName;
|
|
1548
|
+
private function;
|
|
1549
|
+
private role;
|
|
1550
|
+
private logGroup;
|
|
1551
|
+
private urlEndpoint;
|
|
1552
|
+
private eventInvokeConfig?;
|
|
1553
|
+
private static readonly encryptionKey;
|
|
1554
|
+
static readonly appsync: () => Promise<any>;
|
|
1555
|
+
constructor(name: string, args: FunctionArgs, opts?: ComponentResourceOptions);
|
|
1556
|
+
/**
|
|
1557
|
+
* The underlying [resources](/docs/components/#nodes) this component creates.
|
|
1558
|
+
*/
|
|
1559
|
+
get nodes(): {
|
|
1560
|
+
/**
|
|
1561
|
+
* The IAM Role the function will use.
|
|
1562
|
+
*/
|
|
1563
|
+
role: import("@pulumi/aws/iam/role.js").Role;
|
|
1564
|
+
/**
|
|
1565
|
+
* The AWS Lambda function.
|
|
1566
|
+
*/
|
|
1567
|
+
function: Output<import("@pulumi/aws/lambda/function.js").Function>;
|
|
1568
|
+
/**
|
|
1569
|
+
* The CloudWatch Log Group the function logs are stored.
|
|
1570
|
+
*/
|
|
1571
|
+
logGroup: Output<import("@pulumi/aws/cloudwatch/logGroup.js").LogGroup | undefined>;
|
|
1572
|
+
/**
|
|
1573
|
+
* The Function Event Invoke Config resource if retries are configured.
|
|
1574
|
+
*/
|
|
1575
|
+
eventInvokeConfig: import("@pulumi/aws/lambda/functionEventInvokeConfig.js").FunctionEventInvokeConfig | undefined;
|
|
1576
|
+
};
|
|
1577
|
+
/**
|
|
1578
|
+
* The Lambda function URL if `url` is enabled.
|
|
1579
|
+
*/
|
|
1580
|
+
get url(): Output<string>;
|
|
1581
|
+
/**
|
|
1582
|
+
* The name of the Lambda function.
|
|
1583
|
+
*/
|
|
1584
|
+
get name(): Output<string>;
|
|
1585
|
+
/**
|
|
1586
|
+
* The ARN of the Lambda function.
|
|
1587
|
+
*/
|
|
1588
|
+
get arn(): Output<string>;
|
|
1589
|
+
/**
|
|
1590
|
+
* Add environment variables lazily to the function after the function is created.
|
|
1591
|
+
*
|
|
1592
|
+
* This is useful for adding environment variables that are only available after the
|
|
1593
|
+
* function is created, like the function URL.
|
|
1594
|
+
*
|
|
1595
|
+
* @param environment The environment variables to add to the function.
|
|
1596
|
+
*
|
|
1597
|
+
* @example
|
|
1598
|
+
* Add the function URL as an environment variable.
|
|
1599
|
+
*
|
|
1600
|
+
* ```ts title="sst.config.ts"
|
|
1601
|
+
* const fn = new sst.aws.Function("MyFunction", {
|
|
1602
|
+
* handler: "src/handler.handler",
|
|
1603
|
+
* url: true,
|
|
1604
|
+
* });
|
|
1605
|
+
*
|
|
1606
|
+
* fn.addEnvironment({
|
|
1607
|
+
* URL: fn.url,
|
|
1608
|
+
* });
|
|
1609
|
+
* ```
|
|
1610
|
+
*/
|
|
1611
|
+
addEnvironment(environment: Input<Record<string, Input<string>>>): FunctionEnvironmentUpdate;
|
|
1612
|
+
/** @internal */
|
|
1613
|
+
static fromDefinition(name: string, definition: Input<string | FunctionArgs>, override: Pick<FunctionArgs, "description" | "permissions">, argsTransform?: Transform<FunctionArgs>, opts?: ComponentResourceOptions): Output<Function>;
|
|
1614
|
+
/** @internal */
|
|
1615
|
+
getSSTLink(): {
|
|
1616
|
+
properties: {
|
|
1617
|
+
name: Output<string>;
|
|
1618
|
+
url: Output<string | undefined>;
|
|
1619
|
+
};
|
|
1620
|
+
include: {
|
|
1621
|
+
effect?: "allow" | "deny" | undefined;
|
|
1622
|
+
actions: string[];
|
|
1623
|
+
resources: Input<Input<string>[]>;
|
|
1624
|
+
type: "aws.permission";
|
|
1625
|
+
}[];
|
|
1626
|
+
};
|
|
1627
|
+
}
|
|
1628
|
+
export {};
|
|
1629
|
+
//# sourceMappingURL=function.d.ts.map
|