リソースタイプの使用 - Cloud Control API

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

リソースタイプの使用

でリソースタイプを使用するには AWS Cloud Control API、そのリソースタイプが に存在し、アクティブ化されている必要があります AWS アカウント。サポートされている AWS リソースタイプはパブリックであり、常にアクティブ化されています。サードパーティパブリッシャーが提供するパブリックリソースタイプをアクティブ化することもできます。これは、 AWS CloudFormation 拡張レジストリを介して、およびその他のリソースタイプ管理タスクを実行します。

拡張レジストリは、アカウントで使用できるリソースタイプに関する詳細情報 AWS CloudFormation を含む の機能です。これには、 AWSが公開したリソースタイプだけでなく、サードパーティが公開したリソースタイプも含まれる場合があります。レジストリを使用して、以下を含む、アカウントのリソースタイプの管理を行うことができます。

  • 利用可能でアクティブ化されたリソースタイプを表示する。

  • アカウントで使用するためのプライベートリソースタイプを登録する。

  • サードパーティのパブリックリソースタイプをアクティブ化する。

  • アカウントのリソースタイプのデフォルトバージョンを設定するなど、リソースタイプのバージョンを管理する。

  • リソースタイプのアカウントレベル設定プロパティを設定する (存在する場合)。

AWS CloudFormation レジストリを使用して、リソースタイプのスキーマを表示することもできます。これには、プロパティ定義やアクセス許可の要件など、Cloud Control API でリソースを使用する方法に関する重要な情報が含まれています。詳細については、「リソースタイプのスキーマの表示」を参照してください。

レジストリは、 API CloudFormationに加えて CloudFormation コンソールから使用できます。

注記

CloudFormation レジストリにリストされているすべてのリソースタイプが現在 Cloud Control API をサポートしているわけではありません。詳細については、「リソースタイプが Cloud Control API をサポートしているかどうかの判断」を参照してください。

リソースタイプの管理オプションの詳細については、「 ユーザーガイド」の「 CloudFormation レジストリの使用AWS CloudFormation 」を参照してください。

AWS CloudFormation API を使用したリソースタイプの管理

AWS CloudFormation コンソールから拡張レジストリにアクセスするだけでなく、 AWS CloudFormation API に含まれるオペレーションを使用して、アカウントのリソースタイプを識別および管理できます。以下の表は、アカウントで使用できるリソースタイプの検出、アクティブ化、設定を行うために使用できる API オペレーションの一覧です。

CloudFormation API オペレーション AWS CLI コマンド 説明

DescribeType

describe-type

リソースタイプに関する詳細情報を返します。

ListTypes

list-types

リソースタイプに関する概要情報を返します。

ActivateType

activate-type

サードパーティのパブリックリソースタイプをアクティブ化し、アカウントで使用できるようにします。

DeactivateType

deactivate-type

アカウント内のサードパーティのパブリックリソースタイプを非アクティブ化します。

ListTypeVersions

list-type-versions

リソースタイプのバージョンに関する概要情報を返します。

SetTypeDefaultVersion

set-type-default-version

リソースタイプのデフォルトバージョンを指定します。

BatchDescribeTypeConfigurations

batch-describe-type-configurations

指定されたリソースタイプの設定データを返します。

SetTypeConfiguration

set-type-configuration

アカウント内のリソースタイプの設定データを指定します。

RegisterType

register-type

サードパーティのプライベートリソースを登録し、アカウントで使用できるようにします。

DeregisterType

deregister-type

サードパーティのプライベートリソースの登録を解除し、アカウントでのアクティブな使用を停止します。

リソースタイプが Cloud Control API をサポートしているかどうかの判断

デフォルトでは、 CloudFormation レジストリで公開されたリソースタイプは、Cloud Control API リソースオペレーションを自動的にサポートします。これには、サードパーティのパブリックリソースタイプに加えて、プライベートリソースタイプも含まれます。ただし、 AWS CloudFormation レジストリには、プロビジョニング不可能な に分類されるレガシーリソースタイプも含まれています。これらのリソースタイプは、現在のところ Cloud Control API をサポートしていないため、リソースオペレーションには使用できません。

現在 Cloud Control API リソースオペレーションをサポートしている AWS パブリックリソースタイプのリストについては、「」を参照してくださいCloud Control API をサポートするリソースタイプ

AWS Command Line Interface (AWS CLI) を使用して、サポートされているリソースタイプのリストを生成したり、特定のリソースタイプが Cloud Control API をサポートしているかどうかを確認したりすることもできます。

を使用したサポートされているリソースのリストの生成 AWS CLI
  • list-types コマンドを次のパラメータと共に使用します。

    • type – リソースタイプだけを選択するには RESOURCE を指定します。

    • visibility — パブリックリソースを選択するには PUBLIC を指定し、プライベートリソースを選択するには PRIVATE を指定します。

    • provisioning-type — プロビジョニング可能なリソースタイプだけを選択するには FULLY_MUTABLE または IMMUTABLE を指定します。

    例えば、次のコマンドは、 CloudFormation レジストリから完全に変更可能な最初の 100 個のパブリックリソースタイプを選択します。

    $ aws cloudformation list-types \ --type RESOURCE --visibility PUBLIC \ --provisioning-type FULLY_MUTABLE --max-results 100
を使用して特定のリソースタイプが Cloud Control API をサポートしているかどうかの確認 AWS CLI
  • describe-type コマンドを使用して、リソースタイプの詳細を返します。

    ProvisioningTypeFULLY_MUTABLE または IMMUTABLE のリソースタイプは、Cloud Control API のリソースオペレーションをサポートします。

    次の例では、AWS::Logs::LogGroup リソースタイプの詳細が返されます。

    $ aws cloudformation describe-type \ --type RESOURCE --type-name AWS::Logs::LogGroup

リソースタイプのスキーマの表示

リソースの作成および更新オペレーションでは、設定するリソースプロパティとその値を指定します。リソースのプロパティはリソースタイプスキーマで定義されます。これには、データタイプ、そのプロパティが必須かどうか、有効な値、プロパティのその他の制約が含まれます。

CloudFormation コンソールまたは を使用して、リソースタイプのスキーマを表示できます AWS CLI。さらに、「AWS CloudFormation ユーザーガイド」には、 AWS が公開している使用可能な各リソースタイプのリファレンストピックが記載されています。リソースタイプのプロパティの詳細と使用例については、「AWS リソースおよびプロパティタイプのリファレンス」セクションの該当するトピックを参照してください。

注記

「AWS CloudFormation ユーザーガイド」に記載されているすべてのリソースタイプが Cloud Control API で使用できるわけではありません。リソースタイプが使用可能かどうかを判断するには、「」を参照してくださいCloud Control API をサポートするリソースタイプ

リソースタイプスキーマの作成方法を定義するリソースタイプ定義スキーマの詳細については、「 拡張開発用 CLI ユーザーガイド」の「リソースタイプ定義スキーマ」を参照してください。 CloudFormation

現在のプロパティ値を含む既存のリソースの現在の状態を表示する方法については、「」を参照してくださいリソースの現在の状態の読み取り

AWS CloudFormation コンソールを使用したリソースタイプスキーマの表示

  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソールを開きます。

  2. CloudFormation ナビゲーションペインのレジストリ で、アクティブ化された拡張 を選択します。

  3. [リソースタイプ] タブで、リソーススキーマを表示するリソースタイプを選択します。

    CloudFormation は、リソースタイプの詳細ページを表示します。リソーススキーマは [スキーマ] タブに表示されます。

を使用したリソースタイプスキーマの表示 AWS CLI

  • describe-type を実行します。

    返される出力では、Schema 構造にリソースタイプスキーマが含まれています。

    例えば、次のコマンドは、AWS::Logs::LogGroup リソースタイプに関する情報を返します。

    $ aws cloudformation describe-type \ --type RESOURCE --type-name AWS::Logs::LogGroup

リソースプロパティ属性の表示

リソースタイププロパティはリソースタイプスキーマの properties セクションで定義されます。これには、そのプロパティのデータタイプ、プロパティが必須かどうか、許容値や必須パターンなどの制約が含まれます。

さらに、リソースレベルで設定される特定の属性によって、プロパティをいつ指定できるか、または指定できるかどうかが決まります。これには、以下が含まれます。

  • required として定義されたプロパティは、リソース作成時に目的の状態で指定する必要があります。

  • createOnlyProperties として定義されたプロパティはユーザーが設定できますが、リソースの作成中に限られます。

  • readOnlyProperties として定義されたプロパティは、ユーザーが設定することはできません。

  • writeOnlyProperties として定義されたプロパティは、リソースの作成または更新時にユーザーが指定できますが、読み取りまたはリストのリクエスト時に返すことはできません。

サポートされているリソースオペレーションの表示

リソースタイプがサポートするオペレーションは、そのリソースタイプスキーマの handlers セクションを参照することで確認できます。リソースタイプがオペレーションをサポートしている場合は、handlers セクションにリストされます。そこには、ハンドラーが必要とする権限をリストする permissions 要素も含まれます。

例えば、以下は AWS::Logs::LogGroup リソースタイプのリソースタイプスキーマの handlers セクションです。このセクションは、このリソースタイプが 5 つのリソースオペレーションすべてをサポートしていることを示し、各ハンドラーが必要とする権限をリストしています。

"handlers": { "create": { "permissions": [ "logs:DescribeLogGroups", "logs:CreateLogGroup", "logs:PutRetentionPolicy" ] }, "read": { "permissions": [ "logs:DescribeLogGroups" ] }, "update": { "permissions": [ "logs:DescribeLogGroups", "logs:AssociateKmsKey", "logs:DisassociateKmsKey", "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy" ] }, "delete": { "permissions": [ "logs:DescribeLogGroups", "logs:DeleteLogGroup" ] }, "list": { "permissions": [ "logs:DescribeLogGroups" ] } }