

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 PyFlink
<a name="pyflink-for-flink"></a>

Amazon EMR on EKS 6.15.0 版及更新版本支援 PyFlink。如果您已有 PyFlink 指令碼，您可以執行下列其中一項操作：
+ 建立包含 PyFlink 指令碼的自訂映像。
+ 將指令碼上傳至 Amazon S3 位置

如果您還沒有指令碼，您可以使用下列範例來啟動 PyFlink 任務。此範例會從 S3 擷取指令碼。如果您使用自訂映像搭配映像中已包含的指令碼，則必須將指令碼路徑更新為存放指令碼的位置。如果指令碼位於 S3 位置，Amazon EMR on EKS 將擷取指令碼並將其放在 Flink 容器中的 `/opt/flink/usrlib/`目錄下。

```
apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
metadata:
  name: python-example
spec:
  flinkVersion: v1_17
  flinkConfiguration:
    taskmanager.numberOfTaskSlots: "1"
  executionRoleArn: {{job-execution-role}}
  emrReleaseLabel: "emr-6.15.0-flink-latest"
  jobManager:
    highAvailabilityEnabled: false
    replicas: 1
    resource:
      memory: "2048m"
      cpu: 1
  taskManager:
    resource:
      memory: "2048m"
      cpu: 1
  job:
    jarURI: s3://{{S3 bucket with your script}}/{{pyflink-script.py}}
    entryClass: "org.apache.flink.client.python.PythonDriver"
    args: ["-py", "/opt/flink/usrlib/{{pyflink-script.py}}"] 
    parallelism: 1
    upgradeMode: stateless
```