AWS CDK
イシュー
- CICD環境構築をプログラミングできる aws-cdk について調べる
参考
- 「AWS Cloud Development Kit」をAWSが正式リリース、インフラとアプリを同時に管理:インフラをコードとして定義できる - @IT
- AWS クラウド開発キット (CDK) – TypeScript と Python 用がご利用可能に | Amazon Web Services ブログ
- GitHub - aws/aws-cdk: The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code
- [AWS CDK] CodePipelineのソース元を色々指定してみました(CodeCommitとか、Githubとか、S3 Bucketとか、BacklogのGitとか) | DevelopersIO
- backlogをsourceにする例
- [Cloud Development Kit ] LINEアプリのサンプルをCDKで書き直して見て、その凄さを実感しました | DevelopersIO
- Let's CDK
- [AWS CDK] スタック名に本番環境と開発環境の名前を含めて、それぞれデプロイしてみた | DevelopersIO
- Let's CDK 2 : 簡単なLambdaをつくるサンプル
- AWS CDK(Cloud Development Kit )で、CodePipeline、CodeCommit、CodeBuildを使用した開発環境を作ってみました | DevelopersIO
- Let's CDK 3
- codecommit コマンド
- CDK | 特集カテゴリー | DevelopersIO
- AWS CDK (AWS Cloud Development Kit) がとても便利そうなので触ってみた - YOMON8.NET
- [AWS CDK]S3へローカルファイルをデプロイしてWebサイトを公開する | DevelopersIO
- AWSCDKがGAになったのでAPIGateway+Lambdaをデプロイしてみる - Qiita
- 【AWS CDK】CDK標準の3種類のConstructを使って、AWSリソースをデプロイしてみた | DevelopersIO
はじめてのCDK deploy
$ cdk deploy npx: 1個のパッケージを10.022秒でインストールしました。 Path must be a string. Received undefined null This deployment will make potentially sensitive changes according to your current security approval level (--require-approval broadening). Please confirm you intend to make the following modifications: IAM Statement Changes ┌───┬─────────────────────────┬────────┬─────────────────────────┬─────────────────────────┬──────────────────────────┐ │ │ Resource │ Effect │ Action │ Principal │ Condition │ ├───┼─────────────────────────┼────────┼─────────────────────────┼─────────────────────────┼──────────────────────────┤ │ + │ ${multi-sample-Lambda.A │ Allow │ lambda:InvokeFunction │ Service:apigateway.amaz │ "ArnLike": { │ │ │ rn} │ │ │ onaws.com │ "AWS:SourceArn": "arn: │ │ │ │ │ │ │ ${AWS::Partition}:execut │ │ │ │ │ │ │ e-api:${AWS::Region}:${A │ │ │ │ │ │ │ WS::AccountId}:${multisa │ │ │ │ │ │ │ mpleapiF1330A3B}/${multi │ │ │ │ │ │ │ -sample-api/DeploymentSt │ │ │ │ │ │ │ age.prod}/GET/message/{i │ │ │ │ │ │ │ d}" │ │ │ │ │ │ │ } │ │ + │ ${multi-sample-Lambda.A │ Allow │ lambda:InvokeFunction │ Service:apigateway.amaz │ "ArnLike": { │ │ │ rn} │ │ │ onaws.com │ "AWS:SourceArn": "arn: │ │ │ │ │ │ │ ${AWS::Partition}:execut │ │ │ │ │ │ │ e-api:${AWS::Region}:${A │ │ │ │ │ │ │ WS::AccountId}:${multisa │ │ │ │ │ │ │ mpleapiF1330A3B}/test-in │ │ │ │ │ │ │ voke-stage/GET/message/{ │ │ │ │ │ │ │ id}" │ │ │ │ │ │ │ } │ ├───┼─────────────────────────┼────────┼─────────────────────────┼─────────────────────────┼──────────────────────────┤ │ + │ ${multi-sample-Lambda/S │ Allow │ sts:AssumeRole │ Service:lambda.amazonaw │ │ │ │ erviceRole.Arn} │ │ │ s.com │ │ ├───┼─────────────────────────┼────────┼─────────────────────────┼─────────────────────────┼──────────────────────────┤ │ + │ ${multi-sample-api/Clou │ Allow │ sts:AssumeRole │ Service:apigateway.amaz │ │ │ │ dWatchRole.Arn} │ │ │ onaws.com │ │ └───┴─────────────────────────┴────────┴─────────────────────────┴─────────────────────────┴──────────────────────────┘ IAM Policy Changes ┌───┬────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────┐ │ │ Resource │ Managed Policy ARN │ ├───┼────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤ │ + │ ${multi-sample-Lambda/ServiceRole} │ arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecution │ │ │ │ Role │ ├───┼────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤ │ + │ ${multi-sample-api/CloudWatchRole} │ arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonAPIGatewayPushToC │ │ │ │ loudWatchLogs │ └───┴────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┘ (NOTE: There may be security-related changes not in this list. See http://bit.ly/cdk-2EhF7Np) Do you wish to deploy these changes (y/n)? y AwscdkMultiStackSampleStack: deploying... ❌ AwscdkMultiStackSampleStack failed: Error: This stack uses assets, so the toolkit stack must be deployed to the envi ronment (Run "cdk bootstrap aws://unknown-account/unknown-region") This stack uses assets, so the toolkit stack must be deployed to the environment (Run "cdk bootstrap aws://unknown-accou nt/unknown-region") $
Tutorial
- AWS Cloud Developement Kit : TypeScript Tutorial編 - Qiita
- AWS CDKなら、たった1行で高可用なVPCを構築できる - Qiita
- What Is the AWS CDK? - AWS Cloud Development Kit (AWS CDK)
- Creating a Serverless Application Using the AWS CDK - AWS Cloud Development Kit (AWS CDK)
MyWidgetService
resources/widgets.js
- (API Gateway上で動く)lambda
lib/widget_service.ts
- Cloudformationの定義
lib/my_widget_service-stack.ts
- 上で定義したCloudformationを呼び出し
App/Stack/Construct
- 【セッションレポート】 ソフトウェア開発者のためのAWS環境構築フレームワーク AWS Cloud Development Kit (CDK) 【#AWSDevDay】 | DevelopersIO
- AWS-CDK for TypeScriptで色んなサービスをデプロイする - Qiita