@sst-community/sst 4.20.0 → 5.0.0-alpha.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/README.md +92 -52
- package/package.json +35 -11
- package/platform/js/chunks/chunk-HIZZCEDS.js +328 -0
- package/platform/js/chunks/chunk-HIZZCEDS.js.map +6 -0
- package/platform/js/chunks/chunk-KOKHGKJ2.js +639 -0
- package/platform/js/chunks/chunk-KOKHGKJ2.js.map +6 -0
- package/platform/js/chunks/chunk-ONNI4XNK.js +367 -0
- package/platform/js/chunks/chunk-ONNI4XNK.js.map +6 -0
- package/platform/js/chunks/chunk-VIFHC73J.js +108 -0
- package/platform/js/chunks/chunk-VIFHC73J.js.map +6 -0
- package/platform/js/chunks/chunk-WJ6BVA46.js +10 -0
- package/platform/js/chunks/chunk-WJ6BVA46.js.map +6 -0
- package/platform/js/chunks/chunk-ZOXXXME5.js +472 -0
- package/platform/js/chunks/chunk-ZOXXXME5.js.map +6 -0
- package/platform/js/chunks/component-32FCLIRK.js +26 -0
- package/platform/js/chunks/component-32FCLIRK.js.map +6 -0
- package/platform/js/chunks/config-DMGMTLNB.js +10 -0
- package/platform/js/chunks/config-DMGMTLNB.js.map +6 -0
- package/platform/js/chunks/link-OJ3RNGQ3.js +9 -0
- package/platform/js/chunks/link-OJ3RNGQ3.js.map +6 -0
- package/platform/js/components/aws/index.js +35362 -0
- package/platform/js/components/aws/index.js.map +6 -0
- package/platform/js/components/cloudflare/index.js +3246 -0
- package/platform/js/components/cloudflare/index.js.map +6 -0
- package/platform/js/components/core.js +114 -0
- package/platform/js/components/core.js.map +6 -0
- package/platform/js/components/vercel/index.js +120 -0
- package/platform/js/components/vercel/index.js.map +6 -0
- package/platform/js/testing/index.js +569 -0
- package/platform/js/testing/index.js.map +6 -0
- package/platform/package.json +25 -0
- package/platform/src/ast/add.mjs +190 -0
- package/platform/src/auto/run.ts +109 -0
- package/platform/src/components/README.md +652 -0
- package/platform/src/components/args.ts +133 -0
- package/platform/src/components/aws/alb.ts +577 -0
- package/platform/src/components/aws/analog.ts +462 -0
- package/platform/src/components/aws/apigateway-websocket-route.ts +206 -0
- package/platform/src/components/aws/apigateway-websocket.ts +894 -0
- package/platform/src/components/aws/apigatewayv1-api-key.ts +90 -0
- package/platform/src/components/aws/apigatewayv1-authorizer.ts +178 -0
- package/platform/src/components/aws/apigatewayv1-base-route.ts +78 -0
- package/platform/src/components/aws/apigatewayv1-integration-route.ts +92 -0
- package/platform/src/components/aws/apigatewayv1-lambda-route.ts +152 -0
- package/platform/src/components/aws/apigatewayv1-usage-plan.ts +109 -0
- package/platform/src/components/aws/apigatewayv1.ts +1691 -0
- package/platform/src/components/aws/apigatewayv2-authorizer.ts +199 -0
- package/platform/src/components/aws/apigatewayv2-base-route.ts +69 -0
- package/platform/src/components/aws/apigatewayv2-lambda-route.ts +141 -0
- package/platform/src/components/aws/apigatewayv2-private-route.ts +101 -0
- package/platform/src/components/aws/apigatewayv2-url-route.ts +90 -0
- package/platform/src/components/aws/apigatewayv2.ts +1439 -0
- package/platform/src/components/aws/app-sync-data-source.ts +264 -0
- package/platform/src/components/aws/app-sync-function.ts +79 -0
- package/platform/src/components/aws/app-sync-resolver.ts +110 -0
- package/platform/src/components/aws/app-sync.ts +849 -0
- package/platform/src/components/aws/astro.ts +580 -0
- package/platform/src/components/aws/aurora.ts +1356 -0
- package/platform/src/components/aws/auth-v1.ts +69 -0
- package/platform/src/components/aws/auth.ts +417 -0
- package/platform/src/components/aws/bucket-lambda-subscriber.ts +162 -0
- package/platform/src/components/aws/bucket-notification.ts +254 -0
- package/platform/src/components/aws/bucket-queue-subscriber.ts +122 -0
- package/platform/src/components/aws/bucket-topic-subscriber.ts +144 -0
- package/platform/src/components/aws/bucket.ts +2046 -0
- package/platform/src/components/aws/bus-base-subscriber.ts +52 -0
- package/platform/src/components/aws/bus-lambda-subscriber.ts +125 -0
- package/platform/src/components/aws/bus-queue-subscriber.ts +88 -0
- package/platform/src/components/aws/bus.ts +630 -0
- package/platform/src/components/aws/cdn.ts +561 -0
- package/platform/src/components/aws/cluster-v1.ts +932 -0
- package/platform/src/components/aws/cluster.ts +584 -0
- package/platform/src/components/aws/cognito-identity-pool.ts +433 -0
- package/platform/src/components/aws/cognito-identity-provider.ts +96 -0
- package/platform/src/components/aws/cognito-user-pool-client.ts +114 -0
- package/platform/src/components/aws/cognito-user-pool.ts +1089 -0
- package/platform/src/components/aws/cron-v2.ts +555 -0
- package/platform/src/components/aws/cron.ts +435 -0
- package/platform/src/components/aws/dns-validated-certificate.ts +108 -0
- package/platform/src/components/aws/dns.ts +221 -0
- package/platform/src/components/aws/dsql.ts +741 -0
- package/platform/src/components/aws/dynamo-lambda-subscriber.ts +124 -0
- package/platform/src/components/aws/dynamo.ts +929 -0
- package/platform/src/components/aws/efs.ts +410 -0
- package/platform/src/components/aws/email.ts +673 -0
- package/platform/src/components/aws/fargate.ts +1279 -0
- package/platform/src/components/aws/function.ts +3227 -0
- package/platform/src/components/aws/helpers/apigateway-account.ts +78 -0
- package/platform/src/components/aws/helpers/apigatewayv2-domain.ts +144 -0
- package/platform/src/components/aws/helpers/arn.ts +182 -0
- package/platform/src/components/aws/helpers/bootstrap.ts +16 -0
- package/platform/src/components/aws/helpers/client.ts +76 -0
- package/platform/src/components/aws/helpers/container-builder.ts +33 -0
- package/platform/src/components/aws/helpers/custom-domain.ts +128 -0
- package/platform/src/components/aws/helpers/event-source.ts +41 -0
- package/platform/src/components/aws/helpers/fargate.ts +727 -0
- package/platform/src/components/aws/helpers/function-builder.ts +133 -0
- package/platform/src/components/aws/helpers/function-code.ts +224 -0
- package/platform/src/components/aws/helpers/function-part.ts +202 -0
- package/platform/src/components/aws/helpers/function-permission.ts +29 -0
- package/platform/src/components/aws/helpers/load-balancer-args.ts +88 -0
- package/platform/src/components/aws/helpers/load-balancer.ts +17 -0
- package/platform/src/components/aws/helpers/provider.ts +36 -0
- package/platform/src/components/aws/helpers/queue-policy.ts +33 -0
- package/platform/src/components/aws/helpers/rds.ts +212 -0
- package/platform/src/components/aws/helpers/site-builder.ts +41 -0
- package/platform/src/components/aws/helpers/subscriber.ts +23 -0
- package/platform/src/components/aws/helpers/vpc.ts +27 -0
- package/platform/src/components/aws/https-redirect.ts +216 -0
- package/platform/src/components/aws/iam-edit.ts +50 -0
- package/platform/src/components/aws/index.ts +61 -0
- package/platform/src/components/aws/kinesis-stream-lambda-subscriber.ts +122 -0
- package/platform/src/components/aws/kinesis-stream.ts +416 -0
- package/platform/src/components/aws/linkable.ts +32 -0
- package/platform/src/components/aws/logging.ts +25 -0
- package/platform/src/components/aws/microvm.ts +988 -0
- package/platform/src/components/aws/mysql.ts +1047 -0
- package/platform/src/components/aws/nextjs.ts +1052 -0
- package/platform/src/components/aws/nuxt.ts +527 -0
- package/platform/src/components/aws/open-search.ts +603 -0
- package/platform/src/components/aws/opencontrol.ts +235 -0
- package/platform/src/components/aws/permission.ts +80 -0
- package/platform/src/components/aws/postgres-v1.ts +537 -0
- package/platform/src/components/aws/postgres.ts +1074 -0
- package/platform/src/components/aws/providers/bucket-files.ts +32 -0
- package/platform/src/components/aws/providers/distribution-deployment-waiter.ts +27 -0
- package/platform/src/components/aws/providers/distribution-invalidation.ts +24 -0
- package/platform/src/components/aws/providers/function-environment-update.ts +46 -0
- package/platform/src/components/aws/providers/hosted-zone-lookup.ts +25 -0
- package/platform/src/components/aws/providers/kv-keys.ts +15 -0
- package/platform/src/components/aws/providers/kv-routes-update.ts +24 -0
- package/platform/src/components/aws/providers/microvm-image-prune.ts +48 -0
- package/platform/src/components/aws/providers/origin-access-control.ts +21 -0
- package/platform/src/components/aws/providers/rds-role-lookup.ts +21 -0
- package/platform/src/components/aws/providers/vector-table.ts +25 -0
- package/platform/src/components/aws/queue-lambda-subscriber.ts +135 -0
- package/platform/src/components/aws/queue.ts +712 -0
- package/platform/src/components/aws/react.ts +510 -0
- package/platform/src/components/aws/realtime-lambda-subscriber.ts +129 -0
- package/platform/src/components/aws/realtime.ts +345 -0
- package/platform/src/components/aws/redis-v1.ts +595 -0
- package/platform/src/components/aws/redis.ts +1078 -0
- package/platform/src/components/aws/remix.ts +576 -0
- package/platform/src/components/aws/router-base-route.ts +83 -0
- package/platform/src/components/aws/router-bucket-route.ts +63 -0
- package/platform/src/components/aws/router-url-route.ts +75 -0
- package/platform/src/components/aws/router.ts +3281 -0
- package/platform/src/components/aws/service-v1.ts +876 -0
- package/platform/src/components/aws/service.ts +2994 -0
- package/platform/src/components/aws/sns-topic-lambda-subscriber.ts +127 -0
- package/platform/src/components/aws/sns-topic-queue-subscriber.ts +105 -0
- package/platform/src/components/aws/sns-topic.ts +700 -0
- package/platform/src/components/aws/solid-start.ts +467 -0
- package/platform/src/components/aws/ssr-site.ts +2204 -0
- package/platform/src/components/aws/static-site.ts +1389 -0
- package/platform/src/components/aws/step-functions/choice.ts +123 -0
- package/platform/src/components/aws/step-functions/fail.ts +69 -0
- package/platform/src/components/aws/step-functions/map.ts +264 -0
- package/platform/src/components/aws/step-functions/parallel.ts +170 -0
- package/platform/src/components/aws/step-functions/pass.ts +48 -0
- package/platform/src/components/aws/step-functions/state.ts +376 -0
- package/platform/src/components/aws/step-functions/succeed.ts +31 -0
- package/platform/src/components/aws/step-functions/task.ts +538 -0
- package/platform/src/components/aws/step-functions/wait.ts +105 -0
- package/platform/src/components/aws/step-functions.ts +804 -0
- package/platform/src/components/aws/svelte-kit.ts +563 -0
- package/platform/src/components/aws/takeover/alb.ts +9 -0
- package/platform/src/components/aws/takeover/apigatewayv2.ts +43 -0
- package/platform/src/components/aws/takeover/app-sync.ts +45 -0
- package/platform/src/components/aws/takeover/aurora.ts +19 -0
- package/platform/src/components/aws/takeover/bucket.ts +94 -0
- package/platform/src/components/aws/takeover/bus.ts +43 -0
- package/platform/src/components/aws/takeover/cognito-user-pool.ts +21 -0
- package/platform/src/components/aws/takeover/cron-v2.ts +9 -0
- package/platform/src/components/aws/takeover/dsql.ts +12 -0
- package/platform/src/components/aws/takeover/dynamo.ts +31 -0
- package/platform/src/components/aws/takeover/efs.ts +9 -0
- package/platform/src/components/aws/takeover/function.ts +21 -0
- package/platform/src/components/aws/takeover/helpers.ts +26 -0
- package/platform/src/components/aws/takeover/index.ts +27 -0
- package/platform/src/components/aws/takeover/mysql.ts +17 -0
- package/platform/src/components/aws/takeover/postgres.ts +17 -0
- package/platform/src/components/aws/takeover/queue.ts +21 -0
- package/platform/src/components/aws/takeover/redis.ts +10 -0
- package/platform/src/components/aws/takeover/service.ts +22 -0
- package/platform/src/components/aws/takeover/sns-topic.ts +27 -0
- package/platform/src/components/aws/takeover/task.ts +13 -0
- package/platform/src/components/aws/tan-stack-start.ts +479 -0
- package/platform/src/components/aws/task.ts +571 -0
- package/platform/src/components/aws/v5/alb.ts +310 -0
- package/platform/src/components/aws/v5/apigatewayv2.ts +845 -0
- package/platform/src/components/aws/v5/app-sync.ts +673 -0
- package/platform/src/components/aws/v5/aurora.ts +855 -0
- package/platform/src/components/aws/v5/bucket.ts +1001 -0
- package/platform/src/components/aws/v5/bus.ts +321 -0
- package/platform/src/components/aws/v5/cluster.ts +230 -0
- package/platform/src/components/aws/v5/cognito-user-pool-client.ts +100 -0
- package/platform/src/components/aws/v5/cognito-user-pool.ts +693 -0
- package/platform/src/components/aws/v5/cron-v2.ts +316 -0
- package/platform/src/components/aws/v5/dsql.ts +665 -0
- package/platform/src/components/aws/v5/dynamo.ts +477 -0
- package/platform/src/components/aws/v5/efs.ts +311 -0
- package/platform/src/components/aws/v5/function.ts +1527 -0
- package/platform/src/components/aws/v5/index.ts +26 -0
- package/platform/src/components/aws/v5/mysql.ts +604 -0
- package/platform/src/components/aws/v5/postgres.ts +612 -0
- package/platform/src/components/aws/v5/queue.ts +271 -0
- package/platform/src/components/aws/v5/redis.ts +550 -0
- package/platform/src/components/aws/v5/service.ts +2209 -0
- package/platform/src/components/aws/v5/sns-topic.ts +284 -0
- package/platform/src/components/aws/v5/task.ts +549 -0
- package/platform/src/components/aws/vector.ts +316 -0
- package/platform/src/components/aws/vpc-v1.ts +580 -0
- package/platform/src/components/aws/vpc.ts +1641 -0
- package/platform/src/components/aws/workflow.ts +421 -0
- package/platform/src/components/base/base-site.ts +101 -0
- package/platform/src/components/base/base-ssr-site.ts +120 -0
- package/platform/src/components/base/base-static-site.ts +314 -0
- package/platform/src/components/cloudflare/account-id.ts +1 -0
- package/platform/src/components/cloudflare/ai.ts +77 -0
- package/platform/src/components/cloudflare/astro.ts +355 -0
- package/platform/src/components/cloudflare/auth.ts +69 -0
- package/platform/src/components/cloudflare/binding.ts +132 -0
- package/platform/src/components/cloudflare/bucket.ts +142 -0
- package/platform/src/components/cloudflare/cron.ts +207 -0
- package/platform/src/components/cloudflare/d1.ts +230 -0
- package/platform/src/components/cloudflare/dns.ts +253 -0
- package/platform/src/components/cloudflare/durable-object.ts +144 -0
- package/platform/src/components/cloudflare/experimental/index.ts +3 -0
- package/platform/src/components/cloudflare/experimental/solid-start.ts +288 -0
- package/platform/src/components/cloudflare/experimental/static-site.ts +4 -0
- package/platform/src/components/cloudflare/helpers/compatibility.ts +44 -0
- package/platform/src/components/cloudflare/helpers/fetch.ts +81 -0
- package/platform/src/components/cloudflare/helpers/validation.ts +74 -0
- package/platform/src/components/cloudflare/helpers/worker-builder.ts +57 -0
- package/platform/src/components/cloudflare/helpers/wrangler.ts +222 -0
- package/platform/src/components/cloudflare/hyperdrive.ts +402 -0
- package/platform/src/components/cloudflare/index.ts +25 -0
- package/platform/src/components/cloudflare/kv.ts +218 -0
- package/platform/src/components/cloudflare/providers/dns-record.ts +43 -0
- package/platform/src/components/cloudflare/providers/kv-data.ts +107 -0
- package/platform/src/components/cloudflare/providers/worker-assets.ts +41 -0
- package/platform/src/components/cloudflare/providers/worker-placement.ts +93 -0
- package/platform/src/components/cloudflare/providers/worker-script.ts +47 -0
- package/platform/src/components/cloudflare/providers/worker-url.ts +109 -0
- package/platform/src/components/cloudflare/providers/zone-lookup.ts +85 -0
- package/platform/src/components/cloudflare/queue-worker-subscriber.ts +192 -0
- package/platform/src/components/cloudflare/queue.ts +310 -0
- package/platform/src/components/cloudflare/rate-limit.ts +178 -0
- package/platform/src/components/cloudflare/react-router.ts +322 -0
- package/platform/src/components/cloudflare/ssr-site.ts +293 -0
- package/platform/src/components/cloudflare/static-site-v2.ts +428 -0
- package/platform/src/components/cloudflare/static-site.ts +470 -0
- package/platform/src/components/cloudflare/tan-stack-start.ts +408 -0
- package/platform/src/components/cloudflare/worker.ts +1080 -0
- package/platform/src/components/cloudflare/workflow.ts +319 -0
- package/platform/src/components/component.ts +242 -0
- package/platform/src/components/core.ts +43 -0
- package/platform/src/components/cpu.ts +10 -0
- package/platform/src/components/dns.ts +82 -0
- package/platform/src/components/duration.ts +67 -0
- package/platform/src/components/error.ts +5 -0
- package/platform/src/components/esbuild.ts +15 -0
- package/platform/src/components/experimental/dev-command.ts +127 -0
- package/platform/src/components/experimental/index.ts +1 -0
- package/platform/src/components/groups.ts +9 -0
- package/platform/src/components/index.ts +9 -0
- package/platform/src/components/input.ts +2 -0
- package/platform/src/components/link.ts +201 -0
- package/platform/src/components/linkable.ts +360 -0
- package/platform/src/components/naming-rules.ts +299 -0
- package/platform/src/components/naming.ts +189 -0
- package/platform/src/components/parts-component.ts +662 -0
- package/platform/src/components/parts.ts +299 -0
- package/platform/src/components/path.ts +5 -0
- package/platform/src/components/rpc/rpc.ts +110 -0
- package/platform/src/components/secret.ts +159 -0
- package/platform/src/components/size.ts +28 -0
- package/platform/src/components/takeover.ts +131 -0
- package/platform/src/components/transform.ts +107 -0
- package/platform/src/components/vercel/account-id.ts +1 -0
- package/platform/src/components/vercel/dns.ts +171 -0
- package/platform/src/components/vercel/index.ts +2 -0
- package/platform/src/components/vercel/providers/dns-record.ts +34 -0
- package/platform/src/config.ts +1460 -0
- package/platform/src/global-aliases.d.ts +37 -0
- package/platform/src/global.d.ts +374 -0
- package/platform/src/internal.d.ts +18 -0
- package/platform/src/runtime/worker/unenv.d.ts +14 -0
- package/platform/src/runtime/worker/unenv.mjs +26 -0
- package/platform/src/shim/run.js +25 -0
- package/platform/src/testing/global.ts +83 -0
- package/platform/src/testing/index.ts +103 -0
- package/platform/src/testing/mock.ts +646 -0
- package/platform/src/testing/vitest.ts +36 -0
- package/platform/src/util/compare-semver.ts +23 -0
- package/platform/src/util/fs.ts +49 -0
- package/platform/src/util/lazy.ts +12 -0
- package/platform/src/util/minify.ts +10 -0
- package/platform/src/util/package.ts +29 -0
- package/platform/src/util/semaphore.ts +29 -0
- package/platform/src/util/warn.ts +7 -0
- package/platform/types/auto/run.d.ts +9 -0
- package/platform/types/auto/run.d.ts.map +1 -0
- package/platform/types/components/args.d.ts +77 -0
- package/platform/types/components/args.d.ts.map +1 -0
- package/platform/types/components/aws/alb.d.ts +283 -0
- package/platform/types/components/aws/alb.d.ts.map +1 -0
- package/platform/types/components/aws/analog.d.ts +408 -0
- package/platform/types/components/aws/analog.d.ts.map +1 -0
- package/platform/types/components/aws/apigateway-websocket-route.d.ts +74 -0
- package/platform/types/components/aws/apigateway-websocket-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigateway-websocket.d.ts +560 -0
- package/platform/types/components/aws/apigateway-websocket.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-api-key.d.ts +48 -0
- package/platform/types/components/aws/apigatewayv1-api-key.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-authorizer.d.ts +55 -0
- package/platform/types/components/aws/apigatewayv1-authorizer.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-base-route.d.ts +36 -0
- package/platform/types/components/aws/apigatewayv1-base-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-integration-route.d.ts +39 -0
- package/platform/types/components/aws/apigatewayv1-integration-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-lambda-route.d.ts +53 -0
- package/platform/types/components/aws/apigatewayv1-lambda-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-usage-plan.d.ts +53 -0
- package/platform/types/components/aws/apigatewayv1-usage-plan.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1.d.ts +1028 -0
- package/platform/types/components/aws/apigatewayv1.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2-authorizer.d.ts +54 -0
- package/platform/types/components/aws/apigatewayv2-authorizer.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2-base-route.d.ts +28 -0
- package/platform/types/components/aws/apigatewayv2-base-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2-lambda-route.d.ts +59 -0
- package/platform/types/components/aws/apigatewayv2-lambda-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2-private-route.d.ts +54 -0
- package/platform/types/components/aws/apigatewayv2-private-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2-url-route.d.ts +44 -0
- package/platform/types/components/aws/apigatewayv2-url-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2.d.ts +955 -0
- package/platform/types/components/aws/apigatewayv2.d.ts.map +1 -0
- package/platform/types/components/aws/app-sync-data-source.d.ts +52 -0
- package/platform/types/components/aws/app-sync-data-source.d.ts.map +1 -0
- package/platform/types/components/aws/app-sync-function.d.ts +33 -0
- package/platform/types/components/aws/app-sync-function.d.ts.map +1 -0
- package/platform/types/components/aws/app-sync-resolver.d.ts +41 -0
- package/platform/types/components/aws/app-sync-resolver.d.ts.map +1 -0
- package/platform/types/components/aws/app-sync.d.ts +638 -0
- package/platform/types/components/aws/app-sync.d.ts.map +1 -0
- package/platform/types/components/aws/astro.d.ts +409 -0
- package/platform/types/components/aws/astro.d.ts.map +1 -0
- package/platform/types/components/aws/aurora.d.ts +720 -0
- package/platform/types/components/aws/aurora.d.ts.map +1 -0
- package/platform/types/components/aws/auth-v1.d.ts +26 -0
- package/platform/types/components/aws/auth-v1.d.ts.map +1 -0
- package/platform/types/components/aws/auth.d.ts +295 -0
- package/platform/types/components/aws/auth.d.ts.map +1 -0
- package/platform/types/components/aws/bucket-lambda-subscriber.d.ts +61 -0
- package/platform/types/components/aws/bucket-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bucket-notification.d.ts +47 -0
- package/platform/types/components/aws/bucket-notification.d.ts.map +1 -0
- package/platform/types/components/aws/bucket-queue-subscriber.d.ts +55 -0
- package/platform/types/components/aws/bucket-queue-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bucket-topic-subscriber.d.ts +55 -0
- package/platform/types/components/aws/bucket-topic-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bucket.d.ts +1356 -0
- package/platform/types/components/aws/bucket.d.ts.map +1 -0
- package/platform/types/components/aws/bus-base-subscriber.d.ts +20 -0
- package/platform/types/components/aws/bus-base-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bus-lambda-subscriber.d.ts +50 -0
- package/platform/types/components/aws/bus-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bus-queue-subscriber.d.ts +44 -0
- package/platform/types/components/aws/bus-queue-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bus.d.ts +447 -0
- package/platform/types/components/aws/bus.d.ts.map +1 -0
- package/platform/types/components/aws/cdn.d.ts +310 -0
- package/platform/types/components/aws/cdn.d.ts.map +1 -0
- package/platform/types/components/aws/cluster-v1.d.ts +885 -0
- package/platform/types/components/aws/cluster-v1.d.ts.map +1 -0
- package/platform/types/components/aws/cluster.d.ts +364 -0
- package/platform/types/components/aws/cluster.d.ts.map +1 -0
- package/platform/types/components/aws/cognito-identity-pool.d.ts +199 -0
- package/platform/types/components/aws/cognito-identity-pool.d.ts.map +1 -0
- package/platform/types/components/aws/cognito-identity-provider.d.ts +38 -0
- package/platform/types/components/aws/cognito-identity-provider.d.ts.map +1 -0
- package/platform/types/components/aws/cognito-user-pool-client.d.ts +50 -0
- package/platform/types/components/aws/cognito-user-pool-client.d.ts.map +1 -0
- package/platform/types/components/aws/cognito-user-pool.d.ts +703 -0
- package/platform/types/components/aws/cognito-user-pool.d.ts.map +1 -0
- package/platform/types/components/aws/cron-v2.d.ts +325 -0
- package/platform/types/components/aws/cron-v2.d.ts.map +1 -0
- package/platform/types/components/aws/cron.d.ts +259 -0
- package/platform/types/components/aws/cron.d.ts.map +1 -0
- package/platform/types/components/aws/dns-validated-certificate.d.ts +27 -0
- package/platform/types/components/aws/dns-validated-certificate.d.ts.map +1 -0
- package/platform/types/components/aws/dns.d.ts +94 -0
- package/platform/types/components/aws/dns.d.ts.map +1 -0
- package/platform/types/components/aws/dsql.d.ts +369 -0
- package/platform/types/components/aws/dsql.d.ts.map +1 -0
- package/platform/types/components/aws/dynamo-lambda-subscriber.d.ts +55 -0
- package/platform/types/components/aws/dynamo-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/dynamo.d.ts +628 -0
- package/platform/types/components/aws/dynamo.d.ts.map +1 -0
- package/platform/types/components/aws/efs.d.ts +217 -0
- package/platform/types/components/aws/efs.d.ts.map +1 -0
- package/platform/types/components/aws/email.d.ts +370 -0
- package/platform/types/components/aws/email.d.ts.map +1 -0
- package/platform/types/components/aws/fargate.d.ts +894 -0
- package/platform/types/components/aws/fargate.d.ts.map +1 -0
- package/platform/types/components/aws/function.d.ts +1755 -0
- package/platform/types/components/aws/function.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/apigateway-account.d.ts +3 -0
- package/platform/types/components/aws/helpers/apigateway-account.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/apigatewayv2-domain.d.ts +144 -0
- package/platform/types/components/aws/helpers/apigatewayv2-domain.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/arn.d.ts +51 -0
- package/platform/types/components/aws/helpers/arn.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/bootstrap.d.ts +13 -0
- package/platform/types/components/aws/helpers/bootstrap.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/client.d.ts +7 -0
- package/platform/types/components/aws/helpers/client.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/container-builder.d.ts +4 -0
- package/platform/types/components/aws/helpers/container-builder.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/custom-domain.d.ts +111 -0
- package/platform/types/components/aws/helpers/custom-domain.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/event-source.d.ts +26 -0
- package/platform/types/components/aws/helpers/event-source.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/fargate.d.ts +225 -0
- package/platform/types/components/aws/helpers/fargate.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/function-builder.d.ts +14 -0
- package/platform/types/components/aws/helpers/function-builder.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/function-code.d.ts +80 -0
- package/platform/types/components/aws/helpers/function-code.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/function-part.d.ts +61 -0
- package/platform/types/components/aws/helpers/function-part.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/function-permission.d.ts +17 -0
- package/platform/types/components/aws/helpers/function-permission.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/load-balancer-args.d.ts +40 -0
- package/platform/types/components/aws/helpers/load-balancer-args.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/load-balancer.d.ts +9 -0
- package/platform/types/components/aws/helpers/load-balancer.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/provider.d.ts +3 -0
- package/platform/types/components/aws/helpers/provider.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/queue-policy.d.ts +11 -0
- package/platform/types/components/aws/helpers/queue-policy.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/rds.d.ts +98 -0
- package/platform/types/components/aws/helpers/rds.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/site-builder.d.ts +4 -0
- package/platform/types/components/aws/helpers/site-builder.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/subscriber.d.ts +6 -0
- package/platform/types/components/aws/helpers/subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/vpc.d.ts +14 -0
- package/platform/types/components/aws/helpers/vpc.d.ts.map +1 -0
- package/platform/types/components/aws/https-redirect.d.ts +38 -0
- package/platform/types/components/aws/https-redirect.d.ts.map +1 -0
- package/platform/types/components/aws/iam-edit.d.ts +39 -0
- package/platform/types/components/aws/iam-edit.d.ts.map +1 -0
- package/platform/types/components/aws/index.d.ts +56 -0
- package/platform/types/components/aws/index.d.ts.map +1 -0
- package/platform/types/components/aws/kinesis-stream-lambda-subscriber.d.ts +49 -0
- package/platform/types/components/aws/kinesis-stream-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/kinesis-stream.d.ts +254 -0
- package/platform/types/components/aws/kinesis-stream.d.ts.map +1 -0
- package/platform/types/components/aws/linkable.d.ts +17 -0
- package/platform/types/components/aws/linkable.d.ts.map +1 -0
- package/platform/types/components/aws/logging.d.ts +26 -0
- package/platform/types/components/aws/logging.d.ts.map +1 -0
- package/platform/types/components/aws/microvm.d.ts +439 -0
- package/platform/types/components/aws/microvm.d.ts.map +1 -0
- package/platform/types/components/aws/mysql.d.ts +525 -0
- package/platform/types/components/aws/mysql.d.ts.map +1 -0
- package/platform/types/components/aws/nextjs.d.ts +534 -0
- package/platform/types/components/aws/nextjs.d.ts.map +1 -0
- package/platform/types/components/aws/nuxt.d.ts +480 -0
- package/platform/types/components/aws/nuxt.d.ts.map +1 -0
- package/platform/types/components/aws/open-search.d.ts +306 -0
- package/platform/types/components/aws/open-search.d.ts.map +1 -0
- package/platform/types/components/aws/opencontrol.d.ts +169 -0
- package/platform/types/components/aws/opencontrol.d.ts.map +1 -0
- package/platform/types/components/aws/permission.d.ts +80 -0
- package/platform/types/components/aws/permission.d.ts.map +1 -0
- package/platform/types/components/aws/postgres-v1.d.ts +328 -0
- package/platform/types/components/aws/postgres-v1.d.ts.map +1 -0
- package/platform/types/components/aws/postgres.d.ts +529 -0
- package/platform/types/components/aws/postgres.d.ts.map +1 -0
- package/platform/types/components/aws/providers/bucket-files.d.ts +18 -0
- package/platform/types/components/aws/providers/bucket-files.d.ts.map +1 -0
- package/platform/types/components/aws/providers/distribution-deployment-waiter.d.ts +13 -0
- package/platform/types/components/aws/providers/distribution-deployment-waiter.d.ts.map +1 -0
- package/platform/types/components/aws/providers/distribution-invalidation.d.ts +11 -0
- package/platform/types/components/aws/providers/distribution-invalidation.d.ts.map +1 -0
- package/platform/types/components/aws/providers/function-environment-update.d.ts +33 -0
- package/platform/types/components/aws/providers/function-environment-update.d.ts.map +1 -0
- package/platform/types/components/aws/providers/hosted-zone-lookup.d.ts +11 -0
- package/platform/types/components/aws/providers/hosted-zone-lookup.d.ts.map +1 -0
- package/platform/types/components/aws/providers/kv-keys.d.ts +11 -0
- package/platform/types/components/aws/providers/kv-keys.d.ts.map +1 -0
- package/platform/types/components/aws/providers/kv-routes-update.d.ts +11 -0
- package/platform/types/components/aws/providers/kv-routes-update.d.ts.map +1 -0
- package/platform/types/components/aws/providers/microvm-image-prune.d.ts +35 -0
- package/platform/types/components/aws/providers/microvm-image-prune.d.ts.map +1 -0
- package/platform/types/components/aws/providers/origin-access-control.d.ts +8 -0
- package/platform/types/components/aws/providers/origin-access-control.d.ts.map +1 -0
- package/platform/types/components/aws/providers/rds-role-lookup.d.ts +8 -0
- package/platform/types/components/aws/providers/rds-role-lookup.d.ts.map +1 -0
- package/platform/types/components/aws/providers/vector-table.d.ts +12 -0
- package/platform/types/components/aws/providers/vector-table.d.ts.map +1 -0
- package/platform/types/components/aws/queue-lambda-subscriber.d.ts +53 -0
- package/platform/types/components/aws/queue-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/queue.d.ts +494 -0
- package/platform/types/components/aws/queue.d.ts.map +1 -0
- package/platform/types/components/aws/react.d.ts +407 -0
- package/platform/types/components/aws/react.d.ts.map +1 -0
- package/platform/types/components/aws/realtime-lambda-subscriber.d.ts +53 -0
- package/platform/types/components/aws/realtime-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/realtime.d.ts +237 -0
- package/platform/types/components/aws/realtime.d.ts.map +1 -0
- package/platform/types/components/aws/redis-v1.d.ts +348 -0
- package/platform/types/components/aws/redis-v1.d.ts.map +1 -0
- package/platform/types/components/aws/redis.d.ts +545 -0
- package/platform/types/components/aws/redis.d.ts.map +1 -0
- package/platform/types/components/aws/remix.d.ts +408 -0
- package/platform/types/components/aws/remix.d.ts.map +1 -0
- package/platform/types/components/aws/router-base-route.d.ts +28 -0
- package/platform/types/components/aws/router-base-route.d.ts.map +1 -0
- package/platform/types/components/aws/router-bucket-route.d.ts +29 -0
- package/platform/types/components/aws/router-bucket-route.d.ts.map +1 -0
- package/platform/types/components/aws/router-url-route.d.ts +28 -0
- package/platform/types/components/aws/router-url-route.d.ts.map +1 -0
- package/platform/types/components/aws/router.d.ts +1754 -0
- package/platform/types/components/aws/router.d.ts.map +1 -0
- package/platform/types/components/aws/service-v1.d.ts +78 -0
- package/platform/types/components/aws/service-v1.d.ts.map +1 -0
- package/platform/types/components/aws/service.d.ts +1756 -0
- package/platform/types/components/aws/service.d.ts.map +1 -0
- package/platform/types/components/aws/sns-topic-lambda-subscriber.d.ts +53 -0
- package/platform/types/components/aws/sns-topic-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/sns-topic-queue-subscriber.d.ts +55 -0
- package/platform/types/components/aws/sns-topic-queue-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/sns-topic.d.ts +394 -0
- package/platform/types/components/aws/sns-topic.d.ts.map +1 -0
- package/platform/types/components/aws/solid-start.d.ts +399 -0
- package/platform/types/components/aws/solid-start.d.ts.map +1 -0
- package/platform/types/components/aws/ssr-site.d.ts +895 -0
- package/platform/types/components/aws/ssr-site.d.ts.map +1 -0
- package/platform/types/components/aws/static-site.d.ts +744 -0
- package/platform/types/components/aws/static-site.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/choice.d.ts +73 -0
- package/platform/types/components/aws/step-functions/choice.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/fail.d.ts +63 -0
- package/platform/types/components/aws/step-functions/fail.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/map.d.ts +236 -0
- package/platform/types/components/aws/step-functions/map.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/parallel.d.ts +127 -0
- package/platform/types/components/aws/step-functions/parallel.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/pass.d.ts +39 -0
- package/platform/types/components/aws/step-functions/pass.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/state.d.ts +231 -0
- package/platform/types/components/aws/step-functions/state.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/succeed.d.ts +26 -0
- package/platform/types/components/aws/step-functions/succeed.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/task.d.ts +485 -0
- package/platform/types/components/aws/step-functions/task.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/wait.d.ts +91 -0
- package/platform/types/components/aws/step-functions/wait.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions.d.ts +478 -0
- package/platform/types/components/aws/step-functions.d.ts.map +1 -0
- package/platform/types/components/aws/svelte-kit.d.ts +456 -0
- package/platform/types/components/aws/svelte-kit.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/alb.d.ts +2 -0
- package/platform/types/components/aws/takeover/alb.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/apigatewayv2.d.ts +2 -0
- package/platform/types/components/aws/takeover/apigatewayv2.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/app-sync.d.ts +2 -0
- package/platform/types/components/aws/takeover/app-sync.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/aurora.d.ts +2 -0
- package/platform/types/components/aws/takeover/aurora.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/bucket.d.ts +2 -0
- package/platform/types/components/aws/takeover/bucket.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/bus.d.ts +2 -0
- package/platform/types/components/aws/takeover/bus.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/cognito-user-pool.d.ts +2 -0
- package/platform/types/components/aws/takeover/cognito-user-pool.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/cron-v2.d.ts +2 -0
- package/platform/types/components/aws/takeover/cron-v2.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/dsql.d.ts +2 -0
- package/platform/types/components/aws/takeover/dsql.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/dynamo.d.ts +2 -0
- package/platform/types/components/aws/takeover/dynamo.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/efs.d.ts +2 -0
- package/platform/types/components/aws/takeover/efs.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/function.d.ts +2 -0
- package/platform/types/components/aws/takeover/function.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/helpers.d.ts +16 -0
- package/platform/types/components/aws/takeover/helpers.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/index.d.ts +28 -0
- package/platform/types/components/aws/takeover/index.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/mysql.d.ts +2 -0
- package/platform/types/components/aws/takeover/mysql.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/postgres.d.ts +2 -0
- package/platform/types/components/aws/takeover/postgres.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/queue.d.ts +2 -0
- package/platform/types/components/aws/takeover/queue.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/redis.d.ts +2 -0
- package/platform/types/components/aws/takeover/redis.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/service.d.ts +2 -0
- package/platform/types/components/aws/takeover/service.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/sns-topic.d.ts +2 -0
- package/platform/types/components/aws/takeover/sns-topic.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/task.d.ts +2 -0
- package/platform/types/components/aws/takeover/task.d.ts.map +1 -0
- package/platform/types/components/aws/tan-stack-start.d.ts +359 -0
- package/platform/types/components/aws/tan-stack-start.d.ts.map +1 -0
- package/platform/types/components/aws/task.d.ts +342 -0
- package/platform/types/components/aws/task.d.ts.map +1 -0
- package/platform/types/components/aws/v5/alb.d.ts +177 -0
- package/platform/types/components/aws/v5/alb.d.ts.map +1 -0
- package/platform/types/components/aws/v5/apigatewayv2.d.ts +482 -0
- package/platform/types/components/aws/v5/apigatewayv2.d.ts.map +1 -0
- package/platform/types/components/aws/v5/app-sync.d.ts +424 -0
- package/platform/types/components/aws/v5/app-sync.d.ts.map +1 -0
- package/platform/types/components/aws/v5/aurora.d.ts +459 -0
- package/platform/types/components/aws/v5/aurora.d.ts.map +1 -0
- package/platform/types/components/aws/v5/bucket.d.ts +578 -0
- package/platform/types/components/aws/v5/bucket.d.ts.map +1 -0
- package/platform/types/components/aws/v5/bus.d.ts +255 -0
- package/platform/types/components/aws/v5/bus.d.ts.map +1 -0
- package/platform/types/components/aws/v5/cluster.d.ts +167 -0
- package/platform/types/components/aws/v5/cluster.d.ts.map +1 -0
- package/platform/types/components/aws/v5/cognito-user-pool-client.d.ts +69 -0
- package/platform/types/components/aws/v5/cognito-user-pool-client.d.ts.map +1 -0
- package/platform/types/components/aws/v5/cognito-user-pool.d.ts +396 -0
- package/platform/types/components/aws/v5/cognito-user-pool.d.ts.map +1 -0
- package/platform/types/components/aws/v5/cron-v2.d.ts +206 -0
- package/platform/types/components/aws/v5/cron-v2.d.ts.map +1 -0
- package/platform/types/components/aws/v5/dsql.d.ts +453 -0
- package/platform/types/components/aws/v5/dsql.d.ts.map +1 -0
- package/platform/types/components/aws/v5/dynamo.d.ts +328 -0
- package/platform/types/components/aws/v5/dynamo.d.ts.map +1 -0
- package/platform/types/components/aws/v5/efs.d.ts +178 -0
- package/platform/types/components/aws/v5/efs.d.ts.map +1 -0
- package/platform/types/components/aws/v5/function.d.ts +582 -0
- package/platform/types/components/aws/v5/function.d.ts.map +1 -0
- package/platform/types/components/aws/v5/index.d.ts +27 -0
- package/platform/types/components/aws/v5/index.d.ts.map +1 -0
- package/platform/types/components/aws/v5/mysql.d.ts +347 -0
- package/platform/types/components/aws/v5/mysql.d.ts.map +1 -0
- package/platform/types/components/aws/v5/postgres.d.ts +348 -0
- package/platform/types/components/aws/v5/postgres.d.ts.map +1 -0
- package/platform/types/components/aws/v5/queue.d.ts +190 -0
- package/platform/types/components/aws/v5/queue.d.ts.map +1 -0
- package/platform/types/components/aws/v5/redis.d.ts +214 -0
- package/platform/types/components/aws/v5/redis.d.ts.map +1 -0
- package/platform/types/components/aws/v5/service.d.ts +1347 -0
- package/platform/types/components/aws/v5/service.d.ts.map +1 -0
- package/platform/types/components/aws/v5/sns-topic.d.ts +226 -0
- package/platform/types/components/aws/v5/sns-topic.d.ts.map +1 -0
- package/platform/types/components/aws/v5/task.d.ts +346 -0
- package/platform/types/components/aws/v5/task.d.ts.map +1 -0
- package/platform/types/components/aws/vector.d.ts +163 -0
- package/platform/types/components/aws/vector.d.ts.map +1 -0
- package/platform/types/components/aws/vpc-v1.d.ts +208 -0
- package/platform/types/components/aws/vpc-v1.d.ts.map +1 -0
- package/platform/types/components/aws/vpc.d.ts +491 -0
- package/platform/types/components/aws/vpc.d.ts.map +1 -0
- package/platform/types/components/aws/workflow.d.ts +331 -0
- package/platform/types/components/aws/workflow.d.ts.map +1 -0
- package/platform/types/components/base/base-site.d.ts +53 -0
- package/platform/types/components/base/base-site.d.ts.map +1 -0
- package/platform/types/components/base/base-ssr-site.d.ts +13 -0
- package/platform/types/components/base/base-ssr-site.d.ts.map +1 -0
- package/platform/types/components/base/base-static-site.d.ts +199 -0
- package/platform/types/components/base/base-static-site.d.ts.map +1 -0
- package/platform/types/components/cloudflare/account-id.d.ts +2 -0
- package/platform/types/components/cloudflare/account-id.d.ts.map +1 -0
- package/platform/types/components/cloudflare/ai.d.ts +68 -0
- package/platform/types/components/cloudflare/ai.d.ts.map +1 -0
- package/platform/types/components/cloudflare/astro.d.ts +249 -0
- package/platform/types/components/cloudflare/astro.d.ts.map +1 -0
- package/platform/types/components/cloudflare/auth.d.ts +22 -0
- package/platform/types/components/cloudflare/auth.d.ts.map +1 -0
- package/platform/types/components/cloudflare/binding.d.ts +109 -0
- package/platform/types/components/cloudflare/binding.d.ts.map +1 -0
- package/platform/types/components/cloudflare/bucket.d.ts +98 -0
- package/platform/types/components/cloudflare/bucket.d.ts.map +1 -0
- package/platform/types/components/cloudflare/cron.d.ts +151 -0
- package/platform/types/components/cloudflare/cron.d.ts.map +1 -0
- package/platform/types/components/cloudflare/d1.d.ts +142 -0
- package/platform/types/components/cloudflare/d1.d.ts.map +1 -0
- package/platform/types/components/cloudflare/dns.d.ts +100 -0
- package/platform/types/components/cloudflare/dns.d.ts.map +1 -0
- package/platform/types/components/cloudflare/durable-object.d.ts +125 -0
- package/platform/types/components/cloudflare/durable-object.d.ts.map +1 -0
- package/platform/types/components/cloudflare/experimental/index.d.ts +4 -0
- package/platform/types/components/cloudflare/experimental/index.d.ts.map +1 -0
- package/platform/types/components/cloudflare/experimental/solid-start.d.ts +219 -0
- package/platform/types/components/cloudflare/experimental/solid-start.d.ts.map +1 -0
- package/platform/types/components/cloudflare/experimental/static-site.d.ts +3 -0
- package/platform/types/components/cloudflare/experimental/static-site.d.ts.map +1 -0
- package/platform/types/components/cloudflare/helpers/compatibility.d.ts +21 -0
- package/platform/types/components/cloudflare/helpers/compatibility.d.ts.map +1 -0
- package/platform/types/components/cloudflare/helpers/fetch.d.ts +19 -0
- package/platform/types/components/cloudflare/helpers/fetch.d.ts.map +1 -0
- package/platform/types/components/cloudflare/helpers/validation.d.ts +15 -0
- package/platform/types/components/cloudflare/helpers/validation.d.ts.map +1 -0
- package/platform/types/components/cloudflare/helpers/worker-builder.d.ts +10 -0
- package/platform/types/components/cloudflare/helpers/worker-builder.d.ts.map +1 -0
- package/platform/types/components/cloudflare/helpers/wrangler.d.ts +31 -0
- package/platform/types/components/cloudflare/helpers/wrangler.d.ts.map +1 -0
- package/platform/types/components/cloudflare/hyperdrive.d.ts +302 -0
- package/platform/types/components/cloudflare/hyperdrive.d.ts.map +1 -0
- package/platform/types/components/cloudflare/index.d.ts +25 -0
- package/platform/types/components/cloudflare/index.d.ts.map +1 -0
- package/platform/types/components/cloudflare/kv.d.ts +140 -0
- package/platform/types/components/cloudflare/kv.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/dns-record.d.ts +21 -0
- package/platform/types/components/cloudflare/providers/dns-record.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/kv-data.d.ts +23 -0
- package/platform/types/components/cloudflare/providers/kv-data.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/worker-assets.d.ts +19 -0
- package/platform/types/components/cloudflare/providers/worker-assets.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/worker-placement.d.ts +27 -0
- package/platform/types/components/cloudflare/providers/worker-placement.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/worker-script.d.ts +23 -0
- package/platform/types/components/cloudflare/providers/worker-script.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/worker-url.d.ts +24 -0
- package/platform/types/components/cloudflare/providers/worker-url.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/zone-lookup.d.ts +22 -0
- package/platform/types/components/cloudflare/providers/zone-lookup.d.ts.map +1 -0
- package/platform/types/components/cloudflare/queue-worker-subscriber.d.ts +122 -0
- package/platform/types/components/cloudflare/queue-worker-subscriber.d.ts.map +1 -0
- package/platform/types/components/cloudflare/queue.d.ts +235 -0
- package/platform/types/components/cloudflare/queue.d.ts.map +1 -0
- package/platform/types/components/cloudflare/rate-limit.d.ts +117 -0
- package/platform/types/components/cloudflare/rate-limit.d.ts.map +1 -0
- package/platform/types/components/cloudflare/react-router.d.ts +262 -0
- package/platform/types/components/cloudflare/react-router.d.ts.map +1 -0
- package/platform/types/components/cloudflare/ssr-site.d.ts +60 -0
- package/platform/types/components/cloudflare/ssr-site.d.ts.map +1 -0
- package/platform/types/components/cloudflare/static-site-v2.d.ts +302 -0
- package/platform/types/components/cloudflare/static-site-v2.d.ts.map +1 -0
- package/platform/types/components/cloudflare/static-site.d.ts +270 -0
- package/platform/types/components/cloudflare/static-site.d.ts.map +1 -0
- package/platform/types/components/cloudflare/tan-stack-start.d.ts +259 -0
- package/platform/types/components/cloudflare/tan-stack-start.d.ts.map +1 -0
- package/platform/types/components/cloudflare/worker.d.ts +483 -0
- package/platform/types/components/cloudflare/worker.d.ts.map +1 -0
- package/platform/types/components/cloudflare/workflow.d.ts +248 -0
- package/platform/types/components/cloudflare/workflow.d.ts.map +1 -0
- package/platform/types/components/component.d.ts +67 -0
- package/platform/types/components/component.d.ts.map +1 -0
- package/platform/types/components/core.d.ts +16 -0
- package/platform/types/components/core.d.ts.map +1 -0
- package/platform/types/components/cpu.d.ts +3 -0
- package/platform/types/components/cpu.d.ts.map +1 -0
- package/platform/types/components/dns.d.ts +63 -0
- package/platform/types/components/dns.d.ts.map +1 -0
- package/platform/types/components/duration.d.ts +9 -0
- package/platform/types/components/duration.d.ts.map +1 -0
- package/platform/types/components/error.d.ts +4 -0
- package/platform/types/components/error.d.ts.map +1 -0
- package/platform/types/components/esbuild.d.ts +3 -0
- package/platform/types/components/esbuild.d.ts.map +1 -0
- package/platform/types/components/experimental/dev-command.d.ts +99 -0
- package/platform/types/components/experimental/dev-command.d.ts.map +1 -0
- package/platform/types/components/experimental/index.d.ts +2 -0
- package/platform/types/components/experimental/index.d.ts.map +1 -0
- package/platform/types/components/groups.d.ts +6 -0
- package/platform/types/components/groups.d.ts.map +1 -0
- package/platform/types/components/index.d.ts +5 -0
- package/platform/types/components/index.d.ts.map +1 -0
- package/platform/types/components/input.d.ts +3 -0
- package/platform/types/components/input.d.ts.map +1 -0
- package/platform/types/components/link.d.ts +41 -0
- package/platform/types/components/link.d.ts.map +1 -0
- package/platform/types/components/linkable.d.ts +301 -0
- package/platform/types/components/linkable.d.ts.map +1 -0
- package/platform/types/components/naming-rules.d.ts +32 -0
- package/platform/types/components/naming-rules.d.ts.map +1 -0
- package/platform/types/components/naming.d.ts +21 -0
- package/platform/types/components/naming.d.ts.map +1 -0
- package/platform/types/components/parts-component.d.ts +241 -0
- package/platform/types/components/parts-component.d.ts.map +1 -0
- package/platform/types/components/parts.d.ts +194 -0
- package/platform/types/components/parts.d.ts.map +1 -0
- package/platform/types/components/path.d.ts +2 -0
- package/platform/types/components/path.d.ts.map +1 -0
- package/platform/types/components/rpc/rpc.d.ts +19 -0
- package/platform/types/components/rpc/rpc.d.ts.map +1 -0
- package/platform/types/components/secret.d.ts +123 -0
- package/platform/types/components/secret.d.ts.map +1 -0
- package/platform/types/components/size.d.ts +5 -0
- package/platform/types/components/size.d.ts.map +1 -0
- package/platform/types/components/takeover.d.ts +88 -0
- package/platform/types/components/takeover.d.ts.map +1 -0
- package/platform/types/components/transform.d.ts +34 -0
- package/platform/types/components/transform.d.ts.map +1 -0
- package/platform/types/components/vercel/account-id.d.ts +2 -0
- package/platform/types/components/vercel/account-id.d.ts.map +1 -0
- package/platform/types/components/vercel/dns.d.ts +73 -0
- package/platform/types/components/vercel/dns.d.ts.map +1 -0
- package/platform/types/components/vercel/index.d.ts +3 -0
- package/platform/types/components/vercel/index.d.ts.map +1 -0
- package/platform/types/components/vercel/providers/dns-record.d.ts +15 -0
- package/platform/types/components/vercel/providers/dns-record.d.ts.map +1 -0
- package/platform/types/config.d.ts +1437 -0
- package/platform/types/config.d.ts.map +1 -0
- package/platform/types/global-aliases.d.ts +37 -0
- package/platform/types/global.d.ts +374 -0
- package/platform/types/internal.d.ts +18 -0
- package/platform/types/runtime/worker/unenv.d.ts +14 -0
- package/platform/types/testing/global.d.ts +11 -0
- package/platform/types/testing/global.d.ts.map +1 -0
- package/platform/types/testing/index.d.ts +80 -0
- package/platform/types/testing/index.d.ts.map +1 -0
- package/platform/types/testing/mock.d.ts +136 -0
- package/platform/types/testing/mock.d.ts.map +1 -0
- package/platform/types/testing/vitest.d.ts +19 -0
- package/platform/types/testing/vitest.d.ts.map +1 -0
- package/platform/types/util/compare-semver.d.ts +4 -0
- package/platform/types/util/compare-semver.d.ts.map +1 -0
- package/platform/types/util/fs.d.ts +5 -0
- package/platform/types/util/fs.d.ts.map +1 -0
- package/platform/types/util/lazy.d.ts +2 -0
- package/platform/types/util/lazy.d.ts.map +1 -0
- package/platform/types/util/minify.d.ts +2 -0
- package/platform/types/util/minify.d.ts.map +1 -0
- package/platform/types/util/package.d.ts +10 -0
- package/platform/types/util/package.d.ts.map +1 -0
- package/platform/types/util/semaphore.d.ts +9 -0
- package/platform/types/util/semaphore.d.ts.map +1 -0
- package/platform/types/util/warn.d.ts +2 -0
- package/platform/types/util/warn.d.ts.map +1 -0
|
@@ -0,0 +1,1347 @@
|
|
|
1
|
+
import { ComponentResourceOptions, type Output } from "@pulumi/pulumi";
|
|
2
|
+
import { V5Args } from "../../parts-component";
|
|
3
|
+
import { type DurationMinutes } from "../../duration";
|
|
4
|
+
import { DevCommand } from "../../experimental/dev-command";
|
|
5
|
+
import type { Input } from "../../input";
|
|
6
|
+
import { Alb as OriginalAlb } from "../alb";
|
|
7
|
+
import { DnsValidatedCertificate } from "../dns-validated-certificate";
|
|
8
|
+
import type { CustomDomainArgs } from "../helpers/custom-domain";
|
|
9
|
+
import { type ContainerArgs, type FargateArgs } from "../helpers/fargate";
|
|
10
|
+
import type { ServiceArgs as OriginalServiceArgs } from "../service";
|
|
11
|
+
import { Alb } from "./alb";
|
|
12
|
+
declare const parts: () => {
|
|
13
|
+
/**
|
|
14
|
+
* The Amazon ECS Execution Role.
|
|
15
|
+
*/
|
|
16
|
+
executionRole: typeof import("@pulumi/aws/iam/role").Role;
|
|
17
|
+
/**
|
|
18
|
+
* The Amazon ECS Task Role. In `sst dev` it's the role each container's
|
|
19
|
+
* command runs as on your machine.
|
|
20
|
+
*/
|
|
21
|
+
taskRole: typeof import("@pulumi/aws/iam/role").Role;
|
|
22
|
+
/**
|
|
23
|
+
* The images built for the service's containers, by the container's name. There's
|
|
24
|
+
* one for each container that's built from a Dockerfile. It's added once the
|
|
25
|
+
* container's image settings are known.
|
|
26
|
+
*/
|
|
27
|
+
image: import("../..").ManyPart<typeof import("@pulumi/docker-build/image").Image>;
|
|
28
|
+
/**
|
|
29
|
+
* The CloudWatch log groups of the service's containers, by the container's name.
|
|
30
|
+
*/
|
|
31
|
+
logGroup: import("../..").ManyPart<typeof import("@pulumi/aws/cloudwatch/logGroup").LogGroup>;
|
|
32
|
+
/**
|
|
33
|
+
* The Amazon ECS Task Definition.
|
|
34
|
+
*/
|
|
35
|
+
taskDefinition: typeof import("@pulumi/aws/ecs/taskDefinition").TaskDefinition;
|
|
36
|
+
/**
|
|
37
|
+
* The AWS Security Group of the load balancer. Only created when the service has a
|
|
38
|
+
* load balancer of its own.
|
|
39
|
+
*/
|
|
40
|
+
loadBalancerSecurityGroup: import("../..").OptionalPart<typeof import("@pulumi/aws/ec2/securityGroup").SecurityGroup>;
|
|
41
|
+
/**
|
|
42
|
+
* The AWS Load Balancer. Only created when `loadBalancer` is set, and not when the
|
|
43
|
+
* service is attached to an `Alb`.
|
|
44
|
+
*/
|
|
45
|
+
loadBalancer: import("../..").OptionalPart<typeof import("@pulumi/aws/lb/loadBalancer").LoadBalancer>;
|
|
46
|
+
/**
|
|
47
|
+
* The certificate for the load balancer's custom domain, created when
|
|
48
|
+
* `loadBalancer.domain` is set without a `cert`.
|
|
49
|
+
*/
|
|
50
|
+
certificate: import("../..").OptionalPart<typeof DnsValidatedCertificate>;
|
|
51
|
+
/**
|
|
52
|
+
* The AWS Load Balancer target groups, one for each container port traffic is
|
|
53
|
+
* forwarded to. Its id is the container's name, the protocol and the port:
|
|
54
|
+
* `MyServiceHTTP8080`.
|
|
55
|
+
*/
|
|
56
|
+
target: import("../..").ManyPart<typeof import("@pulumi/aws/lb/targetGroup").TargetGroup>;
|
|
57
|
+
/**
|
|
58
|
+
* The AWS Load Balancer listeners, one for each port the load balancer listens on.
|
|
59
|
+
* Its id is the protocol and the port: `HTTP80`.
|
|
60
|
+
*/
|
|
61
|
+
listener: import("../..").ManyPart<typeof import("@pulumi/aws/lb/listener").Listener>;
|
|
62
|
+
/**
|
|
63
|
+
* The AWS Load Balancer listener rules, one for each rule that has `conditions`.
|
|
64
|
+
*
|
|
65
|
+
* For a rule on an `Alb`, its id is the listener and the priority: `HTTPS443P100`.
|
|
66
|
+
* For a rule on the service's own load balancer, it's the listener and a hash of
|
|
67
|
+
* the conditions, so a function here is better off reading the rule's args.
|
|
68
|
+
*/
|
|
69
|
+
listenerRule: import("../..").ManyPart<typeof import("@pulumi/aws/lb/listenerRule").ListenerRule>;
|
|
70
|
+
/**
|
|
71
|
+
* The AWS Cloud Map service. Only created when the cluster's VPC has a Cloud Map
|
|
72
|
+
* namespace, which a VPC you pass in by its ids may not. So it's an output, and
|
|
73
|
+
* reading it fails when there is no namespace.
|
|
74
|
+
*/
|
|
75
|
+
cloudmapService: import("../..").DeferredPart<typeof import("@pulumi/aws/servicediscovery/service").Service>;
|
|
76
|
+
/**
|
|
77
|
+
* The Amazon ECS Service.
|
|
78
|
+
*/
|
|
79
|
+
service: typeof import("@pulumi/aws/ecs/service").Service;
|
|
80
|
+
/**
|
|
81
|
+
* The AWS Application Auto Scaling target.
|
|
82
|
+
*/
|
|
83
|
+
autoScalingTarget: typeof import("@pulumi/aws/appautoscaling/target").Target;
|
|
84
|
+
/**
|
|
85
|
+
* The AWS Application Auto Scaling policy that tracks CPU utilization. Not created
|
|
86
|
+
* when `scaling.cpuUtilization` is `false`.
|
|
87
|
+
*/
|
|
88
|
+
autoScalingCpuPolicy: import("../..").OptionalPart<typeof import("@pulumi/aws/appautoscaling/policy").Policy>;
|
|
89
|
+
/**
|
|
90
|
+
* The AWS Application Auto Scaling policy that tracks memory utilization. Not
|
|
91
|
+
* created when `scaling.memoryUtilization` is `false`.
|
|
92
|
+
*/
|
|
93
|
+
autoScalingMemoryPolicy: import("../..").OptionalPart<typeof import("@pulumi/aws/appautoscaling/policy").Policy>;
|
|
94
|
+
/**
|
|
95
|
+
* The AWS Application Auto Scaling policy that tracks the requests each target
|
|
96
|
+
* gets. Only created when `scaling.requestCount` is set.
|
|
97
|
+
*/
|
|
98
|
+
autoScalingRequestCountPolicy: import("../..").OptionalPart<typeof import("@pulumi/aws/appautoscaling/policy").Policy>;
|
|
99
|
+
/**
|
|
100
|
+
* What `sst dev` runs in place of each container, by the container's name. It's
|
|
101
|
+
* added once the container's `dev` settings are known.
|
|
102
|
+
*/
|
|
103
|
+
devCommand: import("../..").ManyPart<typeof DevCommand>;
|
|
104
|
+
};
|
|
105
|
+
type Port = `${number}/${"http" | "https" | "tcp" | "udp" | "tcp_udp" | "tls"}`;
|
|
106
|
+
type AlbPort = `${number}/${"http" | "https"}`;
|
|
107
|
+
export interface ServiceContainerArgs extends ContainerArgs {
|
|
108
|
+
/**
|
|
109
|
+
* Configure the health check for the container. Same as the top-level
|
|
110
|
+
* [`health`](#health).
|
|
111
|
+
*/
|
|
112
|
+
health?: OriginalServiceArgs["health"];
|
|
113
|
+
/**
|
|
114
|
+
* Configure how this container works in `sst dev`. Same as the top-level
|
|
115
|
+
* [`dev`](#dev).
|
|
116
|
+
*/
|
|
117
|
+
dev?: {
|
|
118
|
+
/**
|
|
119
|
+
* The command that `sst dev` runs to start this in dev mode. Same as the top-level
|
|
120
|
+
* [`dev.command`](#dev-command).
|
|
121
|
+
*/
|
|
122
|
+
command: Input<string>;
|
|
123
|
+
/**
|
|
124
|
+
* Configure if you want to automatically start this when `sst dev` starts. Same as the
|
|
125
|
+
* top-level [`dev.autostart`](#dev-autostart).
|
|
126
|
+
*/
|
|
127
|
+
autostart?: Input<boolean>;
|
|
128
|
+
/**
|
|
129
|
+
* Change the directory from where the `command` is run. Same as the top-level
|
|
130
|
+
* [`dev.directory`](#dev-directory).
|
|
131
|
+
*/
|
|
132
|
+
directory?: Input<string>;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export interface ServiceDomainArgs extends CustomDomainArgs {
|
|
136
|
+
/**
|
|
137
|
+
* The custom domain you want to use.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```js
|
|
141
|
+
* {
|
|
142
|
+
* domain: {
|
|
143
|
+
* name: "example.com"
|
|
144
|
+
* }
|
|
145
|
+
* }
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
148
|
+
* Can also include subdomains based on the current stage.
|
|
149
|
+
*
|
|
150
|
+
* ```js
|
|
151
|
+
* {
|
|
152
|
+
* domain: {
|
|
153
|
+
* name: `${$app.stage}.example.com`
|
|
154
|
+
* }
|
|
155
|
+
* }
|
|
156
|
+
* ```
|
|
157
|
+
*
|
|
158
|
+
* Wildcard domains are supported.
|
|
159
|
+
*
|
|
160
|
+
* ```js
|
|
161
|
+
* {
|
|
162
|
+
* domain: {
|
|
163
|
+
* name: "*.example.com"
|
|
164
|
+
* }
|
|
165
|
+
* }
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
name: Input<string>;
|
|
169
|
+
/**
|
|
170
|
+
* Alias domains that should be used. A plain list: each alias gets DNS records of
|
|
171
|
+
* its own.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```js {4}
|
|
175
|
+
* {
|
|
176
|
+
* domain: {
|
|
177
|
+
* name: "app1.example.com",
|
|
178
|
+
* aliases: ["app2.example.com"]
|
|
179
|
+
* }
|
|
180
|
+
* }
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
aliases?: string[];
|
|
184
|
+
}
|
|
185
|
+
export interface ServiceRuleArgs {
|
|
186
|
+
/**
|
|
187
|
+
* The port and protocol the service listens on. Uses the format `{port}/{protocol}`.
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```js
|
|
191
|
+
* {
|
|
192
|
+
* listen: "80/http"
|
|
193
|
+
* }
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
listen: Port;
|
|
197
|
+
/**
|
|
198
|
+
* The port and protocol of the container the service forwards the traffic to. Uses the
|
|
199
|
+
* format `{port}/{protocol}`.
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```js
|
|
203
|
+
* {
|
|
204
|
+
* forward: "80/http"
|
|
205
|
+
* }
|
|
206
|
+
* ```
|
|
207
|
+
* @default The same port and protocol as `listen`.
|
|
208
|
+
*/
|
|
209
|
+
forward?: Port;
|
|
210
|
+
/**
|
|
211
|
+
* The name of the container to forward the traffic to. This maps to the `name` defined in
|
|
212
|
+
* `containers`.
|
|
213
|
+
*
|
|
214
|
+
* You only need this if there's more than one container. If there's only one container, the
|
|
215
|
+
* traffic is automatically forwarded there.
|
|
216
|
+
*/
|
|
217
|
+
container?: string;
|
|
218
|
+
/**
|
|
219
|
+
* The port and protocol to redirect the traffic to. Uses the format `{port}/{protocol}`.
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```js
|
|
223
|
+
* {
|
|
224
|
+
* redirect: "80/http"
|
|
225
|
+
* }
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
228
|
+
redirect?: Port;
|
|
229
|
+
/**
|
|
230
|
+
* The conditions a request has to match for the rule to apply. Only applicable to
|
|
231
|
+
* `http` and `https` protocols.
|
|
232
|
+
*
|
|
233
|
+
* These are plain values all the way down. The listener rule is named after them.
|
|
234
|
+
*/
|
|
235
|
+
conditions?: {
|
|
236
|
+
/**
|
|
237
|
+
* Configure path-based routing. Only requests matching the path are forwarded to
|
|
238
|
+
* the container.
|
|
239
|
+
*
|
|
240
|
+
* ```js
|
|
241
|
+
* {
|
|
242
|
+
* path: "/api/*"
|
|
243
|
+
* }
|
|
244
|
+
* ```
|
|
245
|
+
*
|
|
246
|
+
* The path pattern is case-sensitive, supports wildcards, and can be up to 128
|
|
247
|
+
* characters.
|
|
248
|
+
* - `*` matches 0 or more characters. For example, `/api/*` matches `/api/` or
|
|
249
|
+
* `/api/orders`.
|
|
250
|
+
* - `?` matches exactly 1 character. For example, `/api/?.png` matches `/api/a.png`.
|
|
251
|
+
*
|
|
252
|
+
* @default Requests to all paths are forwarded.
|
|
253
|
+
*/
|
|
254
|
+
path?: string;
|
|
255
|
+
/**
|
|
256
|
+
* Configure query string based routing. Only requests matching one of the query
|
|
257
|
+
* string conditions are forwarded to the container.
|
|
258
|
+
*
|
|
259
|
+
* Takes a list of `key`, the name of the query string parameter, and `value` pairs.
|
|
260
|
+
* Where `value` is the value of the query string parameter. But it can be a pattern as well.
|
|
261
|
+
*
|
|
262
|
+
* If multiple `key` and `value` pairs are provided, it'll match requests with **any** of the
|
|
263
|
+
* query string parameters.
|
|
264
|
+
*
|
|
265
|
+
* @default Query string is not checked when forwarding requests.
|
|
266
|
+
*
|
|
267
|
+
* @example
|
|
268
|
+
*
|
|
269
|
+
* For example, to match requests with query string `version=v1`.
|
|
270
|
+
*
|
|
271
|
+
* ```js
|
|
272
|
+
* {
|
|
273
|
+
* query: [
|
|
274
|
+
* { key: "version", value: "v1" }
|
|
275
|
+
* ]
|
|
276
|
+
* }
|
|
277
|
+
* ```
|
|
278
|
+
*
|
|
279
|
+
* Or match requests with query string matching `env=test*`.
|
|
280
|
+
*
|
|
281
|
+
* ```js
|
|
282
|
+
* {
|
|
283
|
+
* query: [
|
|
284
|
+
* { key: "env", value: "test*" }
|
|
285
|
+
* ]
|
|
286
|
+
* }
|
|
287
|
+
* ```
|
|
288
|
+
*
|
|
289
|
+
* Match requests with query string `version=v1` **or** `env=test*`.
|
|
290
|
+
*
|
|
291
|
+
* ```js
|
|
292
|
+
* {
|
|
293
|
+
* query: [
|
|
294
|
+
* { key: "version", value: "v1" },
|
|
295
|
+
* { key: "env", value: "test*" }
|
|
296
|
+
* ]
|
|
297
|
+
* }
|
|
298
|
+
* ```
|
|
299
|
+
*
|
|
300
|
+
* Match requests with any query string key with value `example`.
|
|
301
|
+
*
|
|
302
|
+
* ```js
|
|
303
|
+
* {
|
|
304
|
+
* query: [
|
|
305
|
+
* { value: "example" }
|
|
306
|
+
* ]
|
|
307
|
+
* }
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
query?: {
|
|
311
|
+
/**
|
|
312
|
+
* The name of the query string parameter.
|
|
313
|
+
*/
|
|
314
|
+
key?: string;
|
|
315
|
+
/**
|
|
316
|
+
* The value of the query string parameter.
|
|
317
|
+
*
|
|
318
|
+
* If no `key` is provided, it'll match any request where a query string parameter with
|
|
319
|
+
* the given value exists.
|
|
320
|
+
*/
|
|
321
|
+
value: string;
|
|
322
|
+
}[];
|
|
323
|
+
/**
|
|
324
|
+
* Configure header based routing. Only requests matching the header
|
|
325
|
+
* name and values are forwarded to the container.
|
|
326
|
+
*
|
|
327
|
+
* Both the header name and values are case insensitive.
|
|
328
|
+
*
|
|
329
|
+
* @default Header is not checked when forwarding requests.
|
|
330
|
+
*
|
|
331
|
+
* @example
|
|
332
|
+
*
|
|
333
|
+
* For example, if you specify `X-Custom-Header` as the name and `Value1`
|
|
334
|
+
* as a value, it will match requests with the header
|
|
335
|
+
* `x-custom-header: value1` as well.
|
|
336
|
+
*
|
|
337
|
+
* ```js
|
|
338
|
+
* {
|
|
339
|
+
* header: {
|
|
340
|
+
* name: "X-Custom-Header",
|
|
341
|
+
* values: ["Value1", "Value2", "Prefix*"]
|
|
342
|
+
* }
|
|
343
|
+
* }
|
|
344
|
+
* ```
|
|
345
|
+
*/
|
|
346
|
+
header?: {
|
|
347
|
+
/**
|
|
348
|
+
* The name of the HTTP header field to check. This is case-insensitive.
|
|
349
|
+
*/
|
|
350
|
+
name: string;
|
|
351
|
+
/**
|
|
352
|
+
* The values to match against the header value. The rule matches if the
|
|
353
|
+
* request header matches any of these values. Values are case-insensitive
|
|
354
|
+
* and support wildcards (`*` and `?`) for pattern matching.
|
|
355
|
+
*/
|
|
356
|
+
values: string[];
|
|
357
|
+
};
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
export interface ServiceHealthCheckArgs {
|
|
361
|
+
/**
|
|
362
|
+
* The URL path to ping on the service for health checks. Only applicable to
|
|
363
|
+
* `http` and `https` protocols.
|
|
364
|
+
* @default `"/"`
|
|
365
|
+
*/
|
|
366
|
+
path?: Input<string>;
|
|
367
|
+
/**
|
|
368
|
+
* The time period between each health check request. Must be between `5 seconds`
|
|
369
|
+
* and `300 seconds`.
|
|
370
|
+
* @default `"30 seconds"`
|
|
371
|
+
*/
|
|
372
|
+
interval?: Input<DurationMinutes>;
|
|
373
|
+
/**
|
|
374
|
+
* The timeout for each health check request. If no response is received within this
|
|
375
|
+
* time, it is considered failed. Must be between `2 seconds` and `120 seconds`.
|
|
376
|
+
* @default `"5 seconds"`
|
|
377
|
+
*/
|
|
378
|
+
timeout?: Input<DurationMinutes>;
|
|
379
|
+
/**
|
|
380
|
+
* The number of consecutive successful health check requests required to consider the
|
|
381
|
+
* target healthy. Must be between 2 and 10.
|
|
382
|
+
* @default `5`
|
|
383
|
+
*/
|
|
384
|
+
healthyThreshold?: Input<number>;
|
|
385
|
+
/**
|
|
386
|
+
* The number of consecutive failed health check requests required to consider the
|
|
387
|
+
* target unhealthy. Must be between 2 and 10.
|
|
388
|
+
* @default `2`
|
|
389
|
+
*/
|
|
390
|
+
unhealthyThreshold?: Input<number>;
|
|
391
|
+
/**
|
|
392
|
+
* One or more HTTP response codes the health check treats as successful. Only
|
|
393
|
+
* applicable to `http` and `https` protocols.
|
|
394
|
+
*
|
|
395
|
+
* @default `"200"`
|
|
396
|
+
* @example
|
|
397
|
+
* ```js
|
|
398
|
+
* {
|
|
399
|
+
* successCodes: "200-299"
|
|
400
|
+
* }
|
|
401
|
+
* ```
|
|
402
|
+
*/
|
|
403
|
+
successCodes?: Input<string>;
|
|
404
|
+
}
|
|
405
|
+
export interface ServiceLoadBalancerArgs {
|
|
406
|
+
/**
|
|
407
|
+
* Configure if the load balancer should be public or private.
|
|
408
|
+
*
|
|
409
|
+
* When set to `false`, the load balancer endpoint will only be accessible within the
|
|
410
|
+
* VPC.
|
|
411
|
+
*
|
|
412
|
+
* @default `true`
|
|
413
|
+
*/
|
|
414
|
+
public?: Input<boolean>;
|
|
415
|
+
/**
|
|
416
|
+
* Set a custom domain for your load balancer endpoint.
|
|
417
|
+
*
|
|
418
|
+
* Automatically manages domains hosted on AWS Route 53, Cloudflare, and Vercel. For other
|
|
419
|
+
* providers, you'll need to pass in a `cert` that validates domain ownership and add the
|
|
420
|
+
* DNS records.
|
|
421
|
+
*
|
|
422
|
+
* :::tip
|
|
423
|
+
* Built-in support for AWS Route 53, Cloudflare, and Vercel. And manual setup for other
|
|
424
|
+
* providers.
|
|
425
|
+
* :::
|
|
426
|
+
*
|
|
427
|
+
* @example
|
|
428
|
+
*
|
|
429
|
+
* By default this assumes the domain is hosted on Route 53.
|
|
430
|
+
*
|
|
431
|
+
* ```js
|
|
432
|
+
* {
|
|
433
|
+
* domain: "example.com"
|
|
434
|
+
* }
|
|
435
|
+
* ```
|
|
436
|
+
*
|
|
437
|
+
* For domains hosted on Cloudflare.
|
|
438
|
+
*
|
|
439
|
+
* ```js
|
|
440
|
+
* {
|
|
441
|
+
* domain: {
|
|
442
|
+
* name: "example.com",
|
|
443
|
+
* dns: sst.cloudflare.dns()
|
|
444
|
+
* }
|
|
445
|
+
* }
|
|
446
|
+
* ```
|
|
447
|
+
*/
|
|
448
|
+
domain?: string | ServiceDomainArgs;
|
|
449
|
+
/**
|
|
450
|
+
* Configure the mapping for the ports the load balancer listens to, forwards, or redirects to
|
|
451
|
+
* the service.
|
|
452
|
+
* This supports two types of protocols:
|
|
453
|
+
*
|
|
454
|
+
* 1. Application Layer Protocols: `http` and `https`. This'll create an [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html).
|
|
455
|
+
* 2. Network Layer Protocols: `tcp`, `udp`, `tcp_udp`, and `tls`. This'll create a [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html).
|
|
456
|
+
*
|
|
457
|
+
* :::note
|
|
458
|
+
* If you want to listen on `https` or `tls`, you need to specify a custom
|
|
459
|
+
* `loadBalancer.domain`.
|
|
460
|
+
* :::
|
|
461
|
+
*
|
|
462
|
+
* You **can not configure** both application and network layer protocols for the same
|
|
463
|
+
* service.
|
|
464
|
+
*
|
|
465
|
+
* The list and each rule are plain values. They decide which listeners, target groups
|
|
466
|
+
* and listener rules are created.
|
|
467
|
+
*
|
|
468
|
+
* @example
|
|
469
|
+
* Here we are listening on port `80` and forwarding it to the service on port `8080`.
|
|
470
|
+
* ```js
|
|
471
|
+
* {
|
|
472
|
+
* rules: [
|
|
473
|
+
* { listen: "80/http", forward: "8080/http" }
|
|
474
|
+
* ]
|
|
475
|
+
* }
|
|
476
|
+
* ```
|
|
477
|
+
*
|
|
478
|
+
* The `forward` port and protocol defaults to the `listen` port and protocol. So in this
|
|
479
|
+
* case both are `80/http`.
|
|
480
|
+
*
|
|
481
|
+
* ```js
|
|
482
|
+
* {
|
|
483
|
+
* rules: [
|
|
484
|
+
* { listen: "80/http" }
|
|
485
|
+
* ]
|
|
486
|
+
* }
|
|
487
|
+
* ```
|
|
488
|
+
*
|
|
489
|
+
* If multiple containers are configured via the `containers` argument, you need to
|
|
490
|
+
* specify which container the traffic should be forwarded to.
|
|
491
|
+
*
|
|
492
|
+
* ```js
|
|
493
|
+
* {
|
|
494
|
+
* rules: [
|
|
495
|
+
* { listen: "80/http", container: "app" },
|
|
496
|
+
* { listen: "8000/http", container: "admin" }
|
|
497
|
+
* ]
|
|
498
|
+
* }
|
|
499
|
+
* ```
|
|
500
|
+
*
|
|
501
|
+
* You can also route the same port to multiple containers via path-based routing.
|
|
502
|
+
*
|
|
503
|
+
* ```js
|
|
504
|
+
* {
|
|
505
|
+
* rules: [
|
|
506
|
+
* {
|
|
507
|
+
* listen: "80/http",
|
|
508
|
+
* container: "app",
|
|
509
|
+
* conditions: { path: "/api/*" }
|
|
510
|
+
* },
|
|
511
|
+
* {
|
|
512
|
+
* listen: "80/http",
|
|
513
|
+
* container: "admin",
|
|
514
|
+
* conditions: { path: "/admin/*" }
|
|
515
|
+
* }
|
|
516
|
+
* ]
|
|
517
|
+
* }
|
|
518
|
+
* ```
|
|
519
|
+
*
|
|
520
|
+
* Additionally, you can redirect traffic from one port to another. This is
|
|
521
|
+
* commonly used to redirect http to https.
|
|
522
|
+
*
|
|
523
|
+
* ```js
|
|
524
|
+
* {
|
|
525
|
+
* rules: [
|
|
526
|
+
* { listen: "80/http", redirect: "443/https" },
|
|
527
|
+
* { listen: "443/https", forward: "80/http" }
|
|
528
|
+
* ]
|
|
529
|
+
* }
|
|
530
|
+
* ```
|
|
531
|
+
*/
|
|
532
|
+
rules: ServiceRuleArgs[];
|
|
533
|
+
/**
|
|
534
|
+
* Configure the health check that the load balancer runs on your containers.
|
|
535
|
+
*
|
|
536
|
+
* :::tip
|
|
537
|
+
* This health check is different from the [`health`](#health) check.
|
|
538
|
+
* :::
|
|
539
|
+
*
|
|
540
|
+
* This health check is run by the load balancer. While, `health` is run by ECS. This
|
|
541
|
+
* cannot be disabled if you are using a load balancer. While the other is off by default.
|
|
542
|
+
*
|
|
543
|
+
* Since this cannot be disabled, here are some tips on how to debug an unhealthy
|
|
544
|
+
* health check.
|
|
545
|
+
*
|
|
546
|
+
* <details>
|
|
547
|
+
* <summary>How to debug a load balancer health check</summary>
|
|
548
|
+
*
|
|
549
|
+
* If you notice a `Unhealthy: Health checks failed` error, it's because the health
|
|
550
|
+
* check has failed. When it fails, the load balancer will terminate the containers,
|
|
551
|
+
* causing any requests to fail.
|
|
552
|
+
*
|
|
553
|
+
* Here's how to debug it:
|
|
554
|
+
*
|
|
555
|
+
* 1. Verify the health check path.
|
|
556
|
+
*
|
|
557
|
+
* By default, the load balancer checks the `/` path. Ensure it's accessible in your
|
|
558
|
+
* containers. If your application runs on a different path, then update the path in
|
|
559
|
+
* the health check config accordingly.
|
|
560
|
+
*
|
|
561
|
+
* 2. Confirm the containers are operational.
|
|
562
|
+
*
|
|
563
|
+
* Navigate to **ECS console** > select the **cluster** > go to the **Tasks tab** >
|
|
564
|
+
* choose **Any desired status** under the **Filter desired status** dropdown > select
|
|
565
|
+
* a task and check for errors under the **Logs tab**. If it has error that means that
|
|
566
|
+
* the container failed to start.
|
|
567
|
+
*
|
|
568
|
+
* 3. If the container was terminated by the load balancer while still starting up, try
|
|
569
|
+
* increasing the health check interval and timeout.
|
|
570
|
+
* </details>
|
|
571
|
+
*
|
|
572
|
+
* For `http` and `https` the default is:
|
|
573
|
+
*
|
|
574
|
+
* ```js
|
|
575
|
+
* {
|
|
576
|
+
* path: "/",
|
|
577
|
+
* healthyThreshold: 5,
|
|
578
|
+
* successCodes: "200",
|
|
579
|
+
* timeout: "5 seconds",
|
|
580
|
+
* unhealthyThreshold: 2,
|
|
581
|
+
* interval: "30 seconds"
|
|
582
|
+
* }
|
|
583
|
+
* ```
|
|
584
|
+
*
|
|
585
|
+
* For `tcp` and `udp` the default is:
|
|
586
|
+
*
|
|
587
|
+
* ```js
|
|
588
|
+
* {
|
|
589
|
+
* healthyThreshold: 5,
|
|
590
|
+
* timeout: "6 seconds",
|
|
591
|
+
* unhealthyThreshold: 2,
|
|
592
|
+
* interval: "30 seconds"
|
|
593
|
+
* }
|
|
594
|
+
* ```
|
|
595
|
+
*
|
|
596
|
+
* @example
|
|
597
|
+
*
|
|
598
|
+
* To configure the health check, we use the _port/protocol_ format. Here we are
|
|
599
|
+
* configuring a health check that pings the `/health` path on port `8080`
|
|
600
|
+
* every 10 seconds.
|
|
601
|
+
*
|
|
602
|
+
* ```js
|
|
603
|
+
* {
|
|
604
|
+
* rules: [
|
|
605
|
+
* { listen: "80/http", forward: "8080/http" }
|
|
606
|
+
* ],
|
|
607
|
+
* health: {
|
|
608
|
+
* "8080/http": {
|
|
609
|
+
* path: "/health",
|
|
610
|
+
* interval: "10 seconds"
|
|
611
|
+
* }
|
|
612
|
+
* }
|
|
613
|
+
* }
|
|
614
|
+
* ```
|
|
615
|
+
*/
|
|
616
|
+
health?: Record<Port, Input<ServiceHealthCheckArgs>>;
|
|
617
|
+
}
|
|
618
|
+
export interface ServiceAlbRuleArgs {
|
|
619
|
+
/**
|
|
620
|
+
* The port and protocol to listen on, in `{port}/{protocol}` format. Must match a listener on the ALB.
|
|
621
|
+
*
|
|
622
|
+
* @example
|
|
623
|
+
* ```js
|
|
624
|
+
* {
|
|
625
|
+
* listen: "443/https"
|
|
626
|
+
* }
|
|
627
|
+
* ```
|
|
628
|
+
*/
|
|
629
|
+
listen: AlbPort;
|
|
630
|
+
/**
|
|
631
|
+
* The container port and protocol to forward traffic to. Uses the format `{port}/{protocol}`.
|
|
632
|
+
*
|
|
633
|
+
* The protocol must match what the container actually speaks. Using `"3000/https"` when
|
|
634
|
+
* the container speaks HTTP will cause health check failures.
|
|
635
|
+
*
|
|
636
|
+
* @example
|
|
637
|
+
* ```js
|
|
638
|
+
* {
|
|
639
|
+
* forward: "8080/http"
|
|
640
|
+
* }
|
|
641
|
+
* ```
|
|
642
|
+
*/
|
|
643
|
+
forward: AlbPort;
|
|
644
|
+
/**
|
|
645
|
+
* The name of the container to forward the traffic to. Required when multiple containers
|
|
646
|
+
* are configured.
|
|
647
|
+
*/
|
|
648
|
+
container?: string;
|
|
649
|
+
/**
|
|
650
|
+
* The conditions for the listener rule. At least one condition (path, query, or header)
|
|
651
|
+
* must be specified. The ALB owns the default action, and a service only adds conditional
|
|
652
|
+
* rules.
|
|
653
|
+
*
|
|
654
|
+
* @example
|
|
655
|
+
* ```js
|
|
656
|
+
* {
|
|
657
|
+
* conditions: {
|
|
658
|
+
* path: "/api/*"
|
|
659
|
+
* }
|
|
660
|
+
* }
|
|
661
|
+
* ```
|
|
662
|
+
*/
|
|
663
|
+
conditions: {
|
|
664
|
+
/**
|
|
665
|
+
* Path pattern to match. Supports wildcards (`*` and `?`).
|
|
666
|
+
*/
|
|
667
|
+
path?: Input<string>;
|
|
668
|
+
/**
|
|
669
|
+
* Query string conditions.
|
|
670
|
+
*/
|
|
671
|
+
query?: Input<Input<{
|
|
672
|
+
key?: Input<string>;
|
|
673
|
+
value: Input<string>;
|
|
674
|
+
}>[]>;
|
|
675
|
+
/**
|
|
676
|
+
* HTTP header condition.
|
|
677
|
+
*/
|
|
678
|
+
header?: Input<{
|
|
679
|
+
name: Input<string>;
|
|
680
|
+
values: Input<Input<string>>[];
|
|
681
|
+
}>;
|
|
682
|
+
};
|
|
683
|
+
/**
|
|
684
|
+
* Explicit priority for the listener rule (1–50000).
|
|
685
|
+
* Must be unique per listener across ALL services sharing the ALB.
|
|
686
|
+
* Use non-overlapping ranges per service (e.g., Service A: 100-199, Service B: 200-299).
|
|
687
|
+
*
|
|
688
|
+
* @example
|
|
689
|
+
* ```js
|
|
690
|
+
* {
|
|
691
|
+
* priority: 100
|
|
692
|
+
* }
|
|
693
|
+
* ```
|
|
694
|
+
*/
|
|
695
|
+
priority: number;
|
|
696
|
+
}
|
|
697
|
+
export interface ServiceAlbArgs {
|
|
698
|
+
/**
|
|
699
|
+
* The `Alb` instance to attach this service to. When provided, the service creates
|
|
700
|
+
* target groups and listener rules on the shared ALB instead of creating its own
|
|
701
|
+
* load balancer.
|
|
702
|
+
*
|
|
703
|
+
* ECS tasks use the VPC's default security group, which allows all traffic within the
|
|
704
|
+
* VPC CIDR. For tighter security, add an explicit security group ingress rule from the
|
|
705
|
+
* ALB's security group using `transform`.
|
|
706
|
+
*
|
|
707
|
+
* @example
|
|
708
|
+
* ```js
|
|
709
|
+
* {
|
|
710
|
+
* loadBalancer: {
|
|
711
|
+
* instance: alb,
|
|
712
|
+
* rules: [
|
|
713
|
+
* { listen: "443/https", forward: "8080/http", conditions: { path: "/api/*" }, priority: 100 }
|
|
714
|
+
* ]
|
|
715
|
+
* }
|
|
716
|
+
* }
|
|
717
|
+
* ```
|
|
718
|
+
*/
|
|
719
|
+
instance: OriginalAlb | Alb;
|
|
720
|
+
/**
|
|
721
|
+
* The rules for routing traffic from the ALB to this service's containers.
|
|
722
|
+
* Each rule must have explicit conditions and priority.
|
|
723
|
+
*/
|
|
724
|
+
rules: ServiceAlbRuleArgs[];
|
|
725
|
+
/**
|
|
726
|
+
* Configure health checks for the target groups, keyed by the `{port}/{protocol}` the
|
|
727
|
+
* traffic is forwarded to.
|
|
728
|
+
*/
|
|
729
|
+
health?: Record<AlbPort, Input<ServiceHealthCheckArgs>>;
|
|
730
|
+
}
|
|
731
|
+
export interface ServiceArgs extends V5Args<Omit<OriginalServiceArgs, "cluster" | "containers" | "volumes" | "taskRole" | "executionRole" | "public" | "loadBalancer" | "scaling">, typeof parts>, FargateArgs {
|
|
732
|
+
/**
|
|
733
|
+
* Configure a load balancer to route traffic to the containers.
|
|
734
|
+
*
|
|
735
|
+
* While you can expose a service through API Gateway, it's better to use a load balancer
|
|
736
|
+
* for most traditional web applications. It is more expensive to start but at higher
|
|
737
|
+
* levels of traffic it ends up being more cost effective.
|
|
738
|
+
*
|
|
739
|
+
* Also, if you need to listen on network layer protocols like `tcp` or `udp`, you have to
|
|
740
|
+
* expose it through a load balancer.
|
|
741
|
+
*
|
|
742
|
+
* By default, the endpoint is an auto-generated load balancer URL. You can also add a
|
|
743
|
+
* custom domain for the endpoint.
|
|
744
|
+
*
|
|
745
|
+
* This has to be a plain value, and so do its `domain` and `rules`. They decide which
|
|
746
|
+
* resources are created.
|
|
747
|
+
*
|
|
748
|
+
* @default Load balancer is not created
|
|
749
|
+
* @example
|
|
750
|
+
*
|
|
751
|
+
* ```js
|
|
752
|
+
* {
|
|
753
|
+
* loadBalancer: {
|
|
754
|
+
* domain: "example.com",
|
|
755
|
+
* rules: [
|
|
756
|
+
* { listen: "80/http", redirect: "443/https" },
|
|
757
|
+
* { listen: "443/https", forward: "80/http" }
|
|
758
|
+
* ]
|
|
759
|
+
* }
|
|
760
|
+
* }
|
|
761
|
+
* ```
|
|
762
|
+
*
|
|
763
|
+
* To share a load balancer between services, pass in an `Alb`. The service then adds
|
|
764
|
+
* its target groups and listener rules to it.
|
|
765
|
+
*
|
|
766
|
+
* ```js
|
|
767
|
+
* {
|
|
768
|
+
* loadBalancer: {
|
|
769
|
+
* instance: alb,
|
|
770
|
+
* rules: [
|
|
771
|
+
* { listen: "443/https", forward: "8080/http", conditions: { path: "/api/*" }, priority: 100 }
|
|
772
|
+
* ]
|
|
773
|
+
* }
|
|
774
|
+
* }
|
|
775
|
+
* ```
|
|
776
|
+
*/
|
|
777
|
+
loadBalancer?: ServiceLoadBalancerArgs | ServiceAlbArgs;
|
|
778
|
+
/**
|
|
779
|
+
* Configure the service to automatically scale up or down based on the CPU or memory
|
|
780
|
+
* utilization of a container. By default, scaling is disabled and the service will run
|
|
781
|
+
* in a single container.
|
|
782
|
+
*
|
|
783
|
+
* This has to be a plain value, and so do `cpuUtilization`, `memoryUtilization` and
|
|
784
|
+
* `requestCount`. They decide which scaling policies are created.
|
|
785
|
+
*
|
|
786
|
+
* @default `{ min: 1, max: 1 }`
|
|
787
|
+
*
|
|
788
|
+
* @example
|
|
789
|
+
* ```js
|
|
790
|
+
* {
|
|
791
|
+
* scaling: {
|
|
792
|
+
* min: 4,
|
|
793
|
+
* max: 16,
|
|
794
|
+
* cpuUtilization: 50,
|
|
795
|
+
* memoryUtilization: 50
|
|
796
|
+
* }
|
|
797
|
+
* }
|
|
798
|
+
* ```
|
|
799
|
+
*/
|
|
800
|
+
scaling?: {
|
|
801
|
+
/**
|
|
802
|
+
* The minimum number of containers to scale down to.
|
|
803
|
+
* @default `1`
|
|
804
|
+
* @example
|
|
805
|
+
* ```js
|
|
806
|
+
* {
|
|
807
|
+
* scaling: {
|
|
808
|
+
* min: 4
|
|
809
|
+
* }
|
|
810
|
+
* }
|
|
811
|
+
* ```
|
|
812
|
+
*/
|
|
813
|
+
min?: Input<number>;
|
|
814
|
+
/**
|
|
815
|
+
* The maximum number of containers to scale up to.
|
|
816
|
+
* @default `1`
|
|
817
|
+
* @example
|
|
818
|
+
* ```js
|
|
819
|
+
* {
|
|
820
|
+
* scaling: {
|
|
821
|
+
* max: 16
|
|
822
|
+
* }
|
|
823
|
+
* }
|
|
824
|
+
* ```
|
|
825
|
+
*/
|
|
826
|
+
max?: Input<number>;
|
|
827
|
+
/**
|
|
828
|
+
* The target CPU utilization percentage to scale up or down. It'll scale up
|
|
829
|
+
* when the CPU utilization is above the target and scale down when it's below the target.
|
|
830
|
+
* @default `70`
|
|
831
|
+
* @example
|
|
832
|
+
* ```js
|
|
833
|
+
* {
|
|
834
|
+
* scaling: {
|
|
835
|
+
* cpuUtilization: 50
|
|
836
|
+
* }
|
|
837
|
+
* }
|
|
838
|
+
* ```
|
|
839
|
+
*/
|
|
840
|
+
cpuUtilization?: false | number;
|
|
841
|
+
/**
|
|
842
|
+
* The target memory utilization percentage to scale up or down. It'll scale up
|
|
843
|
+
* when the memory utilization is above the target and scale down when it's below the target.
|
|
844
|
+
* @default `70`
|
|
845
|
+
* @example
|
|
846
|
+
* ```js
|
|
847
|
+
* {
|
|
848
|
+
* scaling: {
|
|
849
|
+
* memoryUtilization: 50
|
|
850
|
+
* }
|
|
851
|
+
* }
|
|
852
|
+
* ```
|
|
853
|
+
*/
|
|
854
|
+
memoryUtilization?: false | number;
|
|
855
|
+
/**
|
|
856
|
+
* The target request count to scale up or down. It'll scale up when the request count is
|
|
857
|
+
* above the target and scale down when it's below the target.
|
|
858
|
+
* @default `false`
|
|
859
|
+
* @example
|
|
860
|
+
* ```js
|
|
861
|
+
* {
|
|
862
|
+
* scaling: {
|
|
863
|
+
* requestCount: 1500
|
|
864
|
+
* }
|
|
865
|
+
* }
|
|
866
|
+
* ```
|
|
867
|
+
*/
|
|
868
|
+
requestCount?: false | number;
|
|
869
|
+
/**
|
|
870
|
+
* The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.
|
|
871
|
+
* This prevents the auto scaler from removing too many tasks too quickly.
|
|
872
|
+
* @example
|
|
873
|
+
* ```js
|
|
874
|
+
* {
|
|
875
|
+
* scaling: {
|
|
876
|
+
* scaleInCooldown: "60 seconds"
|
|
877
|
+
* }
|
|
878
|
+
* }
|
|
879
|
+
* ```
|
|
880
|
+
*/
|
|
881
|
+
scaleInCooldown?: Input<DurationMinutes>;
|
|
882
|
+
/**
|
|
883
|
+
* The amount of time, in seconds, after a scale-out activity completes before another scale-out activity can start.
|
|
884
|
+
* This prevents the auto scaler from adding too many tasks too quickly.
|
|
885
|
+
* @example
|
|
886
|
+
* ```js
|
|
887
|
+
* {
|
|
888
|
+
* scaling: {
|
|
889
|
+
* scaleOutCooldown: "60 seconds"
|
|
890
|
+
* }
|
|
891
|
+
* }
|
|
892
|
+
* ```
|
|
893
|
+
*/
|
|
894
|
+
scaleOutCooldown?: Input<DurationMinutes>;
|
|
895
|
+
};
|
|
896
|
+
/**
|
|
897
|
+
* The containers to run in the service.
|
|
898
|
+
*
|
|
899
|
+
* :::tip
|
|
900
|
+
* You can optionally run multiple containers in a service.
|
|
901
|
+
* :::
|
|
902
|
+
*
|
|
903
|
+
* By default this starts a single container. To add multiple containers in the service, pass
|
|
904
|
+
* in an array of containers args.
|
|
905
|
+
*
|
|
906
|
+
* ```ts
|
|
907
|
+
* {
|
|
908
|
+
* containers: [
|
|
909
|
+
* {
|
|
910
|
+
* name: "app",
|
|
911
|
+
* image: "nginxdemos/hello:plain-text"
|
|
912
|
+
* },
|
|
913
|
+
* {
|
|
914
|
+
* name: "admin",
|
|
915
|
+
* image: {
|
|
916
|
+
* context: "./admin",
|
|
917
|
+
* dockerfile: "Dockerfile"
|
|
918
|
+
* }
|
|
919
|
+
* }
|
|
920
|
+
* ]
|
|
921
|
+
* }
|
|
922
|
+
* ```
|
|
923
|
+
*
|
|
924
|
+
* If you specify `containers`, you cannot list the above args at the top-level. For example,
|
|
925
|
+
* you **cannot** pass in `image` at the top level.
|
|
926
|
+
*
|
|
927
|
+
* ```diff lang="ts"
|
|
928
|
+
* {
|
|
929
|
+
* - image: "nginxdemos/hello:plain-text",
|
|
930
|
+
* containers: [
|
|
931
|
+
* {
|
|
932
|
+
* name: "app",
|
|
933
|
+
* image: "nginxdemos/hello:plain-text"
|
|
934
|
+
* },
|
|
935
|
+
* {
|
|
936
|
+
* name: "admin",
|
|
937
|
+
* image: "nginxdemos/hello:plain-text"
|
|
938
|
+
* }
|
|
939
|
+
* ]
|
|
940
|
+
* }
|
|
941
|
+
* ```
|
|
942
|
+
*
|
|
943
|
+
* You will need to pass in `image` as a part of the `containers`.
|
|
944
|
+
*
|
|
945
|
+
* The list, each container and its `name` have to be plain values. What's inside a
|
|
946
|
+
* container can be an output.
|
|
947
|
+
*/
|
|
948
|
+
containers?: ServiceContainerArgs[];
|
|
949
|
+
}
|
|
950
|
+
declare const Service_base: import("../..").ComponentClass<{
|
|
951
|
+
/**
|
|
952
|
+
* The Amazon ECS Execution Role.
|
|
953
|
+
*/
|
|
954
|
+
executionRole: typeof import("@pulumi/aws/iam/role").Role;
|
|
955
|
+
/**
|
|
956
|
+
* The Amazon ECS Task Role. In `sst dev` it's the role each container's
|
|
957
|
+
* command runs as on your machine.
|
|
958
|
+
*/
|
|
959
|
+
taskRole: typeof import("@pulumi/aws/iam/role").Role;
|
|
960
|
+
/**
|
|
961
|
+
* The images built for the service's containers, by the container's name. There's
|
|
962
|
+
* one for each container that's built from a Dockerfile. It's added once the
|
|
963
|
+
* container's image settings are known.
|
|
964
|
+
*/
|
|
965
|
+
image: import("../..").ManyPart<typeof import("@pulumi/docker-build/image").Image>;
|
|
966
|
+
/**
|
|
967
|
+
* The CloudWatch log groups of the service's containers, by the container's name.
|
|
968
|
+
*/
|
|
969
|
+
logGroup: import("../..").ManyPart<typeof import("@pulumi/aws/cloudwatch/logGroup").LogGroup>;
|
|
970
|
+
/**
|
|
971
|
+
* The Amazon ECS Task Definition.
|
|
972
|
+
*/
|
|
973
|
+
taskDefinition: typeof import("@pulumi/aws/ecs/taskDefinition").TaskDefinition;
|
|
974
|
+
/**
|
|
975
|
+
* The AWS Security Group of the load balancer. Only created when the service has a
|
|
976
|
+
* load balancer of its own.
|
|
977
|
+
*/
|
|
978
|
+
loadBalancerSecurityGroup: import("../..").OptionalPart<typeof import("@pulumi/aws/ec2/securityGroup").SecurityGroup>;
|
|
979
|
+
/**
|
|
980
|
+
* The AWS Load Balancer. Only created when `loadBalancer` is set, and not when the
|
|
981
|
+
* service is attached to an `Alb`.
|
|
982
|
+
*/
|
|
983
|
+
loadBalancer: import("../..").OptionalPart<typeof import("@pulumi/aws/lb/loadBalancer").LoadBalancer>;
|
|
984
|
+
/**
|
|
985
|
+
* The certificate for the load balancer's custom domain, created when
|
|
986
|
+
* `loadBalancer.domain` is set without a `cert`.
|
|
987
|
+
*/
|
|
988
|
+
certificate: import("../..").OptionalPart<typeof DnsValidatedCertificate>;
|
|
989
|
+
/**
|
|
990
|
+
* The AWS Load Balancer target groups, one for each container port traffic is
|
|
991
|
+
* forwarded to. Its id is the container's name, the protocol and the port:
|
|
992
|
+
* `MyServiceHTTP8080`.
|
|
993
|
+
*/
|
|
994
|
+
target: import("../..").ManyPart<typeof import("@pulumi/aws/lb/targetGroup").TargetGroup>;
|
|
995
|
+
/**
|
|
996
|
+
* The AWS Load Balancer listeners, one for each port the load balancer listens on.
|
|
997
|
+
* Its id is the protocol and the port: `HTTP80`.
|
|
998
|
+
*/
|
|
999
|
+
listener: import("../..").ManyPart<typeof import("@pulumi/aws/lb/listener").Listener>;
|
|
1000
|
+
/**
|
|
1001
|
+
* The AWS Load Balancer listener rules, one for each rule that has `conditions`.
|
|
1002
|
+
*
|
|
1003
|
+
* For a rule on an `Alb`, its id is the listener and the priority: `HTTPS443P100`.
|
|
1004
|
+
* For a rule on the service's own load balancer, it's the listener and a hash of
|
|
1005
|
+
* the conditions, so a function here is better off reading the rule's args.
|
|
1006
|
+
*/
|
|
1007
|
+
listenerRule: import("../..").ManyPart<typeof import("@pulumi/aws/lb/listenerRule").ListenerRule>;
|
|
1008
|
+
/**
|
|
1009
|
+
* The AWS Cloud Map service. Only created when the cluster's VPC has a Cloud Map
|
|
1010
|
+
* namespace, which a VPC you pass in by its ids may not. So it's an output, and
|
|
1011
|
+
* reading it fails when there is no namespace.
|
|
1012
|
+
*/
|
|
1013
|
+
cloudmapService: import("../..").DeferredPart<typeof import("@pulumi/aws/servicediscovery/service").Service>;
|
|
1014
|
+
/**
|
|
1015
|
+
* The Amazon ECS Service.
|
|
1016
|
+
*/
|
|
1017
|
+
service: typeof import("@pulumi/aws/ecs/service").Service;
|
|
1018
|
+
/**
|
|
1019
|
+
* The AWS Application Auto Scaling target.
|
|
1020
|
+
*/
|
|
1021
|
+
autoScalingTarget: typeof import("@pulumi/aws/appautoscaling/target").Target;
|
|
1022
|
+
/**
|
|
1023
|
+
* The AWS Application Auto Scaling policy that tracks CPU utilization. Not created
|
|
1024
|
+
* when `scaling.cpuUtilization` is `false`.
|
|
1025
|
+
*/
|
|
1026
|
+
autoScalingCpuPolicy: import("../..").OptionalPart<typeof import("@pulumi/aws/appautoscaling/policy").Policy>;
|
|
1027
|
+
/**
|
|
1028
|
+
* The AWS Application Auto Scaling policy that tracks memory utilization. Not
|
|
1029
|
+
* created when `scaling.memoryUtilization` is `false`.
|
|
1030
|
+
*/
|
|
1031
|
+
autoScalingMemoryPolicy: import("../..").OptionalPart<typeof import("@pulumi/aws/appautoscaling/policy").Policy>;
|
|
1032
|
+
/**
|
|
1033
|
+
* The AWS Application Auto Scaling policy that tracks the requests each target
|
|
1034
|
+
* gets. Only created when `scaling.requestCount` is set.
|
|
1035
|
+
*/
|
|
1036
|
+
autoScalingRequestCountPolicy: import("../..").OptionalPart<typeof import("@pulumi/aws/appautoscaling/policy").Policy>;
|
|
1037
|
+
/**
|
|
1038
|
+
* What `sst dev` runs in place of each container, by the container's name. It's
|
|
1039
|
+
* added once the container's `dev` settings are known.
|
|
1040
|
+
*/
|
|
1041
|
+
devCommand: import("../..").ManyPart<typeof DevCommand>;
|
|
1042
|
+
}>;
|
|
1043
|
+
/**
|
|
1044
|
+
* The `Service` component lets you create containers that are always running, like web or
|
|
1045
|
+
* application servers. It uses [Amazon ECS](https://aws.amazon.com/ecs/) on [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html).
|
|
1046
|
+
*
|
|
1047
|
+
* It takes the same args as [`sst.aws.Service`](/docs/component/aws/service) and creates the
|
|
1048
|
+
* same resources. It's built from parts, so every resource it creates can be transformed,
|
|
1049
|
+
* is available in `nodes`, and can be swapped for one you already have.
|
|
1050
|
+
*
|
|
1051
|
+
* @example
|
|
1052
|
+
*
|
|
1053
|
+
* #### Create a Service
|
|
1054
|
+
*
|
|
1055
|
+
* Services are run inside an ECS Cluster. If you haven't already, create one.
|
|
1056
|
+
*
|
|
1057
|
+
* ```ts title="sst.config.ts"
|
|
1058
|
+
* const vpc = new sst.aws.Vpc("MyVpc");
|
|
1059
|
+
* const cluster = new sst.aws.v5.Cluster("MyCluster", { vpc });
|
|
1060
|
+
* ```
|
|
1061
|
+
*
|
|
1062
|
+
* Add the service to it.
|
|
1063
|
+
*
|
|
1064
|
+
* ```ts title="sst.config.ts"
|
|
1065
|
+
* const service = new sst.aws.v5.Service("MyService", { cluster });
|
|
1066
|
+
* ```
|
|
1067
|
+
*
|
|
1068
|
+
* #### Configure the container image
|
|
1069
|
+
*
|
|
1070
|
+
* By default, the service will look for a Dockerfile in the root directory. Optionally
|
|
1071
|
+
* configure the image context and dockerfile.
|
|
1072
|
+
*
|
|
1073
|
+
* ```ts title="sst.config.ts"
|
|
1074
|
+
* new sst.aws.v5.Service("MyService", {
|
|
1075
|
+
* cluster,
|
|
1076
|
+
* image: {
|
|
1077
|
+
* context: "./app",
|
|
1078
|
+
* dockerfile: "Dockerfile"
|
|
1079
|
+
* }
|
|
1080
|
+
* });
|
|
1081
|
+
* ```
|
|
1082
|
+
*
|
|
1083
|
+
* To add multiple containers in the service, pass in an array of containers args.
|
|
1084
|
+
*
|
|
1085
|
+
* ```ts title="sst.config.ts"
|
|
1086
|
+
* new sst.aws.v5.Service("MyService", {
|
|
1087
|
+
* cluster,
|
|
1088
|
+
* containers: [
|
|
1089
|
+
* {
|
|
1090
|
+
* name: "app",
|
|
1091
|
+
* image: "nginxdemos/hello:plain-text"
|
|
1092
|
+
* },
|
|
1093
|
+
* {
|
|
1094
|
+
* name: "admin",
|
|
1095
|
+
* image: {
|
|
1096
|
+
* context: "./admin",
|
|
1097
|
+
* dockerfile: "Dockerfile"
|
|
1098
|
+
* }
|
|
1099
|
+
* }
|
|
1100
|
+
* ]
|
|
1101
|
+
* });
|
|
1102
|
+
* ```
|
|
1103
|
+
*
|
|
1104
|
+
* This is useful for running sidecar containers.
|
|
1105
|
+
*
|
|
1106
|
+
* #### Enable auto-scaling
|
|
1107
|
+
*
|
|
1108
|
+
* ```ts title="sst.config.ts"
|
|
1109
|
+
* new sst.aws.v5.Service("MyService", {
|
|
1110
|
+
* cluster,
|
|
1111
|
+
* scaling: {
|
|
1112
|
+
* min: 4,
|
|
1113
|
+
* max: 16,
|
|
1114
|
+
* cpuUtilization: 50,
|
|
1115
|
+
* memoryUtilization: 50
|
|
1116
|
+
* }
|
|
1117
|
+
* });
|
|
1118
|
+
* ```
|
|
1119
|
+
*
|
|
1120
|
+
* #### Expose through API Gateway
|
|
1121
|
+
*
|
|
1122
|
+
* You can give your service a public URL by exposing it through API Gateway HTTP API. You can
|
|
1123
|
+
* also optionally give it a custom domain.
|
|
1124
|
+
*
|
|
1125
|
+
* ```ts title="sst.config.ts"
|
|
1126
|
+
* const service = new sst.aws.v5.Service("MyService", {
|
|
1127
|
+
* cluster,
|
|
1128
|
+
* serviceRegistry: {
|
|
1129
|
+
* port: 80
|
|
1130
|
+
* }
|
|
1131
|
+
* });
|
|
1132
|
+
*
|
|
1133
|
+
* const api = new sst.aws.v5.ApiGatewayV2("MyApi", {
|
|
1134
|
+
* vpc,
|
|
1135
|
+
* domain: "example.com"
|
|
1136
|
+
* });
|
|
1137
|
+
* api.routePrivate("$default", service.nodes.cloudmapService.arn);
|
|
1138
|
+
* ```
|
|
1139
|
+
*
|
|
1140
|
+
* #### Add a load balancer
|
|
1141
|
+
*
|
|
1142
|
+
* You can also expose your service by adding a load balancer to it and optionally
|
|
1143
|
+
* adding a custom domain.
|
|
1144
|
+
*
|
|
1145
|
+
* ```ts title="sst.config.ts"
|
|
1146
|
+
* new sst.aws.v5.Service("MyService", {
|
|
1147
|
+
* cluster,
|
|
1148
|
+
* loadBalancer: {
|
|
1149
|
+
* domain: "example.com",
|
|
1150
|
+
* rules: [
|
|
1151
|
+
* { listen: "80/http" },
|
|
1152
|
+
* { listen: "443/https", forward: "80/http" }
|
|
1153
|
+
* ]
|
|
1154
|
+
* }
|
|
1155
|
+
* });
|
|
1156
|
+
* ```
|
|
1157
|
+
*
|
|
1158
|
+
* #### Link resources
|
|
1159
|
+
*
|
|
1160
|
+
* [Link resources](/docs/linking/) to your service. This will grant permissions
|
|
1161
|
+
* to the resources and allow you to access it in your app.
|
|
1162
|
+
*
|
|
1163
|
+
* ```ts {5} title="sst.config.ts"
|
|
1164
|
+
* const bucket = new sst.aws.v5.Bucket("MyBucket");
|
|
1165
|
+
*
|
|
1166
|
+
* new sst.aws.v5.Service("MyService", {
|
|
1167
|
+
* cluster,
|
|
1168
|
+
* link: [bucket]
|
|
1169
|
+
* });
|
|
1170
|
+
* ```
|
|
1171
|
+
*
|
|
1172
|
+
* You can use the [SDK](/docs/reference/sdk/) to access the linked resources in your service.
|
|
1173
|
+
*
|
|
1174
|
+
* ```ts title="app.ts"
|
|
1175
|
+
* import { Resource } from "sst";
|
|
1176
|
+
*
|
|
1177
|
+
* console.log(Resource.MyBucket.name);
|
|
1178
|
+
* ```
|
|
1179
|
+
*
|
|
1180
|
+
* #### Service discovery
|
|
1181
|
+
*
|
|
1182
|
+
* This component automatically creates a Cloud Map service host name for the
|
|
1183
|
+
* service. So anything in the same VPC can access it using the service's host name.
|
|
1184
|
+
*
|
|
1185
|
+
* For example, if you link the service to a Lambda function that's in the same VPC.
|
|
1186
|
+
*
|
|
1187
|
+
* ```ts title="sst.config.ts" {2,4}
|
|
1188
|
+
* new sst.aws.v5.Function("MyFunction", {
|
|
1189
|
+
* vpc,
|
|
1190
|
+
* url: true,
|
|
1191
|
+
* link: [service],
|
|
1192
|
+
* handler: "lambda.handler"
|
|
1193
|
+
* });
|
|
1194
|
+
* ```
|
|
1195
|
+
*
|
|
1196
|
+
* You can access the service by its host name using the [SDK](/docs/reference/sdk/).
|
|
1197
|
+
*
|
|
1198
|
+
* ```ts title="lambda.ts"
|
|
1199
|
+
* import { Resource } from "sst";
|
|
1200
|
+
*
|
|
1201
|
+
* await fetch(`http://${Resource.MyService.service}`);
|
|
1202
|
+
* ```
|
|
1203
|
+
*
|
|
1204
|
+
* [Check out an example](/docs/examples/#aws-cluster-service-discovery).
|
|
1205
|
+
*
|
|
1206
|
+
* #### Use roles you already have
|
|
1207
|
+
*
|
|
1208
|
+
* Pass the role, or its name.
|
|
1209
|
+
*
|
|
1210
|
+
* ```ts title="sst.config.ts"
|
|
1211
|
+
* new sst.aws.v5.Service("MyService", {
|
|
1212
|
+
* cluster,
|
|
1213
|
+
* existing: {
|
|
1214
|
+
* taskRole: "my-task-role",
|
|
1215
|
+
* executionRole: "my-execution-role"
|
|
1216
|
+
* }
|
|
1217
|
+
* });
|
|
1218
|
+
* ```
|
|
1219
|
+
*
|
|
1220
|
+
* #### Switch from `sst.aws.Service`
|
|
1221
|
+
*
|
|
1222
|
+
* Change `sst.aws.Service` to `sst.aws.v5.Service` and keep the name. The ECS service, its
|
|
1223
|
+
* task definition, roles, log groups and images, the load balancer with its listeners and
|
|
1224
|
+
* target groups, the Cloud Map service and the scaling policies are kept.
|
|
1225
|
+
*
|
|
1226
|
+
* ```ts title="sst.config.ts" del={1} ins={2}
|
|
1227
|
+
* const service = new sst.aws.Service("MyService", { cluster });
|
|
1228
|
+
* const service = new sst.aws.v5.Service("MyService", { cluster });
|
|
1229
|
+
* ```
|
|
1230
|
+
*
|
|
1231
|
+
* A few things are written differently:
|
|
1232
|
+
*
|
|
1233
|
+
* - `taskRole: "my-task-role"` becomes `existing: { taskRole: "my-task-role" }`, and the
|
|
1234
|
+
* same for `executionRole`.
|
|
1235
|
+
* - `public`, which `sst.aws.Service` deprecated, is `loadBalancer`. Its `ports` are
|
|
1236
|
+
* `rules`, and a rule's `path` is `conditions.path`.
|
|
1237
|
+
* - `loadBalancer`, its `domain`, its `rules` and each rule are plain values, not outputs.
|
|
1238
|
+
* So are `scaling` and its `cpuUtilization`, `memoryUtilization` and `requestCount`, and
|
|
1239
|
+
* the list of `containers`, each container and its `name`. They decide which resources
|
|
1240
|
+
* are created.
|
|
1241
|
+
* - `nodes.service` and `nodes.taskDefinition` are the resources, not outputs of them.
|
|
1242
|
+
* `nodes` also has the log groups, images, listeners, target groups and scaling
|
|
1243
|
+
* policies.
|
|
1244
|
+
* - `nodes.loadBalancer` is the load balancer the service creates. For a service that's
|
|
1245
|
+
* attached to an `Alb`, read it from the `Alb`.
|
|
1246
|
+
* - A `transform` function for `service`, `taskDefinition`, `logGroup`, `target` or
|
|
1247
|
+
* `listener` is given outputs where `sst.aws.Service` gave it plain values. For a part
|
|
1248
|
+
* there are several of, it's also given which one.
|
|
1249
|
+
* - `transform.listenerRule` applies to the rules of the service's own load balancer too,
|
|
1250
|
+
* not only to the rules on an `Alb`.
|
|
1251
|
+
* - If you set part of the ECS service's `networkConfiguration` or
|
|
1252
|
+
* `deploymentCircuitBreaker`, of a target group's `healthCheck`, or of the task
|
|
1253
|
+
* definition's `runtimePlatform`, with an object in `transform`, the rest of it is kept.
|
|
1254
|
+
*
|
|
1255
|
+
* One thing changes on the first deploy, and nothing in AWS: what `sst dev` runs for each
|
|
1256
|
+
* container is kept inside the service now, so it's listed as removed and created again.
|
|
1257
|
+
*
|
|
1258
|
+
* ---
|
|
1259
|
+
*
|
|
1260
|
+
* ### Cost
|
|
1261
|
+
*
|
|
1262
|
+
* By default, this uses a _Linux/X86_ _Fargate_ container with 0.25 vCPUs at $0.04048 per
|
|
1263
|
+
* vCPU per hour and 0.5 GB of memory at $0.004445 per GB per hour. It includes 20GB of
|
|
1264
|
+
* _Ephemeral Storage_ for free with additional storage at $0.000111 per GB per hour. Each
|
|
1265
|
+
* container also gets a public IPv4 address at $0.005 per hour.
|
|
1266
|
+
*
|
|
1267
|
+
* It works out to $0.04048 x 0.25 x 24 x 30 + $0.004445 x 0.5 x 24 x 30 + $0.005
|
|
1268
|
+
* x 24 x 30 or **$12 per month**.
|
|
1269
|
+
*
|
|
1270
|
+
* If you are using all Fargate Spot instances with `capacity: "spot"`, it's $0.01218784 x 0.25
|
|
1271
|
+
* x 24 x 30 + $0.00133831 x 0.5 x 24 x 30 + $0.005 x 24 x 30 or **$6 per month**
|
|
1272
|
+
*
|
|
1273
|
+
* Adjust this for the `cpu`, `memory` and `storage` you are using. And
|
|
1274
|
+
* check the prices for _Linux/ARM_ if you are using `arm64` as your `architecture`.
|
|
1275
|
+
*
|
|
1276
|
+
* The above are rough estimates for _us-east-1_, check out the
|
|
1277
|
+
* [Fargate pricing](https://aws.amazon.com/fargate/pricing/) and the
|
|
1278
|
+
* [Public IPv4 Address pricing](https://aws.amazon.com/vpc/pricing/) for more details.
|
|
1279
|
+
*
|
|
1280
|
+
* #### Scaling
|
|
1281
|
+
*
|
|
1282
|
+
* By default, `scaling` is disabled. If enabled, adjust the above for the number of containers.
|
|
1283
|
+
*
|
|
1284
|
+
* #### API Gateway
|
|
1285
|
+
*
|
|
1286
|
+
* If you expose your service through API Gateway, you'll need to add the cost of
|
|
1287
|
+
* [API Gateway HTTP API](https://aws.amazon.com/api-gateway/pricing/#HTTP_APIs) as well.
|
|
1288
|
+
* For services that don't get a lot of traffic, this ends up being a lot cheaper since API
|
|
1289
|
+
* Gateway is pay per request.
|
|
1290
|
+
*
|
|
1291
|
+
* Learn more about using
|
|
1292
|
+
* [Cluster with API Gateway](/docs/examples/#aws-cluster-with-api-gateway).
|
|
1293
|
+
*
|
|
1294
|
+
* #### Application Load Balancer
|
|
1295
|
+
*
|
|
1296
|
+
* If you add `loadBalancer` _HTTP_ or _HTTPS_ `rules`, an ALB is created at $0.0225 per hour,
|
|
1297
|
+
* $0.008 per LCU-hour, and $0.005 per hour if HTTPS with a custom domain is used. Where LCU
|
|
1298
|
+
* is a measure of how much traffic is processed.
|
|
1299
|
+
*
|
|
1300
|
+
* That works out to $0.0225 x 24 x 30 or **$16 per month**. Add $0.005 x 24 x 30 or **$4 per
|
|
1301
|
+
* month** for HTTPS. Also add the LCU-hour used.
|
|
1302
|
+
*
|
|
1303
|
+
* The above are rough estimates for _us-east-1_, check out the
|
|
1304
|
+
* [Application Load Balancer pricing](https://aws.amazon.com/elasticloadbalancing/pricing/)
|
|
1305
|
+
* for more details.
|
|
1306
|
+
*
|
|
1307
|
+
* #### Network Load Balancer
|
|
1308
|
+
*
|
|
1309
|
+
* If you add `loadBalancer` _TCP_, _UDP_, or _TLS_ `rules`, an NLB is created at $0.0225 per hour and
|
|
1310
|
+
* $0.006 per NLCU-hour. Where NCLU is a measure of how much traffic is processed.
|
|
1311
|
+
*
|
|
1312
|
+
* That works out to $0.0225 x 24 x 30 or **$16 per month**. Also add the NLCU-hour used.
|
|
1313
|
+
*
|
|
1314
|
+
* The above are rough estimates for _us-east-1_, check out the
|
|
1315
|
+
* [Network Load Balancer pricing](https://aws.amazon.com/elasticloadbalancing/pricing/)
|
|
1316
|
+
* for more details.
|
|
1317
|
+
*/
|
|
1318
|
+
export declare class Service extends Service_base {
|
|
1319
|
+
private readonly reach;
|
|
1320
|
+
constructor(name: string, args: ServiceArgs, opts?: ComponentResourceOptions);
|
|
1321
|
+
private createLoadBalancer;
|
|
1322
|
+
private attachToAlb;
|
|
1323
|
+
private createCloudmapService;
|
|
1324
|
+
/**
|
|
1325
|
+
* The URL of the service.
|
|
1326
|
+
*
|
|
1327
|
+
* If `loadBalancer.domain` is set, this is the URL with the custom domain.
|
|
1328
|
+
* Otherwise, it's the auto-generated load balancer URL.
|
|
1329
|
+
*/
|
|
1330
|
+
get url(): Output<string>;
|
|
1331
|
+
/**
|
|
1332
|
+
* The name of the Cloud Map service. This is useful for service discovery.
|
|
1333
|
+
*/
|
|
1334
|
+
get service(): Output<string>;
|
|
1335
|
+
/**
|
|
1336
|
+
* Linking a service gives the linked resource its `url`, when it has a load balancer,
|
|
1337
|
+
* and its `service` host name.
|
|
1338
|
+
*/
|
|
1339
|
+
link(): {
|
|
1340
|
+
properties: {
|
|
1341
|
+
url: Output<string> | undefined;
|
|
1342
|
+
service: Output<string | undefined>;
|
|
1343
|
+
};
|
|
1344
|
+
};
|
|
1345
|
+
}
|
|
1346
|
+
export {};
|
|
1347
|
+
//# sourceMappingURL=service.d.ts.map
|