Zenn
🍒

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

ログインするとコメントできます