GAされたのは嬉しいのですが、やはりメジャーアップデートは破壊的変更が入ってます。
ということで、今やってるアプグレ作業を随時メモしていきます。
Version
- Before: 0.23.0
- After: 1.1.0
@aws-cdk/cdk -> @aws-cdk/coreに変更
@aws-cdk/cdkは1系がアップされていません。
@aws-cdk/coreをインストールして、import / requireしている部分を書き換えてください。
$ yarn add -D @aws-cdk/core
$ yarn remove @aws-cdk/cdk
@aws-cdk/cdkのgetContext
を@aws-cdk/coreのtryGetContext
に変更
@aws-cdk/coreに変えると、getContext
でコンパイルエラーが出ます。
これはtryGetContext
に名前が変わっているからです。
@aws-cdk/iamはコンストラクタで定義に
Before
new IAM.PolicyStatement().allow()
.addActions(
"arn:aws:dynamodb:us-east-1:0000000000:table/hoge*"
)
.addResources(
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:UpdateItem"
)
After
new IAM.PolicyStatement({
resources: [
"arn:aws:dynamodb:us-east-1:0000000000:table/hoge*"
],
actions: [
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:UpdateItem"
]
})
@aws-cdk/aws-appsyncのCdnGraphQLApiのattributesが変わっている
Before
const api: AppSync.CfnGraphQlApi = ...
const apiId = api.graphQLApiApiId
After
const api: AppSync.CfnGraphQlApi = ...
const apiId = api.attrApiId
bin/aws-cdk.tsでrunする必要がなくなった
cdk.App
をrunする必要がありましたが、不要になりました。
app.run()
を残していると怒られます。
Before
# !/usr/bin/env node
import 'source-map-support/register';
import cdk = require('@aws-cdk/core');
import { Cdk1Stack } from '../lib/cdk-1-stack';
const app = new cdk.App();
new Cdk1Stack(app, 'Cdk1Stack');
app.run()
After
# !/usr/bin/env node
import 'source-map-support/register';
import cdk = require('@aws-cdk/core');
import { Cdk1Stack } from '../lib/cdk-1-stack';
const app = new cdk.App();
new Cdk1Stack(app, 'Cdk1Stack');
IAM.Roleに擬似パラメーターがデフォルトで入る(っぽい)
const serviceRole = new IAM.Role(stack, `${name}DynamoDBRole`, {
assumedBy: new IAM.ServicePrincipal('appsync.amazonaws.com'),
path: '/service-role/'
})
特に変更していなかったのですが、Principalで擬似パラメーターが入るように変わってました。
IAM Statement Changes
┌───┬────────────────────────────────────────────────┬────────┬────────────────┬───────────────────────────────────┬───────────┐
│ │ Resource │ Effect │ Action │ Principal │ Condition │
├───┼────────────────────────────────────────────────┼────────┼────────────────┼───────────────────────────────────┼───────────┤
│ - │ ${Shifter-graphql-developmentDynamoDBRole.Arn} │ Allow │ sts:AssumeRole │ Service:appsync.amazonaws.com │ │
├───┼────────────────────────────────────────────────┼────────┼────────────────┼───────────────────────────────────┼───────────┤
│ + │ ${Shifter-graphql-developmentDynamoDBRole.Arn} │ Allow │ sts:AssumeRole │ Service:appsync.${AWS::URLSuffix} │ │
└───┴────────────────────────────────────────────────┴────────┴────────────────┴───────────────────────────────────┴───────────┘
(NOTE: There may be security-related changes not in this list. See http://bit.ly/cdk-2EhF7Np)
cdk.outというディレクトリが作られる
パット見た感じ、traceやCloudFormationのJSONなどが吐き出されている様子です。
.gitignoreしておいたほうが良さそう。