

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

# 啟動自訂 CloudFormation 勾點專案
<a name="hooks-init"></a>

建立自訂 Hooks 專案的第一步是啟動專案。您可以使用 CloudFormation CLI `init`命令來啟動自訂 Hooks 專案。

`init` 命令會啟動精靈，引導您設定專案，包括 Hooks 結構描述檔案。使用此結構描述檔案作為定義勾點形狀和語意的起點。如需詳細資訊，請參閱[結構描述語法](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. 如果只安裝一種語言外掛程式，預設會選取該外掛程式。如果已安裝多個語言外掛程式，您可以選擇所需的語言。為您選擇的語言輸入數字選擇。

   ```
   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` 目錄中的檔案會根據您的語言選擇建立。產生的檔案中有一些有用的註解和範例。當您執行 `generate`命令來新增處理常式的執行時間程式碼時`models.py`，某些檔案，例如 ，會在稍後的步驟中自動更新。