🍒
CodeCatalyst + Amplify Gen2 デプロイWorkflow(SPA/CSR/SSG) in 東京リージョン
前提条件(2025-03-26)
- CodeCatalystが利用可能なリージョンは以下2つ
1. us-west-2
2. eu-west-1 - AmplifyとCodeCatalystはGit連携不可能
- CodeCatalystからAmplifyHostingへのSSRアプリケーションのデプロイは不可能(デプロイはzipの手動展開と同等)
ymlコード
CDKBootstrap
Name: { WorkflowName }
SchemaVersion: "1.0"
Actions:
CDKBootstrap:
Identifier: aws/cdk-bootstrap@v2
Environment:
Name: { AWSAccountEnvironment }
Inputs:
Sources:
- WorkflowSource
Compute:
Type: EC2
Configuration:
Region: ap-northeast-1
CdkCliVersion: v2.0
BuildAndDeployToAmplifyHosting
Name: { WorkflowName }
SchemaVersion: "1.0"
Actions:
Build:
Identifier: aws/build@v1.0.0
Environment:
Name: { AWSAccountEnvironment }
Inputs:
Sources:
- WorkflowSource
Variables:
- Name: BRANCH_NAME
Value: { AmplifyHosting Branch Name }
- Name: AMPLIFY_APP_ID
Value: { AmplifyAppID }
- Name: AWS_REGION
Value: ap-northeast-1
Outputs:
Artifacts:
- Name: build
Files:
- build/**/*
Configuration:
Steps:
- Run: export AWS_REGION=$AWS_REGION
- Run: export CI=1
- Run: npm install
- Run: npx ampx pipeline-deploy --app-id $AMPLIFY_APP_ID --branch $BRANCH_NAME
- Run: npx ampx generate outputs --app-id $AMPLIFY_APP_ID --branch $BRANCH_NAME
- Run: npm run build
Container:
Registry: CODECATALYST
Image: CodeCatalystLinux_x86_64:2024_03
Compute:
Type: EC2
DeployToAmplifyHosting:
Identifier: codecatalyst-labs/deploy-to-amplify-hosting@v1
Environment:
Name: { AWSAccountEnvironment }
Inputs:
Artifacts:
- build
Variables:
- Name: AMPLIFY_APP_ID
Value: { AmplifyAppID }
- Name: AWS_REGION
Value: ap-northeast-1
- Name: BUILD_PATH
Value: build
Compute:
Type: EC2
Configuration:
Wait: true
AWSRegion: $AWS_REGION
AppId: $AMPLIFY_APP_ID
CreateBranch: true
AmplifyBranchName: { AmplifyHosting Branch Name }
Path: $BUILD_PATH
DependsOn:
- Build
感想
Amplify Gen2 でデプロイするインフラリソースのリージョン指定に関して、環境変数で制御することでなんとか東京リージョンでインフラリソースをデプロイできた。
CodeCatalystが、AmplifyとのGit連携と東京リージョンでの利用を対応してくれると、色々とやりやすくなると思う。
もっと良い方法や間違いなどあれば教えてください!
Discussion