

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

# AWS ParallelCluster Python ライブラリ API
<a name="pc-py-library-v3"></a>

 AWS ParallelCluster バージョン 3.5.0 以降では、Python AWS ParallelCluster ライブラリ AWS ParallelCluster を使用して にアクセスできます。`pcluster` 環境内または AWS Lambda ランタイム内から AWS ParallelCluster ライブラリにアクセスできます。Python ライブラリを使用して API AWS ParallelCluster にアクセスする AWS ParallelCluster 方法について説明します。Python ライブラリは、 AWS ParallelCluster API AWS ParallelCluster が提供するのと同じ機能を提供します。

 AWS ParallelCluster Python ライブラリのオペレーションとパラメータは、大文字なしで に変換すると、API パラメータのオペレーションとパラメータを反映し`snake_case`ます。

**Topics**
+ [AWS ParallelCluster Python ライブラリの認可](#pc-py-lib-auth)
+ [Python AWS ParallelCluster ライブラリをインストールする](#pc-py-lib-install)
+ [クラスター API オペレーション](pc-py-lib-api-cluster.md)
+ [コンピューティングフリートの API オペレーション](pc-py-lib-api-fleet.md)
+ [クラスターとスタックのログ操作](pc-py-lib-api-logs-cluster-stack.md)
+ [イメージの API オペレーション](pc-py-lib-api-image.md)
+ [イメージとスタックのログ操作](pc-py-lib-api-logs-image-stack.md)
+ [例](pc-py-lib-api-examples.md)
+ [AWS Lambda Python AWS ParallelCluster ライブラリ用の](#lambda-py-v3)

## AWS ParallelCluster Python ライブラリの認可
<a name="pc-py-lib-auth"></a>

boto3 で有効な標準的な方法のいずれかを使用して認証情報を指定します。詳細については、「[Boto3 ドキュメント](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration)」を参照してください。

## Python AWS ParallelCluster ライブラリをインストールする
<a name="pc-py-lib-install"></a>

1. [セットアップ AWS ParallelCluster](install-v3.md) に記載されている手順に従って `pcluster` CLI バージョン 3.5.0 以降をインストールします。

1. 次の例に示すように、`pcluster` モジュールをインポートし、ライブラリの使用を開始します。

   ```
   import pcluster.lib as pc
   pc.create_cluster(cluster_name="mycluster", cluster_configuration="config.yaml"
   ```

# クラスター API オペレーション
<a name="pc-py-lib-api-cluster"></a>

**Topics**
+ [`list_clusters`](pc-py-lib-api-cluster-list.md)
+ [`create_cluster`](pc-py-lib-api-cluster-create.md)
+ [`delete_cluster`](pc-py-lib-api-cluster-delete.md)
+ [`describe_cluster`](pc-py-lib-api-cluster-describe.md)
+ [`update_cluster`](pc-py-lib-api-cluster-update.md)

# `list_clusters`
<a name="pc-py-lib-api-cluster-list"></a>

```
list_clusters(region, next_token, cluster_status)
```

既存のクラスターのリストを取得します。パラメータ :

**`region`**  
特定の にデプロイされたクラスターを一覧表示します AWS リージョン。

**`next_token`**  
次の結果セットのトークン。

**`cluster_status`**  
クラスターのステータスでフィルタリングします。デフォルトではすべてのクラスターが一覧表示されます。  
有効な値: `CREATE_IN_PROGRESS` \$1 `CREATE_FAILED` \$1 `CREATE_COMPLETE` \$1 `DELETE_IN_PROGRESS` \$1 `DELETE_FAILED` \$1 `UPDATE_IN_PROGRESS` \$1 `UPDATE_COMPLETE` \$1 `UPDATE_FAILED` 

# `create_cluster`
<a name="pc-py-lib-api-cluster-create"></a>

```
create_cluster(cluster_name, cluster_configuration, region, suppress_validators, validation_failure_level, dry_run, rollback_on_failure, wait)
```

特定のリージョンにクラスターを作成します。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`cluster_configuration` (必須)**  
Python データ型としてのクラスター設定。

**`region`**  
クラスター AWS リージョン。

**`suppress_validators`**  
抑制する 1 つまたは複数のクラスター設定バリデータを指定します。  
形式: `(ALL | type:[A-Za-z0-9]+)`

**`validation_failure_level`**  
クラスター作成が失敗する最小の検証レベル。デフォルトは `ERROR` です。  
有効な値: `INFO` \$1 `WARNING` \$1 `ERROR`

**`dry_run`**  
リソースを作成することなく、リクエストの検証を行います。これを使用して、クラスターの設定を検証できます。デフォルトは `False` です。

**`rollback_on_failure`**  
に設定すると`True`、障害発生時にクラスタースタックのロールバック AWS ParallelCluster が自動的に開始されます。デフォルトは `True` です。

**`wait`**  
`True` に設定すると、 AWS ParallelCluster はオペレーションが完了するまで待機します。デフォルトは `False` です。

# `delete_cluster`
<a name="pc-py-lib-api-cluster-delete"></a>

```
delete_cluster(cluster_name, region, wait)
```

特定のリージョンのクラスターを削除します。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`region`**  
クラスター AWS リージョン。

**`wait`**  
`True` に設定すると、オペレーションが完了するまで待機します。デフォルトは `False` です。

# `describe_cluster`
<a name="pc-py-lib-api-cluster-describe"></a>

```
describe_cluster(cluster_name, region)
```

既存のクラスターの詳細情報を取得します。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`region`**  
クラスター AWS リージョン。

# `update_cluster`
<a name="pc-py-lib-api-cluster-update"></a>

```
update_cluster(cluster_name, cluster_configuration, suppress_validators, validation_failure_level, region, force_update, dry_run, wait)
```

特定のリージョンのクラスターを更新します。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`cluster_configuration` (必須)**  
Python データ型としてのクラスター設定。

**`suppress_validators`**  
抑制する 1 つまたは複数のクラスター設定バリデータを指定します。  
形式: `(ALL | type:[A-Za-z0-9]+)`

**`validation_failure_level`**  
クラスターの更新が失敗する最小の検証レベル。デフォルトは `ERROR` です。  
有効な値: `INFO` \$1 `WARNING` \$1 `ERROR`

**`region`**  
クラスター AWS リージョン。

**`dry_run`**  
リソースの作成や更新を行わずにリクエストの検証のみを行います。これを使用して、クラスターの設定を検証できます。デフォルトは `False` です。

**`force_update`**  
`True` に設定すると、更新検証のエラーを無視して、強制的に更新を行います。デフォルトは `False` です。

**`wait`**  
`True` に設定すると、オペレーションが完了するまで待機します。デフォルトは `False` です。

# コンピューティングフリートの API オペレーション
<a name="pc-py-lib-api-fleet"></a>

**Topics**
+ [`describe_compute_fleet`](pc-py-lib-api-fleet-describe.md)
+ [`update_compute_fleet`](pc-py-lib-api-fleet-update.md)
+ [`delete_cluster_instances`](pc-py-lib-api-fleet-delete.md)
+ [`describe_cluster_instances`](pc-py-lib-api-fleet-describe-instances.md)

# `describe_compute_fleet`
<a name="pc-py-lib-api-fleet-describe"></a>

```
describe_compute_fleet(cluster_name, region)
```

特定のクラスターのクラスターコンピューティングフリートのステータスを説明します。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`region`**  
特定の にデプロイされたクラスターのコンピューティングフリートステータスを記述します AWS リージョン。

# `update_compute_fleet`
<a name="pc-py-lib-api-fleet-update"></a>

```
update_compute_fleet(cluster_name, status, region)
```

クラスターコンピューティングフリートの状態を更新します。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`status` (必須)**  
更新先のステータス。  
有効な値: `START_REQUESTED` \$1 `STOP_REQUESTED` \$1 `ENABLED` \$1 `DISABLED`

**`region`**  
クラスター AWS リージョン。

# `delete_cluster_instances`
<a name="pc-py-lib-api-fleet-delete"></a>

```
delete_cluster_instances(cluster_name, region, force)
```

すべてのクラスターコンピューティングノードの強制終了を開始します。このアクションは AWS Batch クラスターをサポートしていません。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`region`**  
クラスター AWS リージョン。

**`force`**  
`True` に設定すると、指定した `cluster_name` を持つクラスターが見つからない場合に強制的に削除します。デフォルトは `False` です。

# `describe_cluster_instances`
<a name="pc-py-lib-api-fleet-describe-instances"></a>

```
describe_cluster_instances(cluster_name, region, next_token, node_type, queue_name)
```

クラスターのインスタンスについて説明します。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`region`**  
クラスター AWS リージョン。

**`next_token`**  
次の結果セットのトークン。

**`node_type`**  
`node_type` でインスタンスをフィルタリングします。  
有効な値: `HeadNode` \$1 `ComputeNode`

**`queue_name`**  
インスタンスをキュー名でフィルタリングします。

# クラスターとスタックのログ操作
<a name="pc-py-lib-api-logs-cluster-stack"></a>

**Topics**
+ [`list_cluster_log_streams`](pc-py-lib-api-logs-cluster-stack-log-streams.md)
+ [`get_cluster_log_events`](pc-py-lib-api-logs-cluster-stack-log-events.md)
+ [`get_cluster_stack_events`](pc-py-lib-api-logs-cluster-stack-log-stack-events.md)

# `list_cluster_log_streams`
<a name="pc-py-lib-api-logs-cluster-stack-log-streams"></a>

```
list_cluster_log_streams(cluster_name, region, filters, next_token)
```

特定のクラスターのログストリームを一覧表示します。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`region`**  
クラスター AWS リージョン。

**`filters`**  
クラスターログストリームをフィルタリングします。  
形式: `'Name=a,Values=1 Name=b,Values=2,3'`  
**使用できるフィルター:**    
**code-dns-name**  
インスタンスのプライベート DNS 名の短縮形 (例: `ip-10-0-0-101`)。  
**node-type**  
ノードタイプ。  
有効な値: `HeadNode`

**`next_token`**  
次の結果セットのトークン。

# `get_cluster_log_events`
<a name="pc-py-lib-api-logs-cluster-stack-log-events"></a>

```
get_cluster_log_events(cluster_name, log_stream_name, region, next_token, start_from_head, limit, start_time, end_time)
```

特定のクラスターとログストリームのログイベントを取得します。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`log_stream_name` (必須)**  
ログストリーム名。

**`region`**  
クラスター AWS リージョン。

**`next_token`**  
次の結果セットのトークン。

**`start_from_head`**  
に設定すると`True`、 は最も古いログイベントを最初に AWS ParallelCluster 返します。`False` に設定すると、最新のログイベントが最初に返されます。デフォルトは `False` です。

**`limit`**  
返されるログイベントの最大数。値を指定しない場合、最大値は 1 MB の応答サイズに収まるログの数で、最大 10,000 ログイベントまでとなります。

**`start_time`**  
ISO 8601 形式で表したログイベントの時間範囲の開始時刻 (例: `'2021-01-01T20:00:00Z'`)。この時間と同じかそれ以降のタイムスタンプを持つイベントが含まれます。

**`end_time`**  
ISO 8601 形式で表したログイベントの時間範囲の終了時刻 (例: `'2021-01-01T20:00:00Z'`)。この時間と同じかそれ以降のタイムスタンプを持つイベントは含まれません。

# `get_cluster_stack_events`
<a name="pc-py-lib-api-logs-cluster-stack-log-stack-events"></a>

```
get_cluster_stack_events(cluster_name, region, next_token)
```

特定のクラスターのスタックイベントを取得します。パラメータ :

**`cluster_name` (必須)**  
クラスター名。

**`region`**  
クラスター AWS リージョン。

**`next_token`**  
次の結果セットのトークン。

# イメージの API オペレーション
<a name="pc-py-lib-api-image"></a>

**Topics**
+ [`list_images`](pc-py-lib-api-image-list.md)
+ [`build_image`](pc-py-lib-api-image-build.md)
+ [`delete_image`](pc-py-lib-api-image-delete.md)
+ [`describe_image`](pc-py-lib-api-image-describe.md)

# `list_images`
<a name="pc-py-lib-api-image-list"></a>

```
list_images(image_status, region, next_token)
```

既存のイメージのリストを取得します。パラメータ :

**`image_status` (必須)**  
イメージのステータスでフィルタリングします。  
有効な値: `AVAILABLE` \$1 `PENDING` \$1 `FAILED`

**`region`**  
特定の AWS リージョンにビルドされているイメージを一覧表示します。

**`next_token`**  
次の結果セットのトークン。

# `build_image`
<a name="pc-py-lib-api-image-build"></a>

```
build_image(image_configuration, image_id, suppress_validators, validation_failure_level, dry_run, rollback_on_failure, region)
```

特定のリージョンにカスタム AWS ParallelCluster イメージを作成します。パラメータ :

**`image_configuration` (必須)**  
Python データとしてのイメージ設定。

**`image_id` (必須)**  
イメージ ID。

**`suppress_validators`**  
抑制する 1 つまたは複数のイメージ設定バリデータを指定します。  
形式: `(ALL | type:[A-Za-z0-9]+)`

**`validation_failure_level`**  
イメージ作成が失敗する最小の検証レベル。デフォルトは `ERROR` です。  
有効な値: `INFO` \$1 `WARNING` \$1 `ERROR`

**`dry_run`**  
に設定すると`True`、 はリソースを作成せずにリクエストの検証 AWS ParallelCluster を実行します。イメージの設定を検証するために使用することができます。デフォルトは `False` です。

**`rollback_on_failure`**  
に設定すると`True`、障害発生時にイメージスタックのロールバック AWS ParallelCluster が自動的に開始されます。デフォルトは `False` です。

**`region`**  
 AWS リージョンイメージ。

# `delete_image`
<a name="pc-py-lib-api-image-delete"></a>

```
delete_image(image_id, region, force)
```

特定のリージョンのイメージを削除します。パラメータ :

**`image_id` (必須)**  
イメージ ID。

**`region`**  
 AWS リージョンイメージ。

**`force`**  
に設定すると`True`、インスタンスが AMI を使用している場合、または AMI が共有されている場合、 は AWS ParallelCluster 強制的に削除します。デフォルトは `False` です。

# `describe_image`
<a name="pc-py-lib-api-image-describe"></a>

```
describe_image(image_id, region)
```

既存のイメージの詳細情報を取得します。パラメータ :

**`image_id` (必須)**  
イメージ ID。

**`region`**  
 AWS リージョンイメージ。

# イメージとスタックのログ操作
<a name="pc-py-lib-api-logs-image-stack"></a>

**Topics**
+ [`list_image_log_streams`](pc-py-lib-api-logs-image-stack-log-streams.md)
+ [`get_image_log_events`](pc-py-lib-api-logs-image-stack-log-events.md)
+ [`get_image_stack_events`](pc-py-lib-api-logs-image-stack-log-stack-events.md)
+ [`list_official_images`](pc-py-lib-api-logs-list-official-images.md)

# `list_image_log_streams`
<a name="pc-py-lib-api-logs-image-stack-log-streams"></a>

```
list_image_log_streams(image_id, region, next_token)
```

イメージのログストリームを一覧表示します。パラメータ :

**`image_id` (必須)**  
イメージ ID。

**`region`**  
 AWS リージョンイメージ。

**`next_token`**  
次の結果セットのトークン。

# `get_image_log_events`
<a name="pc-py-lib-api-logs-image-stack-log-events"></a>

```
get_image_log_events(image_id, log_stream_name, region, next_token, start_from_head, limit, start_time, end_time)
```

特定のイメージとログストリームのログイベントを取得します。パラメータ :

**`image_id` (必須)**  
イメージ ID。

**`log_stream_name` (必須)**  
ログストリーム名。

**`region`**  
 AWS リージョンイメージ。

**`next_token`**  
次の結果セットのトークン。

**`start_from_head`**  
に設定すると`True`、 は最も古いログイベントを最初に AWS ParallelCluster 返します。`False` に設定すると、最新のログイベントが最初に返されます。デフォルトは `False` です。

**`limit`**  
返されるログイベントの最大数。値を指定しない場合、最大値は 1 MB の応答サイズに収まるログの数で、最大 10,000 ログイベントまでとなります。

**`start_time`**  
ISO 8601 形式で表したログイベントの時間範囲の開始時刻 (例: `'2021-01-01T20:00:00Z'`)。この時間と同じかそれ以降のタイムスタンプを持つイベントが含まれます。

**`end_time`**  
ISO 8601 形式で表したログイベントの時間範囲の終了時刻 (例: `'2021-01-01T20:00:00Z'`)。この時間と同じかそれ以降のタイムスタンプを持つイベントは含まれません。

# `get_image_stack_events`
<a name="pc-py-lib-api-logs-image-stack-log-stack-events"></a>

```
get_image_stack_events(image_id, region, next_token)
```

特定のイメージのスタックイベントを取得します。パラメータ :

**`image_id` (必須)**  
イメージ ID。

**`region`**  
 AWS リージョンイメージ。

**`next_token`**  
次の結果セットのトークン。

# `list_official_images`
<a name="pc-py-lib-api-logs-list-official-images"></a>

```
list_official_images(region,os, architecture)
```

公式 AWS ParallelCluster イメージのリストを取得します。パラメータ :

**`region`**  
 AWS リージョンイメージ。

**`os`**  
オペレーティングシステムのディストリビューションでフィルタリングします。デフォルトはフィルタリングなしです。

**`architecture`**  
アーキテクチャでフィルタリングします。デフォルトはフィルタリングなしです。

# 例
<a name="pc-py-lib-api-examples"></a>

**Topics**
+ [クラスターを作成する](#pc-py-lib-api-examples-create-cluster)

## クラスターを作成する
<a name="pc-py-lib-api-examples-create-cluster"></a>

環境に保存されている特定の入力を使用して次のサンプルスクリプトを実行すると、クラスターが作成されます。クラスター設定は、[クラスター設定ドキュメント](cluster-configuration-file-v3.md)に基づいて Python データ型として作成されます。

```
import os
import pprint
import pcluster.lib as pc
pp = pprint.PrettyPrinter()

HEAD_NODE_SUBNET = os.environ["HEAD_NODE_SUBNET"]
COMPUTE_NODE_SUBNET = os.environ["HEAD_NODE_SUBNET"]
KEY_NAME = os.environ["KEY_NAME"]
CONFIG = {'Image': {'Os': 'alinux2'},
          'HeadNode': {'InstanceType': 't2.large',
                       'Networking': {'SubnetId': HEAD_NODE_SUBNET},
                       'Ssh': {'KeyName': KEY_NAME}},

          'Scheduling': {'Scheduler': 'slurm',
                         'SlurmQueues':
                         [{'Name': 'queue0',
                           'ComputeResources':
                           [{'Name': 'queue0-i0', 'InstanceType': 't2.micro',
                             'MinCount': 0, 'MaxCount': 10}],
                           'Networking': {'SubnetIds': [COMPUTE_NODE_SUBNET]}}]}}


pp.pprint(pc.create_cluster(cluster_name="mycluster", cluster_configuration=CONFIG))
```

**出力:**

```
{'cluster': {'cloudformationStackArn': 'arn:aws:cloudformation:us-east-2:123456789012:stack/mycluster/00000000-aaaa-1111-999-000000000000',
             'cloudformationStackStatus': 'CREATE_IN_PROGRESS',
             'clusterName': 'mycluster',
             'clusterStatus': 'CREATE_IN_PROGRESS',
             'region': 'us-east-2',
             'scheduler': {'type': 'slurm'},
             'version': '3.15.0'}}
```

## AWS Lambda Python AWS ParallelCluster ライブラリ用の
<a name="lambda-py-v3"></a>

Lambda レイヤーとランタイムをデプロイして Python AWS ParallelCluster ライブラリにアクセスできます。以下のステップで説明するように、 AWS ParallelCluster zip ファイルへのリンクを入力して使用できる zip ファイルをホストします。Lambda は zip ファイルを使用して Python ライブラリへのアクセスをサポートするランタイム環境を準備します。Python AWS ParallelCluster ライブラリが AWS ParallelCluster バージョン 3.5.0 で追加されました。このライブラリはバージョン 3.5.0 以降でのみ使用できます。

ホストされた zip ファイル URL の形式は です`s3://aws-region-id-aws-parallelcluster/parallelcluster/3.15.0/layers/aws-parallelcluster/lambda-layer.zip`。(*3.15.0* を次のステップで使用する AWS ParallelCluster バージョンに置き換えます）。

### で Python AWS ParallelCluster ライブラリへのアクセスを開始する AWS Lambda
<a name="lambda-py-get-started-v3"></a>

**Lambda レイヤーを作成する**

1. にログイン AWS マネジメントコンソール し、 AWS Lambda コンソールに移動します。

1. ナビゲーションペインで **[レイヤー]** を選択し、**[レイヤーの作成]** を選択します。

1. レイヤーの名前を入力し、**[Amazon S3 からファイルをアップロードする]** を選択します。

1. zip ファイルへの URL を入力します。s3://*aws-region-id*-aws-parallelcluster/parallelcluster/*3.15.0*/layers/aws-parallelcluster/lambda-layer.zip。

1. **[互換性のあるアーキテクチャ]** で、**[x86\$164]** アーキテクチャを選択します。

1. **互換性のあるランタイムの場合は**、**Python 3.12 **ランタイムを選択します。

1. **[作成]** を選択します。

**Lambda レイヤーを使用する**

1. Lambda コンソールのナビゲーションペインで、**[関数]** を選択し、**[関数の作成]** を選択します。

1. 関数の名前を入力します。

1. **Runtime** で、**Python 3.12 **ランタイムを選択します。

1. **[アーキテクチャ]** で、**[x86\$164]** アーキテクチャを選択します。

1. [**関数の作成**] を選択してください。

1. 関数が作成されたら、**[レイヤー]** を選択し、**[レイヤーの追加]** を選択します。

1. **[カスタムレイヤー]** を選択し、前のステップで作成したレイヤーを選択します。

1. レイヤーバージョンを選択します。

1. **[Add]** (追加) を選択します。

1. Lambda には、 で作成されたクラスターを管理するためのアクセス許可が必要です AWS ParallelCluster。[AWS ParallelCluster `pcluster` 基本ユーザーポリシー](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-base-user-policy) に一覧表示されているアクセス許可を使用して Lambda ロールを作成します。

「」で説明されているように、Python ライブラリ AWS ParallelCluster から にアクセスできるようになりました[AWS ParallelCluster Python ライブラリ API](#pc-py-library-v3)。