

这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段，并于 2023 年 6 月 1 日终止支持。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS CDK 的受支持编程语言
<a name="languages"></a>

AWS 云开发工具包 (AWS CDK) 对以下通用编程语言提供一流的支持：
+ TypeScript
+ JavaScript
+ Python
+ Java
+ C\$1
+  Go 

理论上也可以使用其他 JVM 和 .NET CLR 语言，但我们目前不提供官方支持。

AWS CDK 是使用单一语言 TypeScript 开发的。为了支持其他语言，AWS CDK 使用名为 [JSII](https://github.com/aws/jsii) 的工具生成语言绑定。

我们尝试提供每种语言的常用惯例，以使通过 AWS CDK 进行开发尽可能自然和直观。例如，我们使用您的首选语言的标准存储库分发 AWS 构造库模块，而您则使用该语言的标准包管理器安装这些模块。方法和属性也使用您所用语言推荐的命名模式进行命名。

以下是一些代码示例：

**Example**  

```
const bucket = new s3.Bucket(this, 'amzn-s3-demo-bucket', {
  bucketName: 'amzn-s3-demo-bucket',
  versioned: true,
  websiteRedirect: {hostName: 'aws.amazon.com'}});
```

```
const bucket = new s3.Bucket(this, 'amzn-s3-demo-bucket', {
  bucketName: 'amzn-s3-demo-bucket',
  versioned: true,
  websiteRedirect: {hostName: 'aws.amazon.com'}});
```

```
bucket = s3.Bucket("amzn-s3-demo-bucket", bucket_name="amzn-s3-demo-bucket", versioned=True,
            website_redirect=s3.RedirectTarget(host_name="aws.amazon.com"))
```

```
Bucket bucket = Bucket.Builder.create(self, "amzn-s3-demo-bucket")
                      .bucketName("amzn-s3-demo-bucket")
                      .versioned(true)
                      .websiteRedirect(new RedirectTarget.Builder()
                          .hostName("aws.amazon.com").build())
                      .build();
```

```
var bucket = new Bucket(this, "amzn-s3-demo-bucket", new BucketProps {
                      BucketName = "amzn-s3-demo-bucket",
                      Versioned  = true,
                      WebsiteRedirect = new RedirectTarget {
                              HostName = "aws.amazon.com"
                      }});
```

```
bucket := awss3.NewBucket(scope, jsii.String("amzn-s3-demo-bucket"), &awss3.BucketProps {
	BucketName: jsii.String("amzn-s3-demo-bucket"),
	Versioned: jsii.Bool(true),
	WebsiteRedirect: &awss3.RedirectTarget {
		HostName: jsii.String("aws.amazon.com"),
	},
})
```

**注意**  
这些代码片段仅用于说明目的。它们不完整，无法按原样运行。

AWS 构造库使用每种语言的标准包管理工具进行分发，包括 NPM、PyPi、Maven 和 NuGet。我们还提供每种语言的 [AWS CDK API 参考](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html)版本。

为便于您以首选语言使用 AWS CDK，本指南涵盖以下针对受支持语言的主题：
+  [在 TypeScript 中使用 AWS CDK](work-with-cdk-typescript.md) 
+  [在 JavaScript 中使用 AWS CDK](work-with-cdk-javascript.md) 
+  [在 Python 中使用 AWS CDK](work-with-cdk-python.md) 
+  [在 Java 中使用 AWS CDK](work-with-cdk-java.md) 
+  [在 C\$1 中使用 AWS CDK](work-with-cdk-csharp.md) 
+  [在 Go 中使用 AWS CDK](work-with-cdk-go.md) 

TypeScript 是 AWS CDK 支持的第一种语言，而且大部分 AWS CDK 示例代码都是用 TypeScript 编写的。本指南包括一个专门介绍如何调整 TypeScript AWS CDK 代码使用其他受支持语言的主题。有关更多信息，请参阅[将 TypeScript 中的 AWS CDK 与其他语言进行比较](work-with.md#work-with-cdk-compare)。