AWS CDKのaws-ecs-patternsでIAMロールを指定する

カテゴリ: aws | タグ: , ,

AWSのCDKのv2では、aws_ecs_patternsというモノが、aws-cdk-libに定義されています。

このaws_ecs_patternsを利用すると、以下のような感じでecsでよく利用される構成を簡単に作ることができます。

import {aws_ecs_patterns as ecsp} from 'aws-cdk-lib';

export class CdkStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    const ecsPatternsProps = ...
    new ecsp.ApplicationLoadBalancedFargateService(this, 'AppServer', ecsPatternsProps);
  }

}

ApplicationLoadBalancedFargateService()でタスクに対するIAMロールを指定する方法を確認しました。

確認結果

ApplicationLoadBalancedFargateServiceのコンストラクタ

ApplicationLoadBalancedFargateServiceのコンストラクタは、第三引数でpropsを渡すことができる。このpropsはApplicationLoadBalancedFargateServiceProps型をしている。

export declare class ApplicationLoadBalancedFargateService extends ApplicationLoadBalancedServiceBase {
    constructor(scope: Construct, id: string, props?: ApplicationLoadBalancedFargateServiceProps);
    ...

ApplicationLoadBalancedFargateServiceのコンストラクタ引数

ApplicationLoadBalancedFargateServiceProps

このApplicationLoadBalancedFargateServicePropsには継承元としてApplicationLoadBalancedServiceBasePropsが指定されている

export interface ApplicationLoadBalancedFargateServiceProps extends ApplicationLoadBalancedServiceBaseProps {
    ...

ApplicationLoadBalancedFargateServicePropsの継承元

ApplicationLoadBalancedServiceBasePropsにはtaskImageOptionsのフィールドがある
このフィールドは、ApplicationLoadBalancedTaskImageOptionsの型を持つ。

export interface ApplicationLoadBalancedServiceBaseProps {
    /**
     * The properties required to create a new task definition. TaskDefinition or TaskImageOptions must be specified, but not both.
     *
     * @default none
     */
    readonly taskImageOptions?: ApplicationLoadBalancedTaskImageOptions;
    ...

taskImageOptionsの定義

ApplicationLoadBalancedTaskImageOptionsは、executionRoletaskRoleのロール情報を持つ

export interface ApplicationLoadBalancedTaskImageOptions {
    /**
     * The name of the task execution IAM role that grants the Amazon ECS container agent permission to call AWS APIs on your behalf.
     *
     * @default - No value
     */
    readonly executionRole?: IRole;

    /**
     * The name of the task IAM role that grants containers in the task permission to call AWS APIs on your behalf.
     *
     * @default - A task role is automatically created for you.
     */
    readonly taskRole?: IRole;
    ...

Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。