AWS CloudFormation パブリックレジストリのリソースを使用する - AWS クラウド開発キット (AWS CDK) v2

これは AWS CDK v2 デベロッパーガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。

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

AWS CloudFormation パブリックレジストリのリソースを使用する

AWS CloudFormation パブリックレジストリを使用すると、 AWS アカウントで使用できるリソース、モジュール、フックなど、パブリックとプライベートの両方の拡張機能を管理できます。CfnResource コンストラクトを使用して、 AWS Cloud Development Kit (AWS CDK) アプリケーションでパブリックリソース拡張機能を使用できます。

AWS CloudFormation パブリックレジストリの詳細については、AWS CloudFormation ユーザーガイドの「CloudFormation レジストリの使用」を参照してください。 AWS CloudFormation

によって公開されたすべてのパブリック拡張機能 AWS は、ユーザー側のアクションなしで、すべてのリージョンのすべてのアカウントで使用できます。ただし、使用する各アカウントおよびリージョンで、使用する各サードパーティーの拡張機能を有効にする必要があります。

注記

サードパーティーのリソースタイプで AWS CloudFormation を使用すると、料金が発生します。料金は、1 ヶ月あたりに実行するハンドラーオペレーションの数およびハンドラーオペレーション期間に基づきます。詳細については、「CloudFormation の料金」を参照してください。

パブリック拡張機能の詳細については、CloudFormation ユーザーガイド」の「CloudFormation でのパブリック拡張機能の使用 AWS CloudFormation」を参照してください。

アカウントおよびリージョンでサードパーティーリソースをアクティブ化する

によって発行された拡張機能はアクティベーションを必要とし AWS ません。すべてのアカウントおよびリージョンで常に利用できます。サードパーティー拡張機能は、 AWS マネジメントコンソール、 コマンドラインインターフェイス、または特別な AWS CloudFormation AWS リソースをデプロイすることでアクティブ化できます。

AWS マネジメントコンソールを使用してサードパーティー拡張機能をアクティブ化するか、利用可能なリソースを確認するには
cfn 拡張機能をアクティブ化する
  1. 拡張機能を使用する AWS アカウントにサインインし、使用するリージョンに切り替えます。

  2. [サービス] メニューを介して CloudFormation コンソールに移動します。

  3. ナビゲーションバーで [パブリック拡張機能] を選択し、[パブリッシャー] の下にある [サードパーティー] のラジオボタンをアクティブ化します。利用可能なサードパーティーパブリック拡張機能のリストが表示されます。( によって公開されたパブリック拡張機能のリスト AWS を表示することもできますが AWS、アクティブ化する必要はありません)。

  4. リストを参照してアクティブ化する拡張機能を見つけます。または、これを検索し、拡張機能のカードの右上隅にあるラジオボタンを有効にします。

  5. リストの上部にある [アクティブ化] ボタンを選択し、選択した拡張機能をアクティブ化します。拡張機能のアクティブ化ページが表示されます。

  6. アクティブ化ページで、拡張機能のデフォルト名を上書きし、実行ロールとログ記録設定を指定できます。新しいバージョンがリリースされたときに拡張機能を自動的に更新するかどうかを選択することもできます。これらのオプションを任意に設定したら、ページの下部にある [拡張機能のアクティブ化] を選択します。

CLI AWS を使用してサードパーティー拡張機能をアクティブ化するには
  • activate-type コマンドを使用します。指示に従って使用するカスタムタイプの ARN を置き換えます。

    以下に例を示します。

    aws cloudformation activate-type --public-type-arn <public_extension_ARN> --auto-update-activated
CloudFormation または CDK を使用してサードパーティー拡張機能をアクティブ化するには
  1. AWS::CloudFormation::TypeActivation タイプのリソースをデプロイし、次のプロパティを指定します。

    1. TypeName - AWSQS::EKS::Cluster など、タイプの名前。

    2. MajorVersion - 使用する拡張機能のメジャーバージョン番号。最新バージョンが必要な場合は省略します。

    3. AutoUpdate - パブリッシャーによって新しいマイナーバージョンがリリースされたときにこの拡張機能を自動的に更新するかどうか。(メジャーバージョンの更新プログラムでは、MajorVersion プロパティを明示的に変更する必要があります)

    4. ExecutionRoleArn - この拡張機能を実行する IAM ロールの ARN。

    5. LoggingConfig - 拡張機能のログ記録設定。

    CfnResource コンストラクトを使用して CDK によって TypeActivation リソースをデプロイできます。次のセクションで実際の拡張機能について示されます。

AWS CloudFormation パブリックレジストリから CDK アプリにリソースを追加する

CfnResource コンストラクトを使用して、 AWS CloudFormation パブリックレジストリのリソースをアプリケーションに含めます。このコンストラクトは CDK の aws-cdk-libモジュールにあります。

たとえば、 AWS CDK アプリケーションMY::S5::UltimateBucketで使用する という名前のパブリックリソースがあるとします。このリソースは、バケット名という 1 つのプロパティを使用します。対応する CfnResource インスタンス化は次のようになります。

TypeScript
const ubucket = new CfnResource(this, 'MyUltimateBucket', { type: 'MY::S5::UltimateBucket::MODULE', properties: { BucketName: 'UltimateBucket' } });
JavaScript
const ubucket = new CfnResource(this, 'MyUltimateBucket', { type: 'MY::S5::UltimateBucket::MODULE', properties: { BucketName: 'UltimateBucket' } });
Python
ubucket = CfnResource(self, "MyUltimateBucket", type="MY::S5::UltimateBucket::MODULE", properties=dict( BucketName="UltimateBucket"))
Java
CfnResource.Builder.create(this, "MyUltimateBucket") .type("MY::S5::UltimateBucket::MODULE") .properties(java.util.Map.of( // Map.of requires Java 9+ "BucketName", "UltimateBucket")) .build();
C#
new CfnResource(this, "MyUltimateBucket", new CfnResourceProps { Type = "MY::S5::UltimateBucket::MODULE", Properties = new Dictionary<string, object> { ["BucketName"] = "UltimateBucket" } });