

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

# 创建 Managed Service for Apache Flink 应用程序
<a name="how-creating-apps"></a>

本主题包含如何创建 Managed Service for Apache Flink 应用程序的相关信息。

**Topics**
+ [构建 Managed Service for Apache Flink 应用程序代码](#how-creating-apps-building)
+ [创建 Managed Service for Apache Flink 应用程序](#how-creating-apps-creating)
+ [使用客户自主管理型密钥](#how-creating-apps-use-cmk)
+ [启动您的 Managed Service for Apache Flink 应用程序](#how-creating-apps-starting)
+ [验证 Managed Service for Apache Flink 应用程序](#how-creating-apps-verifying)
+ [为 Managed Service for Apache Flink 应用程序启用系统回滚](how-system-rollbacks.md)

## 构建 Managed Service for Apache Flink 应用程序代码
<a name="how-creating-apps-building"></a>

本节介绍用来为 Managed Service for Apache Flink 应用程序构建应用程序代码的组件。

我们建议您将支持的最新 Apache Flink 版本用于应用程序代码。有关升级 Managed Service for Apache Flink 应用程序的信息，请参见[使用 Apache Flink 的就地版本升级](how-in-place-version-upgrades.md)。

您可以使用 [Apache Maven](https://maven.apache.org/) 构建应用程序代码。Apache Maven 项目使用 `pom.xml` 文件以指定它使用的组件的版本。

**注意**  
Managed Service for Apache Flink 支持大小不超过 512 MB 的 JAR 文件。如果使用的 JAR 文件超过该大小，应用程序将无法启动。

应用程序现在可以使用任何 Scala 版本的 Java API。您必须将选择的 Scala 标准库捆绑到您的 Scala 应用程序中。

有关为使用 **Apache Beam** 创建 Managed Service for Apache Flink 应用程序的信息，请参阅[将 Apache Beam 与 Managed Service for Apache Flink 应用程序结合使用](how-creating-apps-beam.md) 。

### 指定应用程序的 Apache Flink 版本
<a name="how-creating-apps-building-flink"></a>

在使用 Managed Service for Apache Flink 版本 1.1.0 及更高版本时，您可以在编译应用程序时指定应用程序使用的 Apache Flink 版本。使用 `-Dflink.version` 参数提供 Apache Flink 版本。例如，如果您使用的是 Apache Flink 2.2.0，请提供以下信息：

```
mvn package -Dflink.version=2.2.0
```

对于使用旧版本的 Apache Flink 构建应用程序，请参阅 [早期版本](earlier.md)。

## 创建 Managed Service for Apache Flink 应用程序
<a name="how-creating-apps-creating"></a>

在构建应用程序代码后，您可以执行以下操作以创建 Managed Service for Apache Flink（Amazon MSF）应用程序：
+ **上传应用程序代码**：将应用程序代码上传到 Amazon S3 存储桶。在创建应用程序时，您可以指定应用程序代码的 S3 存储桶名称和对象名称。有关说明如何上传应用程序代码的教程，请参阅 [教程：开始使用 Apache Flink 托管服务中的 DataStream API](getting-started.md) 教程。
+ **创建 Managed Service for Apache Flink 应用程序**：使用以下方法之一创建 Amazon MSF 应用程序：
**注意**  
默认情况下，Amazon MSF 使用加密您的应用程序。 AWS 拥有的密钥您还可以使用 AWS KMS 客户托管密钥 (CMK) 创建新应用程序，以便自己创建、拥有和管理您的密钥。有关 CMK 的信息，请参阅 [Amazon Managed Service for Apache Flink 中的密钥管理](key-management-flink.md)。
  + **使用 AWS 控制台创建 Amazon MSF 应用程序：**您可以使用 AWS 控制台创建和配置应用程序。

    当您使用控制台创建应用程序时，将为您创建应用程序的依赖资源（例如 CloudWatch 日志流、IAM 角色和 IAM 策略）。

    在使用控制台创建应用程序时，您可以从 **Managed Service for Apache Flink - Create application（创建应用程序）** 页面上的下拉列表中进行选择，以指定应用程序使用的 Apache Flink 版本。

    有关如何使用控制台创建应用程序的教程，请参阅 [教程：开始使用 Apache Flink 托管服务中的 DataStream API](getting-started.md) 教程。
  + **使用 AWS CLI 创建您的 Amazon MSF 应用程序：**您可以使用 C AWS LI 创建和配置您的应用程序。

    使用 CLI 创建应用程序时，还必须手动创建应用程序的依赖资源（例如 CloudWatch 日志流、IAM 角色和 IAM 策略）。

    在使用 CLI 创建应用程序时，您可以使用 `CreateApplication` 操作的 `RuntimeEnvironment` 参数指定应用程序使用的 Apache Flink 版本。
**注意**  
您可以更改现有应用程序的 `RuntimeEnvironment`。要了解如何操作，请参阅[使用 Apache Flink 的就地版本升级](how-in-place-version-upgrades.md)。

## 使用客户自主管理型密钥
<a name="how-creating-apps-use-cmk"></a>

在 Amazon MSF 中，客户托管密钥 (CMK) 是一项功能，您可以使用自己在 AWS Key Management Service (AWS KMS) 上创建、拥有和管理的密钥来加密应用程序的数据。对于 Amazon MSF 应用程序，这意味着所有受 Flink [检查点](how-fault.md)或[快照](how-snapshots.md)约束的数据都使用您为该应用程序定义的 CMK 进行加密。

要在应用程序中使用 CMK，必须先[创建新应用程序](#how-creating-apps-creating)，然后应用 CMK。有关使用 CMK 的更多信息，请参阅 [Amazon Managed Service for Apache Flink 中的密钥管理](key-management-flink.md)。

## 启动您的 Managed Service for Apache Flink 应用程序
<a name="how-creating-apps-starting"></a>

在构建应用程序代码、将其上传到 S3 并创建 Managed Service for Apache Flink应用程序后，您可以启动应用程序。启动 Managed Service for Apache Flink 应用程序通常需要几分钟。

可以使用以下方法之一以启动应用程序：
+ **使用控制台启动适用于 Apache Flink 的托管服务：您可以通过在 AWS 控制台**的应用程序页面上选择 “**运行**” 来运行应用程序。 AWS 
+ **使用 AP AWS I 启动适用于 Apache Flink 的托管服务：**您可以使用操作运行应用程序。[StartApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StartApplication.html)

## 验证 Managed Service for Apache Flink 应用程序
<a name="how-creating-apps-verifying"></a>

您可以通过以下方式验证应用程序是否正常工作：
+ **使用 CloudWatch 日志：**您可以使用 CloudWatch 日志和 CloudWatch 日志见解来验证您的应用程序是否正常运行。有关在 Apache Flink 托管服务应用程序中使用 CloudWatch 日志的信息，请参阅。[Amazon Managed Service for Apache Flink 的日志记录和监控](monitoring-overview.md)
+ **使用 CloudWatch 指标：**您可以使用 CloudWatch 指标来监控应用程序的活动，或者您的应用程序用于输入或输出的资源（例如 Kinesis 流、Firehose 流或 Amazon S3 存储桶）中的活动。有关 CloudWatch 指标的更多信息，请参阅 Amazon CloudWatch 用户指南中的[使用指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)。
+ **监控输出位置**：如果应用程序将输出写入到某个位置（例如 Amazon S3 存储桶或数据库），您可以在该位置中监控写入的数据。