

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

# カスタム CloudFormation フックプロジェクトの開始
<a name="hooks-init"></a>

カスタムフックプロジェクトを作成する最初のステップは、プロジェクトを開始することです。CloudFormation CLI `init` コマンドを使用して、カスタムフックプロジェクトを開始できます。

`init` コマンドは、フックスキーマファイルを含むプロジェクトの設定を順を追って説明するウィザードを起動します。このスキーマファイルをフックのシェイプとセマンティクスを定義するための開始点として使用します。詳細については、「[スキーマ構文](hooks-schema.md)」を参照してください。

**Hook プロジェクトを初期化するには:**

1. プロジェクトのディレクトリを作成します。

   ```
   mkdir ~/mycompany-testing-mytesthook
   ```

1. 新しいディレクトリに移動します。

   ```
   cd ~/mycompany-testing-mytesthook
   ```

1. CloudFormation CLI `init` コマンドを使用してプロジェクトを開始します。

   ```
   cfn init
   ```

   このコマンドは、以下の出力を返します。

   ```
   Initializing new project
   ```

1. `init` コマンドは、プロジェクトの設定手順を示すウィザードを起動します。プロンプトが表示されたら、 と入力`h`して Hooks プロジェクトを指定します。

   ```
   Do you want to develop a new resource(r) a module(m) or a hook(h)?
   ```

   ```
   h
   ```

1. フックタイプの名前を入力します。

   ```
   What's the name of your hook type?
   (Organization::Service::Hook)
   ```

   ```
   MyCompany::Testing::MyTestHook
   ```

1. 言語プラグインが 1 つだけインストールされている場合、デフォルトで選択されます。複数の言語プラグインがインストールされている場合は、目的の言語を選択できます。選択した言語の数値選択を入力します。

   ```
   Select a language for code generation:
   [1] java
   [2] python38
   [3] python39
   (enter an integer):
   ```

1. 選択した開発言語に基づいてパッケージングを設定します。

------
#### [ Python ]

   (*オプション*) プラットフォームに依存しないパッケージングには Docker を選択します。Docker は必須ではありませんが、パッケージ化を容易にすることを強くお勧めします。

   ```
   Use docker for platform-independent packaging (Y/n)?
   This is highly recommended unless you are experienced with cross-platform Python packaging.
   ```

------
#### [ Java ]

   Java パッケージ名を設定し、Codegen モデルを選択します。デフォルトのパッケージ名を使用するか、新しいパッケージ名を作成できます。

   ```
   Enter a package name (empty for default 'com.mycompany.testing.mytesthook'):
   ```

   ```
   Choose codegen model - 1 (default) or 2 (guided-aws):
   ```

------

*結果*: プロジェクトを正常に開始し、フックの開発に必要なファイルを生成しました。以下は、Python 3.8 の Hooks プロジェクトを構成するディレクトリとファイルの例です。

```
mycompany-testing-mytesthook.json
rpdk.log
README.md
requirements.txt
hook-role.yaml
template.yml
docs
    README.md
src
    __init__.py
    handlers.py
    models.py
    target_models
        aws_s3_bucket.py
```

**注記**  
`src` ディレクトリ内のファイルは、言語の選択に基づいて作成されます。生成されたファイルには、役立つコメントと例がいくつかあります。などの一部のファイルは`models.py`、後のステップで `generate` コマンドを実行してハンドラーのランタイムコードを追加するときに自動的に更新されます。