

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 永続的な状態のアプリケーションとしてデプロイする
<a name="how-notebook-durable"></a>

コードを構築して Amazon S3 にエクスポートできます。ノートに書いたコードを、継続的に実行されるストリーム処理アプリケーションに昇格させることができます。Apache Flink 用 Managed Service で Apache Flink アプリケーションを実行するには、2 つのモードがあります。Studio ノートブックでは、コードをインタラクティブに開発し、コードの結果をリアルタイムで表示し、ノート内で可視化することができます。ノートをストリーミング・モードで実行するようにデプロイすると、Apache Flink 用 Managed Service は、継続的に実行され、ソースからデータを読み取り、デスティネーションに書き込み、長時間実行されるアプリケーションの状態を維持し、ソースストリームのスループットに基づいて自動的にオートスケールするアプリケーションを作成します。

**注記**  
アプリケーションコードをエクスポートする S3 バケットは、スタジオノートブックと同じリージョンにある必要があります。

Studio ノートパソコンからノートパソコンを導入するには、次の条件を満たす必要があります。
+ 段落は順番に並べる必要があります。アプリケーションをデプロイすると、ノート内のすべての段落が、ノートに表示されている順序（左から右、上から下）で実行されます。この順序は、ノートの [**すべての段落を実行**] を選択することで確認できます。
+ 顧客のコードは Python と SQL、または Scala と SQL の組み合わせです。現時点では、Python と Scala を併用してアプリケーションとしてデプロイすることはサポートされていません。
+ ノートには、「`%flink` `%flink.ssql` `%flink.pyflink` `%flink.ipyflink` `%md`」のインタープリタのみを使用してください。
+ 「[Zeppelin コンテキスト](https://zeppelin.apache.org/docs/0.9.0/usage/other_features/zeppelin_context.html)」オブジェクト `z` の使用はサポートされていません。何も返さないメソッドは、警告をログに記録する以外に何もしません。その他のメソッドは Python の例外を発生させたり、Scala でのコンパイルに失敗したりします。
+ 1 つのノートの結果が 1 つの Apache Flink ジョブになる必要があります。
+ 「[動的フォーム](https://zeppelin.apache.org/docs/0.9.0/usage/dynamic_form/intro.html)」を持つ Notes は、アプリケーションとしてデプロイすることはできません。
+ %md ([Markdown](https://zeppelin.apache.org/docs/0.9.0/interpreter/markdown.html)) 段落は、アプリケーションとしてデプロイする際にスキップされます。なぜなら、これらの段落には、結果のアプリケーションの一部として実行するのに適さない、人間が読める文書が含まれていると考えられるからです。
+ Zeppelin 内で実行するために無効化された段落は、アプリケーションとしてデプロイする際にスキップされます。無効化された段落が互換性のないインタプリタを使用していても、例えば `%flink` `and %flink.ssql` インタプリタを含むノートの `%flink.ipyflink` では、アプリケーションとしてノートをデプロイする際にスキップされ、エラーにはなりません。
+ アプリケーションのデプロイを成功させるには、実行可能なソースコード (Flink SQL、PyFlink または Flink Scala) を含む段落が少なくとも 1 つ存在している必要があります。
+ 段落内のインタプリタディレクティブで並列度を設定しても（例えば `%flink.ssql(parallelism=32)` ）、ノートからデプロイされたアプリケーションでは無視されます。代わりに、、 AWS Command Line Interface または AWS API を使用してデプロイされたアプリケーションを更新して AWS マネジメントコンソール、アプリケーションに必要な並列処理のレベルに応じて並列処理やParallelismPerKPU 設定を変更したり、デプロイされたアプリケーションの自動スケーリングを有効にしたりできます。
+ 永続的な状態のアプリケーションとしてデプロイする場合は、VPC がインターネットにアクセスできる必要があります。VPC がインターネットにアクセスできない場合は、 [インターネットにアクセスできない VPC で永続的な状態のアプリケーションとしてデプロイする](how-zeppelin-troubleshooting.md#how-zeppelin-troubleshooting-deploying-no-internet) を参照してください。

## Scala/Python の基準
<a name="how-notebook-durable-scala"></a>
+ Scala または Python のコードでは、古い「Flink」プランナー（Scala 用 `stenv_2` 、Python 用 `st_env_2` ）ではなく、「[Blinkプランナー](https://nightlies.apache.org/flink/flink-docs-release-1.15/dev/table/#dependency-structure)」（Scala 用 `senv` 、 `stenv` 、Python 用 `s_env` 、 `st_env` ）を使用してください。Apache Flink プロジェクトでは、Zeppelin および Flink のデフォルトのプランナーである Blink プランナーを本番ユースケースで使用することを推奨しています。
+ 顧客の Python の段落は、アプリケーションとしてデプロイされることを意図したノートの `%timeit` または `%conda` で、 `!` または「[IPython マジックコマンド](https://ipython.readthedocs.io/en/stable/interactive/magics.html)」を使用した「[シェルの呼び出し/割り当て](https://ipython.readthedocs.io/en/stable/interactive/python-ipython-diff.html#shell-assignment)」を使ってはいけません。
+ Scala ケースクラスは、 `map` や `filter` などの高階データフローオペレータに渡される関数のパラメーターとして使用することはできません。Scala ケースクラスについては、Scala ドキュメントの「[CASE CLASSES](https://docs.scala-lang.org/overviews/scala-book/case-classes.html)」を参照してください。

## SQL 基準
<a name="how-notebook-durable-sql"></a>
+ 段落の出力セクションに相当する、データを渡す場所がないため、単純な SELECT ステートメントは使用できません。
+ どの段落でも、DDL ステートメント（`USE`、`CREATE` `ALTER`、`DROP`、`SET`、`RESET`）は DML （`INSERT`）ステートメントの前に置く必要があります。これは、1 つの段落内の DML ステートメントを 1 つの Flink ジョブとしてまとめて送信する必要があるためです。
+ DML ステートメントを含む段落は 1 つまでにしてください。これは、アプリケーションとしてデプロイする機能では、Flink へのジョブ送信は 1 つしかサポートされていないためです。

詳細と例については、「[Amazon Managed Service for Apache Flink、Amazon Translate、Amazon Comprehend で SQL 関数を使用してストリーミングデータを翻訳、編集、分析する](https://aws.amazon.com/blogs/machine-learning/translate-redact-and-analyze-streaming-data-using-sql-functions-with-amazon-kinesisanalytics-MyApplicatioamazon-translate-and-amazon-comprehend/)」を参照してください。