LoginSignup
0
0

More than 5 years have passed since last update.

JavaScriptでCloudFrontをHTTP->HTTPSリダイレクトに対応させる

Last updated at Posted at 2016-06-20

流れとしては以下の通り。

  • CloudFrontの現在の設定情報を取得(getDistributionConfig)
  • CacheBehaviorsの全アイテムで、ViewerProtocolPolicyを「redirect-to-https」に変更
  • 変更したDistributionConfigを使ってCloudFrontを更新(updateDistribution)
import { CloudFront } from 'aws-sdk'

export const enableHttpsRedirection = async(distributionId: string) => {
  const client = new CloudFront()
  const { DistributionConfig, ETag } = await client.getDistributionConfig({
    Id: distributionId
  }).promise()
  // config取れてないのでエラーをなげる
  if (!DistributionConfig) throw new Error('No DistributionConfig')
  // cache behaviorsがないなら何もしない
  if (!DistributionConfig.CacheBehaviors || !DistributionConfig.CacheBehaviors.Items) return true
  DistributionConfig.CacheBehaviors.Items = DistributionConfig.CacheBehaviors.Items.map(
    (Item) => {
        Item.ViewerProtocolPolicy = 'redirect-to-https';
        return Item;
    }
  );
  const updateParams = {
      DistributionConfig: DistributionConfig,
      Id: distributionId,
      IfMatch: ETag
  }
  return client.updateDistribution(updateParams).promise()
}

同じ要領で設定の追加とか変更もできるのでぜひ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0