Cloud Control APIリソースタイプの使用 - クラウドコントロール API

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

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

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

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

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

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

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

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

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

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

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

注記

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

リソースタイプの管理オプションの詳細については、AWS CloudFormation 「 ユーザーガイド」の「 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 リソースオペレーションをサポートしている AWS パブリックAPIリソースタイプのリストについては、「」を参照してください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
特定のリソースタイプが APIを使用して Cloud Control をサポートしているかどうかの判断 AWS CLI
  • describe-type コマンドを使用して、リソースタイプの詳細を返します。

    FULLY_MUTABLE または ProvisioningType のいずれかを持つリソースタイプは、Cloud Control APIリソースオペレーションIMMUTABLEをサポートします。

    次の例では、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

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

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

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" ] } }