

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

# へのサードパーティーリソースの追加 AWS Config
<a name="customresources-adding"></a>

 AWS Configにサードパーティーリソースを追加するには、次の手順に従います。

**Topics**
+ [ステップ 1: 開発環境をセットアップする](#customresources-setupdevenvironment)
+ [ステップ 2: リソースをモデル化する](#customresources-modelresource)
+ [ステップ 3: アーティファクトを生成する](#generateartifactsforcfnsubmit)
+ [ステップ 4: リソースを登録する](#customresources-registerresource)
+ [ステップ 5: リソース設定を公開する](#customresources-publishresourceconfiguration)

## ステップ 1: 開発環境をセットアップする
<a name="customresources-setupdevenvironment"></a>

 CloudFormation AWS CLIをインストールして設定します。 AWS CLI を使用すると、カスタムリソースをモデル化して登録できます。詳細については、[カスタムリソース](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html)および [CloudFormation Command Line Interface とは](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)を参照してください。

## ステップ 2: リソースをモデル化する
<a name="customresources-modelresource"></a>

リソースタイプの設定に準拠し検証するリソースプロバイダスキーマを作成します。

1. `init` コマンドを使用して、リソースプロバイダプロジェクトを作成し、必要なファイルを生成します。

   ```
   $ cfn init
   Initializing new project
   ```

1. `init` コマンドを実行すると、ウィザードが起動し、リソース名の指定など、プロジェクトの設定手順が示されます。このウォークスルーでは、`MyCustomNamespace::Testing::WordPress` を指定してください。

   ```
   Enter resource type identifier (Organization::Service::Resource): MyCustomNamespace::Testing::WordPress
   ```

1. リソースのパッケージ名を入力します。

   ```
   Enter a package name (empty for default 'com.custom.testing.wordpress'): com.custom.testing.wordpress 
   Initialized a new project in /workplace/user/custom-testing-wordpress
   ```
**注記**  
プロジェクトの依存関係を正しく解決できるようにするために、生成されたプロジェクトを Maven サポートを使用して IDE にインポートできます。  
例えば、IntelliJ IDEA を使用している場合は、次の操作を行う必要があります。  
**[File]** (ファイル) メニューから **[New]** (新規) を選択し、**[Project From Existing Sources]** (既存のソースからのプロジェクト) を選択します。
プロジェクトディレクトリへの移動
**[Import Project]** (プロジェクトのインポート) ダイアログボックスで、**[Import project from external model]** (外部モデルからプロジェクトをインポート)、**[Maven]** の順に選択します。
**[Next]** (次へ) を選択してデフォルトを承諾し、プロジェクトの読み込みを完了します。

1. リソースのスキーマを含む `mycustomnamespace-testing-wordpress.json` ファイルを開きます。次のスキーマをコピーして `mycustomnamespace-testing-wordpress.json` に貼り付けます。

   ```
   {
     "typeName": "MyCustomNamespace::Testing::WordPress",
     "description": "An example resource that creates a website based on WordPress 5.2.2.",
     "properties": {
       "Name": {
         "description": "A name associated with the website.",
         "type": "string",
         "pattern": "^[a-zA-Z0-9]{1,219}\\Z",
         "minLength": 1, "maxLength": 219
       },
       "SubnetId": {
         "description": "A subnet in which to host the website.",
         "pattern": "^(subnet-[a-f0-9]{13})|(subnet-[a-f0-9]{8})\\Z",
         "type": "string"
       },
       "InstanceId": {
         "description": "The ID of the instance that backs the WordPress site.",
         "type": "string"
       },
       "PublicIp": {
         "description": "The public IP for the WordPress site.",
         "type": "string"
       }
     },
     "required": [ "Name", "SubnetId" ],
     "primaryIdentifier": [ "/properties/PublicIp", "/properties/InstanceId" ],
     "readOnlyProperties": [ "/properties/PublicIp", "/properties/InstanceId" ],
     "additionalProperties": false
   }
   ```

1. スキーマを検証します。

   ```
   $ cfn validate
   ```

1. リソースプロバイダパッケージ内の自動生成されたファイルを更新して、リソースプロバイダスキーマの更新を表示します。リソースプロバイダープロジェクトを開始すると、 はリソースプロバイダーのサポートファイルとコード AWS CLI を生成します。コードを再生成して、更新されたスキーマを確認します。

   ```
   $ cfn generate
   ```
**注記**  
Maven を使用する場合、`generate` コマンドは構築プロセスの一部としてコードがコンパイルされる前に自動的に実行されます。そのため、変更内容は生成されたコードと同期しません。  
CloudFormation CLI は、Maven/システムが見つけることができる場所に配置する必要があります。詳細については、[拡張機能を開発するための環境のセットアップ](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html#resource-type-setup)を参照してください。

プロセス全体の詳細については、[CloudFormationで使用するためのモデリングリソースプロバイダー](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html)を参照してください。

## ステップ 3: アーティファクトを生成する
<a name="generateartifactsforcfnsubmit"></a>

次のコマンドを実行して `cfn submit` のアーティファクトを生成します。

```
$ mvn package
```

## ステップ 4: リソースを登録する
<a name="customresources-registerresource"></a>

AWS Config では、リソースプロバイダーハンドラーがリソースの設定追跡を実行する必要はありません。次のコマンドを実行して、リソースを登録します。

```
$ cfn submit
```

詳細については、[CloudFormation 「 テンプレートで使用するリソースプロバイダーの登録](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-register.html)」を参照してください。

## ステップ 5: リソース設定を公開する
<a name="customresources-publishresourceconfiguration"></a>

MyCustomNamespace::Testing::WordPress の設定を特定します。

```
{
  "Name": "MyWordPressSite",
  "SubnetId": "subnet-abcd0123",
  "InstanceId": "i-01234567",
  "PublicIp": "my-wordpress-site.com"
}
```

スキーマバージョン ID を決定します CloudFormation `DescribeType`。

では AWS Config、このリソース設定が受け入れられているかどうかを確認できます。コンプライアンスを評価するには、このリソースを使用して AWS Config ルールを記述します。

(オプション) 設定の記録を自動化するには、定期的または変更ベースの設定コレクターを実装します。