

 AWS Cloud9 は新規顧客には利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# ビルダーまたはランナーを定義する
<a name="build-run-debug-define-builder-runner"></a>

このトピックでは、ビルダーまたはランナーを定義する方法について説明します。ビルダーまたはランナーを定義する前に、[必ずビルダーまたはランナーを作成](build-run-debug.md#build-run-debug-create-builder-runner)してください。



表示されたビルダーまたはランナータブで、JSON を使用してランナーまたはビルダーを定義します。次のコードをテンプレートとして使用して開始します。

ビルダーの場合は、このコードで開始します。

```
{
  "cmd": [],
  "info": "",
  "env": {},
  "selector": ""
}
```

ランナーの場合は、このコードで開始します。

```
{
  "cmd": [],
  "script": "",
  "working_dir": "",
  "info": "",
  "env": {},
  "selector": "",
  "debugger": "",
  "debugport": ""
}
```

上記のコードでは:
+  `cmd`: が単一のコマンドとして AWS Cloud9 実行する文字列のカンマ区切りリストを表します。

  がこのコマンド AWS Cloud9 を実行すると、リスト内の各文字列は 1 つのスペースで区切られます。たとえば、 AWS Cloud9 は `"cmd": [ "ls", "$file", "$args"]`として実行され`ls $file $args`、 AWS Cloud9 は現在のファイルへの`$file`フルパスと、ファイル名の後に入力された引数`$args`に置き換えられます。詳細については、このセクションで後述するサポートされている変数のリストを参照してください。
+  `script`: ランナーがターミナルで実行する Bash スクリプトを表します (読みやすくするために行の配列として指定することもできます)。
+  `working_dir`: ランナーが実行されるディレクトリを表します。
+  `info`: 実行開始時にユーザーに表示したい任意の文字列を表します。この文字列には変数を含めることができます。たとえば`Running $project_path$file_name...`、 AWS Cloud9 は を現在のファイルのディレクトリパス`$project_path`に、 を現在のファイルの名前部分`$file_name`に置き換えます。このセクションで後述するサポートされている変数のリストを参照してください。
+  `env`: AWS Cloud9 が使用するコマンドライン引数の配列を表します。次に例を示します。

  ```
  "env": {
    "LANG": "en_US.UTF-8",
    "SHLVL": "1"
  }
  ```
+  `selector`: このランナーに適用されるファイル名を識別 AWS Cloud9 するために使用する正規表現を表します。たとえば、`source.py` で Python ファイルを指定できます。
+  `debugger`: このランナーと AWS Cloud9 互換性のある使用可能なデバッガーの名前を表します。たとえば、V8 デバッガーには `v8` を指定できます。
+  `debugport`: デバッグ中 AWS Cloud9 に使用するポート番号を表します。たとえば、使用するポート番号に `15454` を指定できます。

次の表に、使用できる変数を示します。


****  

|  **変数**  |  **説明**  | 
| --- | --- | 
|   `$file_path`   |  現在のファイルのディレクトリ。たとえば `/home/ec2-user/environment` や `/home/ubuntu/environment` です。  | 
|   `$file`   |  現在のファイルの完全パス。たとえば `/home/ec2-user/environment/hello.py` や `/home/ubuntu/environment/hello.py` です。  | 
|   `$args`   |  ファイル名の後に入力する任意の引数。たとえば `"5" "9"` です。  | 
|   `$file_name`   |  現在のファイルの名前の一部。たとえば `hello.py` です。  | 
|   `$file_extension`   |  現在のファイルの拡張子。たとえば `py` です。  | 
|   `$file_base_name`   |  ファイル拡張子を付けない現在のファイルの名前。たとえば `hello` です。  | 
|   `$packages`   |  パッケージフォルダの完全パス。  | 
|   `$project`   |  現在のプロジェクトフォルダの完全パス。  | 
|   `$project_path`   |  現在のプロジェクトのディレクトリ。たとえば `/home/ec2-user/environment/` や `/home/ubuntu/environment/` です。  | 
|   `$project_name`   |  ファイル拡張子を付けない現在のプロジェクトの名前。たとえば `my-demo-environment` です。  | 
|   `$project_extension`   |  現在のプロジェクトファイルの拡張子。  | 
|   `$project_base_name`   |  拡張子を付けない現在のプロジェクトの名前。  | 
|   `$hostname`   |  環境のホスト名。たとえば `192.0.2.0` です。  | 
|   `$hostname_path`   |  プロジェクトファイルへの相対パスを含む環境のホスト名。たとえば `https://192.0.2.0/hello.js` です。  | 
|   `$url`   |  環境にアクセスする完全な URL。たとえば `https://192.0.2.0.` です。  | 
|   `$port`   |  環境に割り当てられたポート。たとえば `8080` です。  | 
|   `$ip`   |  環境に対してプロセスを実行する IP アドレス。たとえば `0.0.0.0` です。  | 

例として、次の `G++.build` という名前のビルダーファイルは、`-o` オプションを指定した ** `g++` ** コマンドを実行して現在のファイル (例: `hello.cpp`) をオブジェクトモジュールにコンパイルする GCC のビルダーを定義します。次に、オブジェクトモジュールを現在のファイルと同じ名前 (例: `hello`) でプログラムにリンクします。ここでは、`g++ -o hello hello.cpp` が同等のbuコマンドです。

```
{
  "cmd": [ "g++", "-o", "$file_base_name", "$file_name" ],
  "info": "Compiling $file_name and linking to $file_base_name...",
  "selector": "source.cpp"
}
```

別の例として、次の `Python.run` という名前のランナーファイルは、Python を使用し、任意の引数を指定して現在のファイルを実行するランナーを定義します。たとえば、現在のファイルが `hello.py` という名前であり、引数に `5` および `9` を指定する場合、同等のコマンドは `python hello.py 5 9` です。

```
{
  "cmd": [ "python", "$file_name", "$args" ],
  "info": "Running $file_name...",
  "selector": "source.py"
}
```

最後に、次の `Print Run Variables.run` という名前のランナーファイルは、使用できる変数ごとの値を単純に出力してから停止するランナーを定義します。

```
{
  "info": "file_path = $file_path, file = $file, args = $args, file_name = $file_name, file_extension = $file_extension, file_base_name = $file_base_name, packages = $packages, project = $project, project_path = $project_path, project_name = $project_name, project_extension = $project_extension, project_base_name = $project_base_name, hostname = $hostname, hostname_path = $hostname_path, url = $url, port = $port, ip = $ip"
}
```