title: Deploying static site with s3 and cloudfront using python boto3
body: <p>Trying to automate the deployment of a static website using boto3.  I have a static website (angular/javascript/html) sitting in a bucket, and need to use the aws cloudfront CDN.  </p>
  
  <p>Anyway, looks like making the s3 bucket and copying in the html/js is working fine.  </p>
  
  <pre><code>import boto3
  cf = boto3.client('cloudfront')
  
  cf.create_distribution(DistributionConfig=dict(CallerReference='firstOne',
              Aliases = dict(Quantity=1, Items=['mydomain.com']),
              DefaultRootObject='index.html',
              Comment='Test distribution',
              Enabled=True,
              Origins = dict(
                  Quantity = 1, 
                  Items = [dict(
                      Id = '1',
                      DomainName='mydomain.com.s3.amazonaws.com')
                  ]),
              DefaultCacheBehavior = dict(
                  TargetOriginId = '1',
                  ViewerProtocolPolicy= 'redirect-to-https',
                  TrustedSigners = dict(Quantity=0, Enabled=False),
                  ForwardedValues=dict(
                      Cookies = {'Forward':'all'},
                      Headers = dict(Quantity=0),
                      QueryString=False,
                      QueryStringCacheKeys= dict(Quantity=0),
                      ),
                  MinTTL=1000)
              )
  )
  </code></pre>
  
  <p>When I try to create the cloudfront distribution, I get the following error:</p>
  
  <blockquote>
    <p>InvalidOrigin: An error occurred (InvalidOrigin) when calling the CreateDistribution operation: The specified origin server does not exist or is not valid.
    An error occurred (InvalidOrigin) when calling the CreateDistribution operation: The specified origin server does not exist or is not valid.</p>
  </blockquote>
  
  <p>Interestingly, it looks to be complaining about the origin, mydomain.com.s3.amazonaws.com,  however when I create a distribution for the s3 bucket in the web console, it has no problem with the same origin domain name. </p>
  
  <p>Update:
  I can get this to work with boto with the following, but would rather use boto3:</p>
  
  <pre><code>import boto
  c = boto.connect_cloudfront()
  origin = boto.cloudfront.origin.S3Origin('mydomain.com.s3.amazonaws.com')
  distro = c.create_distribution(origin=origin, enabled=False, comment='My new Distribution')
  </code></pre>