@aws/nx-plugin-mcp 0.120.0 → 0.121.0

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.
Files changed (82) hide show
  1. package/bin/aws-nx-mcp.js +23 -35
  2. package/docs/guides/astro-docs.mdx +142 -0
  3. package/docs/guides/connection/py-agent-a2a.mdx +105 -0
  4. package/docs/guides/connection/py-agent-mcp.mdx +147 -0
  5. package/docs/guides/connection/react-agui.mdx +240 -0
  6. package/docs/guides/connection/react-fastapi.mdx +1476 -0
  7. package/docs/guides/connection/react-py-agent.mdx +198 -0
  8. package/docs/guides/connection/react-smithy.mdx +1355 -0
  9. package/docs/guides/connection/react-trpc.mdx +447 -0
  10. package/docs/guides/connection/react-ts-agent.mdx +198 -0
  11. package/docs/guides/connection/smithy-rdb.mdx +161 -0
  12. package/docs/guides/connection/trpc-rdb.mdx +127 -0
  13. package/docs/guides/connection/ts-agent-a2a.mdx +106 -0
  14. package/docs/guides/connection/ts-agent-mcp.mdx +144 -0
  15. package/docs/guides/connection/ts-agent-rdb.mdx +141 -0
  16. package/docs/guides/connection/ts-mcp-server-rdb.mdx +135 -0
  17. package/docs/guides/connection.mdx +126 -0
  18. package/docs/guides/docker-bundling.mdx +403 -0
  19. package/docs/guides/fastapi.mdx +509 -0
  20. package/docs/guides/license.mdx +293 -0
  21. package/docs/guides/nx-generator.mdx +588 -0
  22. package/docs/guides/py-agent.mdx +483 -0
  23. package/docs/guides/py-mcp-server.mdx +161 -0
  24. package/docs/guides/python-lambda-function.mdx +207 -0
  25. package/docs/guides/python-project.mdx +228 -0
  26. package/docs/guides/react-website-auth.mdx +216 -0
  27. package/docs/guides/react-website.mdx +421 -0
  28. package/docs/guides/runtime-config.mdx +312 -0
  29. package/docs/guides/terraform-project.mdx +317 -0
  30. package/docs/guides/trpc.mdx +816 -0
  31. package/docs/guides/ts-agent.mdx +436 -0
  32. package/docs/guides/ts-lambda-function.mdx +218 -0
  33. package/docs/guides/ts-mcp-server.mdx +169 -0
  34. package/docs/guides/ts-nx-plugin.mdx +159 -0
  35. package/docs/guides/ts-rdb.mdx +759 -0
  36. package/docs/guides/ts-smithy-api.mdx +661 -0
  37. package/docs/guides/typescript-infrastructure.mdx +408 -0
  38. package/docs/guides/typescript-project.mdx +312 -0
  39. package/docs/guides/workspace.mdx +181 -0
  40. package/docs/snippets/agent/architecture.mdx +72 -0
  41. package/docs/snippets/agent/bedrock-deployment.mdx +172 -0
  42. package/docs/snippets/agent/runtime-arn.mdx +64 -0
  43. package/docs/snippets/api/api-architecture.mdx +93 -0
  44. package/docs/snippets/api/api-choice-note.mdx +6 -0
  45. package/docs/snippets/api/cors-configuration-cdk-note.mdx +25 -0
  46. package/docs/snippets/api/cors-configuration-terraform-note.mdx +28 -0
  47. package/docs/snippets/api/shared-constructs.mdx +38 -0
  48. package/docs/snippets/api/type-safe-api-integrations.mdx +643 -0
  49. package/docs/snippets/api/waf-configuration.mdx +37 -0
  50. package/docs/snippets/connection/a2a-infrastructure.mdx +63 -0
  51. package/docs/snippets/connection/lambda-rdb-ssl-requirements.mdx +40 -0
  52. package/docs/snippets/connection/mcp-server-rdb-ssl-requirements.mdx +35 -0
  53. package/docs/snippets/connection/rdb-api-infrastructure.mdx +72 -0
  54. package/docs/snippets/connection/react-agent-infrastructure.mdx +61 -0
  55. package/docs/snippets/connection/strands-agent-rdb-ssl-requirements.mdx +35 -0
  56. package/docs/snippets/lambda-function/architecture.mdx +36 -0
  57. package/docs/snippets/lambda-function/deploying-your-function.mdx +118 -0
  58. package/docs/snippets/mcp/architecture.mdx +58 -0
  59. package/docs/snippets/mcp/assistant-docs.mdx +10 -0
  60. package/docs/snippets/mcp/bedrock-deployment.mdx +167 -0
  61. package/docs/snippets/mcp/config.mdx +13 -0
  62. package/docs/snippets/mcp/configuration-py.mdx +42 -0
  63. package/docs/snippets/mcp/configuration-ts.mdx +53 -0
  64. package/docs/snippets/mcp/observability.mdx +8 -0
  65. package/docs/snippets/mcp/shared-constructs.mdx +32 -0
  66. package/docs/snippets/pdk-migration/example/01-migrate-api.mdx +602 -0
  67. package/docs/snippets/pdk-migration/example/02-migrate-website.mdx +915 -0
  68. package/docs/snippets/pdk-migration/example/03-migrate-infra.mdx +161 -0
  69. package/docs/snippets/pdk-migration/example/04-deploy.mdx +229 -0
  70. package/docs/snippets/pdk-migration/faq/aws-arch.mdx +17 -0
  71. package/docs/snippets/pdk-migration/faq/cdk-graph.mdx +29 -0
  72. package/docs/snippets/pdk-migration/faq/infrastructure-python-java.mdx +19 -0
  73. package/docs/snippets/pdk-migration/faq/pdk-nag.mdx +15 -0
  74. package/docs/snippets/pdk-migration/faq/pipeline.mdx +15 -0
  75. package/docs/snippets/pdk-migration/faq/type-safe-api.mdx +310 -0
  76. package/docs/snippets/pdk-migration/faq/use-of-projen.mdx +15 -0
  77. package/docs/snippets/prerequisites.mdx +20 -0
  78. package/docs/snippets/required-prerequisites.mdx +12 -0
  79. package/docs/snippets/shared-constructs.mdx +40 -0
  80. package/docs/snippets/tools/acurl.mdx +73 -0
  81. package/docs/snippets/ts-bundle.mdx +14 -0
  82. package/package.json +1 -1
@@ -0,0 +1,421 @@
1
+ ---
2
+ title: React Website
3
+ description: Reference documentation for a React Website
4
+ generator: ts#react-website
5
+ ---
6
+ import { FileTree, Steps } from '@astrojs/starlight/components';
7
+ import Link from '@components/link.astro';
8
+ import RunGenerator from '@components/run-generator.astro';
9
+ import GeneratorParameters from '@components/generator-parameters.astro';
10
+ import NxCommands from '@components/nx-commands.astro';
11
+ import PackageManagerShortCommand from '@components/package-manager-short-command.astro';
12
+ import Infrastructure from '@components/infrastructure.astro';
13
+ import Snippet from '@components/snippet.astro';
14
+ import OptionFilter from '@components/option-filter.astro';
15
+
16
+ This generator creates a new [React](https://react.dev/) website with [Cloudscape](http://cloudscape.design/) configured by default, along with the AWS CDK or Terraform infrastructure to deploy your website to the cloud as a static website hosted in [S3](https://aws.amazon.com/s3/), served by [CloudFront](https://aws.amazon.com/cloudfront/) and protected by [WAF](https://aws.amazon.com/waf/).
17
+
18
+ The generated application uses [Vite](https://vite.dev/) as the build tool and bundler. It uses [TanStack Router](https://tanstack.com/router/v1) for type-safe routing.
19
+
20
+ :::note[UX Provider]
21
+ The default `uxProvider` is [Cloudscape](http://cloudscape.design/). You can also select [shadcn/ui](https://ui.shadcn.com/) or `None` (bring your own component library).
22
+ :::
23
+
24
+ ## Usage
25
+
26
+ ### Generate a React Website
27
+
28
+ You can generate a new React Website in two ways:
29
+
30
+ <RunGenerator generator="ts#react-website" />
31
+
32
+ ### Options
33
+
34
+ <GeneratorParameters generator="ts#react-website" />
35
+
36
+ ## Generator Output
37
+
38
+ The generator will create the following project structure in the `<directory>/<name>` directory:
39
+
40
+ <FileTree>
41
+ - index.html HTML entry point
42
+ - public Static assets
43
+ - src
44
+ - main.tsx Application entry point with React setup
45
+ - config.ts Application configuration (eg. logo)
46
+ - components
47
+ - AppLayout Components for the overall layout and navigation bar
48
+ - hooks
49
+ - useAppLayout.tsx Hook for adjusting the AppLayout from nested components (Cloudscape only)
50
+ - routes
51
+ - index.tsx Example route (or page) for TanStack Router
52
+ - styles.css Global styles
53
+ - vite.config.mts Vite and Vitest configuration
54
+ - tsconfig.json Base TypeScript configuration for source and tests
55
+ - tsconfig.app.json TypeScript configuration for source code
56
+ - tsconfig.spec.json TypeScript configuration for tests
57
+ </FileTree>
58
+
59
+ :::note[Without TanStack Router]
60
+ If you opted not to use [TanStack Router](https://tanstack.com/router/v1), you will be vended a simple `src/app.tsx` file as your application entry point instead of the `routes` directory.
61
+ :::
62
+
63
+ ### Infrastructure
64
+
65
+ <Snippet name="shared-constructs" />
66
+
67
+ The generator creates infrastructure as code for deploying your website based on your selected `iacProvider`:
68
+
69
+ <Infrastructure>
70
+ <Fragment slot="cdk">
71
+ <FileTree>
72
+ - packages/common/constructs/src
73
+ - app
74
+ - static-websites
75
+ - \<name>.ts Infrastructure specific to your website
76
+ - core
77
+ - static-website.ts Generic StaticWebsite construct
78
+ </FileTree>
79
+ </Fragment>
80
+ <Fragment slot="terraform">
81
+ <FileTree>
82
+ - packages/common/terraform/src
83
+ - app
84
+ - static-websites
85
+ - \<name>
86
+ - \<name>.tf Module specific to your website
87
+ - core
88
+ - static-website
89
+ - static-website.tf Generic static website module
90
+ </FileTree>
91
+ </Fragment>
92
+ </Infrastructure>
93
+
94
+ #### Architecture
95
+
96
+ The deployed website has the following architecture:
97
+
98
+ ```d2 inline=true
99
+ direction: right
100
+
101
+ browser: Web Browser {
102
+ shape: image
103
+ icon: /nx-plugin-for-aws/icons/aws/client.svg
104
+ }
105
+
106
+ waf: WAF {
107
+ shape: image
108
+ icon: /nx-plugin-for-aws/icons/aws/waf.svg
109
+ }
110
+
111
+ cloudfront: CloudFront {
112
+ shape: image
113
+ icon: /nx-plugin-for-aws/icons/aws/cloudfront.svg
114
+ }
115
+
116
+ s3: Static Assets\n(S3) {
117
+ shape: image
118
+ icon: /nx-plugin-for-aws/icons/aws/s3.svg
119
+ }
120
+
121
+ browser -> waf
122
+ waf -> cloudfront
123
+ cloudfront -> s3
124
+ ```
125
+
126
+ ## Implementing your React Website
127
+
128
+ The [React documentation](https://react.dev/learn) is a good place to start to learn the basics of building with React.
129
+
130
+ <OptionFilter when={{ uxProvider: 'Cloudscape' }} description="Cloudscape component docs pointer">
131
+ You can refer to the [Cloudscape documentation](https://cloudscape.design/components/) for details about the available components and how to use them.
132
+ </OptionFilter>
133
+
134
+ <OptionFilter when={{ uxProvider: 'Shadcn' }} description="Shadcn component docs pointer">
135
+ You can refer to the [shadcn/ui documentation](https://ui.shadcn.com/docs) for details about the available components and how to use them.
136
+ </OptionFilter>
137
+
138
+ ### Routes
139
+
140
+ #### Creating a Route/Page
141
+
142
+ Your website comes with [TanStack Router](https://tanstack.com/router/v1) configured by default. This makes it easy to add new routes:
143
+
144
+ <Steps>
145
+ 1. [Run the Local Development Server](#local-development-server)
146
+ 2. Create a new `<page-name>.tsx` file in `src/routes`, with its position in the file tree representing the path
147
+ 3. Notice a `Route` and `RouteComponent` are automatically generated for you. You can start building your page here!
148
+ </Steps>
149
+
150
+ #### Navigating Between Pages
151
+
152
+ You can use the `Link` component or `useNavigate` hook to navigate between pages:
153
+
154
+ ```tsx {1, 4, 8-9, 14}
155
+ import { Link, useNavigate } from '@tanstack/react-router';
156
+
157
+ export const MyComponent = () => {
158
+ const navigate = useNavigate();
159
+
160
+ const submit = async () => {
161
+ const id = await ...
162
+ // Use `navigate` for redirecting after some asynchronous action
163
+ navigate({ to: '/products/$id', { params: { id }} });
164
+ };
165
+
166
+ return (
167
+ <>
168
+ <Link to="/products">Cancel</Link>
169
+ <Button onClick={submit}>Submit</Button>
170
+ </>
171
+ )
172
+ };
173
+ ```
174
+
175
+ For more details, check out the [TanStack Router](https://tanstack.com/router/latest/docs/framework/react/overview) documentation.
176
+
177
+ ## Runtime Configuration
178
+
179
+ Configuration from your infrastructure is provided to your website via <Link href="guides/runtime-config">Runtime Configuration</Link>. This allows your website to access details such as API URLs which are not known until your application is deployed.
180
+
181
+ ### Infrastructure
182
+
183
+ <Infrastructure>
184
+ <Fragment slot="cdk">
185
+ The `RuntimeConfig` CDK construct can be used to add and retrieve configuration in your CDK infrastructure. The CDK constructs generated by `@aws/nx-plugin` generators (such as <Link path="guides/trpc">`ts#trpc-api`</Link> and <Link path="guides/fastapi">`py#fast-api`</Link>) will automatically add appropriate values to the `RuntimeConfig`.
186
+
187
+ Your website CDK construct will deploy the `connection` namespace of the runtime configuration as a `runtime-config.json` file to the root of your S3 bucket.
188
+
189
+ ```ts title="packages/infra/src/stacks/application-stack.ts"
190
+ import { Stack } from 'aws-cdk-lib';
191
+ import { Construct } from 'constructs';
192
+ import { MyWebsite, MyApi } from ':my-scope/common-constructs';
193
+
194
+ export class ApplicationStack extends Stack {
195
+ constructor(scope: Construct, id: string) {
196
+ super(scope, id);
197
+
198
+ // Website can be declared at any point — runtime config is resolved lazily
199
+ new MyWebsite(this, 'MyWebsite');
200
+
201
+ // Automatically adds values to the RuntimeConfig
202
+ new MyApi(this, 'MyApi', {
203
+ integrations: MyApi.defaultIntegrations(this).build(),
204
+ });
205
+ }
206
+ }
207
+ ```
208
+
209
+ :::note[CDK Website Construct]
210
+ With CDK, the website construct can be declared at any point in your stack. Runtime configuration is resolved lazily at synth time, so all values will be included regardless of declaration order.
211
+ :::
212
+ </Fragment>
213
+ <Fragment slot="terraform">
214
+ With Terraform, runtime configuration is managed through the runtime-config modules. The Terraform modules generated by `@aws/nx-plugin` generators (such as <Link path="guides/trpc">`ts#trpc-api`</Link> and <Link path="guides/fastapi">`py#fast-api`</Link>) will automatically add appropriate values to the runtime configuration.
215
+
216
+ Your website Terraform module will deploy the `connection` namespace of the runtime configuration as a `runtime-config.json` file to the root of your S3 bucket.
217
+
218
+ ```hcl title="packages/infra/src/main.tf" {18-19}
219
+ module "asset_bucket" {
220
+ source = "../../common/terraform/src/core/asset-bucket"
221
+ }
222
+
223
+ # Automatically adds values to runtime config
224
+ module "my_api" {
225
+ source = "../../common/terraform/src/app/apis/my-api"
226
+
227
+ asset_bucket_name = module.asset_bucket.bucket_name
228
+ }
229
+
230
+ # Automatically deploys the runtime config to runtime-config.json
231
+ module "my_website" {
232
+ source = "../../common/terraform/src/app/static-websites/my-website"
233
+
234
+ providers = {
235
+ aws.us_east_1 = aws.us_east_1
236
+ }
237
+
238
+ # Ensure API is deployed first to add to runtime config
239
+ depends_on = [module.my_api]
240
+ }
241
+ ```
242
+
243
+ :::caution[Module Ordering]
244
+ You must ensure that you declare your website module _after_ any modules which add to the runtime configuration and configure the appropriate `depends_on` to ensure ordering, otherwise they will be missing in your `runtime-config.json` file.
245
+ :::
246
+ </Fragment>
247
+ </Infrastructure>
248
+
249
+ ### Website Code
250
+
251
+ In your website, you can use the `useRuntimeConfig` hook to retrieve values from the runtime configuration:
252
+
253
+ ```tsx {1,4}
254
+ import { useRuntimeConfig } from '../hooks/useRuntimeConfig';
255
+
256
+ const MyComponent = () => {
257
+ const runtimeConfig = useRuntimeConfig();
258
+
259
+ // Access values in the runtime config here
260
+ const apiUrl = runtimeConfig.apis.MyApi;
261
+ };
262
+ ```
263
+
264
+ :::note[Runtime Configuration]
265
+ For details on how runtime configuration is stored in AWS AppConfig and how server-side consumers (Lambda functions, agents) can retrieve it, see the <Link path="guides/runtime-config">Runtime Configuration</Link> guide.
266
+ :::
267
+
268
+ ### Local Runtime Config
269
+
270
+ When running the [local development server](#local-development-server), you will need a `runtime-config.json` file in your `public` directory in order for your local website to know the backend URLs, identity configuration, etc.
271
+
272
+ Your website project is configured with a `load:runtime-config` target which you can use to pull down the `runtime-config.json` file from a deployed application:
273
+
274
+ <NxCommands commands={['run <my-website>:"load:runtime-config"']} />
275
+
276
+ :::note[Custom Stage Names]
277
+ <Infrastructure>
278
+ <Fragment slot="cdk">
279
+ If you change the prefix for your stage names in your infrastructure project's `src/main.ts`, you will need to update the `load:runtime-config` target in your website's `project.json` file accordingly.
280
+
281
+ Additionally it's worth noting that the `load:runtime-config` target assumes a single stage of your application is deployed to the environment you have AWS credentials for. You will need to adjust the command if you deploy multiple stages to the same account and region.
282
+ </Fragment>
283
+ <Fragment slot="terraform">
284
+ For Terraform projects, the `load:runtime-config` target copies the `runtime-config.json` file that was created after your most recent local `terraform apply`.
285
+ </Fragment>
286
+ </Infrastructure>
287
+ :::
288
+
289
+ ## Local Development Server
290
+
291
+ You can run a local development server using either the `serve` or `serve-local` target.
292
+
293
+ ### Serve Target
294
+
295
+ The `serve` target starts a local development server for your website. This target requires you to have deployed any supporting infrastructure that the website interacts with, and have [loaded local runtime configuration](#local-runtime-config).
296
+
297
+ You can run this target with the following command:
298
+
299
+ <NxCommands commands={['serve <my-website>']} />
300
+
301
+ This target is useful for working on website changes while pointing to "real" deployed APIs and other infrastructure.
302
+
303
+ ### Serve Local Target
304
+
305
+ The `serve-local` target starts a local development server for your website (with [Vite `MODE`](https://vite.dev/guide/env-and-mode) set to `serve-local`), as well as starting any local servers for APIs you have connected your website to via the <Link path="/guides/connection">Connection generator</Link>.
306
+
307
+ When your local website server is run via this target, `runtime-config.json` is automatically overridden to point to your locally running API urls.
308
+
309
+ You can run this target with the following command:
310
+
311
+ <NxCommands commands={['serve-local <my-website>']} />
312
+
313
+ This target is useful when you are working across your website and API and wish to quickly iterate without deploying your infrastructure.
314
+
315
+ :::note[`dev` script]
316
+ If no `dev` script exists in your root `package.json` when this generator runs, a `dev` script is added that invokes `serve-local` for the generated website, meaning you can also start the local development server with:
317
+
318
+ <PackageManagerShortCommand commands={["dev"]} />
319
+
320
+ This makes the first React website you generate the default `dev` target for the workspace. Subsequent websites do not overwrite the existing `dev` script — you can invoke their `serve-local` targets directly, or update the script manually.
321
+ :::
322
+
323
+ :::warning[Mock Authentication]
324
+ When run in this mode and no `runtime-config.json` is present, if you have configured Cognito Authentication (via the <Link path="/guides/react-website-auth">`ts#react-website#auth` generator</Link>), login will be skipped and requests to your local servers will not include authentication headers.
325
+
326
+ To enable login and authentication for `serve-local`, deploy your infrastructure and load runtime config.
327
+ :::
328
+
329
+ :::tip[Serve-Local Behavior]
330
+ When running with `serve-local`, you can specify any environment variables required by your APIs to point to other deployed AWS resources, for example:
331
+
332
+ <NxCommands env={{DYNAMODB_TABLE_NAME: 'xxxxx'}} commands={['serve-local <my-website>']} />
333
+
334
+ Note that your local API servers will run with the AWS credentials you have configured locally.
335
+ :::
336
+
337
+ ## Building
338
+
339
+ You can build your website using the `build` target. This use Vite to create a production bundle in the root `dist/packages/<my-website>/bundle` directory, as well as type-checking, compiling and linting your website.
340
+
341
+ <NxCommands commands={['build <my-website>']} />
342
+
343
+ ## Testing
344
+
345
+ Testing your website is much like writing tests in a standard TypeScript project, so please refer to the <Link path="guides/typescript-project#testing">TypeScript project guide</Link> for more details.
346
+
347
+ For React specific testing, React Testing Library is already installed and available for you to use to write tests. For more details on its usage, please refer to the [React Testing Library documentation](https://testing-library.com/docs/react-testing-library/example-intro).
348
+
349
+ You can run your tests using the `test` target:
350
+
351
+ <NxCommands commands={['test <my-website>']} />
352
+
353
+ ## Deploying Your Website
354
+
355
+ The React website generator creates CDK or Terraform infrastructure as code based on your selected `iacProvider`. You can use this to deploy your website.
356
+
357
+ <Infrastructure>
358
+ <Fragment slot="cdk">
359
+ To deploy your website, we recommend using the <Link path="guides/typescript-infrastructure">`ts#infra` generator</Link> to create a CDK application.
360
+
361
+ You can use the CDK construct generated for you in `packages/common/constructs` to deploy your website.
362
+
363
+ ```ts title="packages/infra/src/stacks/application-stack.ts" {3, 9}
364
+ import { Stack } from 'aws-cdk-lib';
365
+ import { Construct } from 'constructs';
366
+ import { MyWebsite } from ':my-scope/common-constructs';
367
+
368
+ export class ApplicationStack extends Stack {
369
+ constructor(scope: Construct, id: string) {
370
+ super(scope, id);
371
+
372
+ new MyWebsite(this, 'MyWebsite');
373
+ }
374
+ }
375
+ ```
376
+
377
+ This sets up:
378
+
379
+ 1. An S3 bucket for hosting your static website files
380
+ 2. CloudFront distribution for global content delivery
381
+ 3. WAF Web ACL for security protection
382
+ 4. Origin Access Control for secure S3 access
383
+ 5. Automatic deployment of website files and runtime configuration
384
+ </Fragment>
385
+ <Fragment slot="terraform">
386
+ To deploy your website, we recommend using the <Link path="guides/terraform-infrastructure">`terraform#project` generator</Link> to create a Terraform project.
387
+
388
+ You can use the Terraform module generated for you in `packages/common/terraform` to deploy your website.
389
+
390
+ ```hcl title="packages/infra/src/main.tf" {3}
391
+ # Deploy website
392
+ module "my_website" {
393
+ source = "../../common/terraform/src/app/static-websites/my-website"
394
+
395
+ providers = {
396
+ aws.us_east_1 = aws.us_east_1
397
+ }
398
+ }
399
+ ```
400
+
401
+ This sets up:
402
+
403
+ 1. An S3 bucket for hosting your static website files
404
+ 2. CloudFront distribution for global content delivery
405
+ 3. WAF Web ACL for security protection (deployed in us-east-1)
406
+ 4. Origin Access Control for secure S3 access
407
+ 5. Automatic deployment of website files and runtime configuration
408
+
409
+ :::note[WAF Provider Region]
410
+ The `aws.us_east_1` provider is required for CloudFront and WAF resources, which must be deployed in the us-east-1 region. Make sure your Terraform configuration includes this provider:
411
+
412
+ ```hcl title="packages/infra/src/providers.tf"
413
+ provider "aws" {
414
+ alias = "us_east_1"
415
+ region = "us-east-1"
416
+ }
417
+ ```
418
+ :::
419
+ </Fragment>
420
+ </Infrastructure>
421
+