Slide 1

Slide 1 text

2021.05.27 @michimani210 URL Lambda@Edge CloudFront Functions [JAWS-UG #21] #jawsug_asa

Slide 2

Slide 2 text

# # AWS AWS CLI AWS Certificate Manager # : https://michimani.net / Yoshihiro Ito @michimani210

Slide 3

Slide 3 text

0. 1. URL 2. CloudFront Functions 3. Lambda@Edge 4. AWS CLI 5.

Slide 4

Slide 4 text

0.

Slide 5

Slide 5 text

CloudFront + S3 0. CloudFront S3 index.html about/index.html post/hoge/index.html post/fuga/index.html

Slide 6

Slide 6 text

Lambda@Edge 0. Lambda@Edge Viewer Request Viewer Response Origin Request Origin Response

Slide 7

Slide 7 text

Lambda@Edge 0. Lambda@Edge Viewer Request Viewer Response Origin Request Origin Response Viewer Request

Slide 8

Slide 8 text

1. URL

Slide 9

Slide 9 text

1. URL URL 1 URL S3 index.html /

Slide 10

Slide 10 text

1. URL : S3 CloudFront + S3 index.html https://michimani.net/about/index.html https://michimani.net/about/ 403

Slide 11

Slide 11 text

1. URL : S3 CloudFront + S3 index.html https://michimani.net/about/index.html https://michimani.net/about/ 403 index.html S3 about/index.html index.html http://michimani.net/

Slide 12

Slide 12 text

1. URL : index.html URL https://michimani.net/about/ https://michimani.net/about/index.html

Slide 13

Slide 13 text

1. URL : index.html URL https://michimani.net/about/ https://michimani.net/about/index.html 301 https://michimani.net/about/ HTTP/1.1 301 Found Location: https://michimani.net/about/

Slide 14

Slide 14 text

1. URL : / CloudFront + S3 / https://michimani.net/about/ https://michimani.net/about 403

Slide 15

Slide 15 text

1. URL : / CloudFront + S3 / https://michimani.net/about/ https://michimani.net/about 403 301 https://michimani.net/about/ HTTP/1.1 301 Found Location: https://michimani.net/about/ ( ) / http://michimani.net

Slide 16

Slide 16 text

1. URL URL https://michimani.net/about/index.html https://michimani.net/about/ https://michimani.net/about https://michimani.net/about/ 1 URL

Slide 17

Slide 17 text

2. CloudFront Functions

Slide 18

Slide 18 text

2. CloudFront Functions Lambda@Edge (13 ) CloudFront Functions CloudFront (215 ) Amazon CloudFront CloudFront Functions https://aws.amazon.com/jp/about-aws/whats-new/2021/05/cloudfront-functions/

Slide 19

Slide 19 text

2. CloudFront Functions Lambda@Edge ( ) () Origin CloudFront Functions Lambda@Edge JavaScript (ES 5.1 ) Node.js/Python 10 KB 1 MB (50 MB) 2 MB 128 MB (10 GB) 1ms 5 s (30 s)

Slide 20

Slide 20 text

2. CloudFront Functions Lambda@Edge ( ) () Origin SSR CloudFront Functions Lambda@Edge JavaScript (ES 5.1 ) Node.js/Python 10 KB 1 MB (50 MB) 2 MB 128 MB (10 GB) 1ms 5 s (30 s)

Slide 21

Slide 21 text

3. Lambda@Edge

Slide 22

Slide 22 text

3. Lambda@Edge 
 Node.js JavaScript 
 991.0 byte 
 2 MB 
 Lamba@Edge

Slide 23

Slide 23 text

3. Lambda@Edge : Lambda Build Duration ( ) Duration ( )

Slide 24

Slide 24 text

3. Lambda@Edge : Lambda Build Duration ( ) Duration ( ) 0.7333 ms

Slide 25

Slide 25 text

4. AWS CLI

Slide 26

Slide 26 text

4. AWS CLI CloudFront aws cloudfront ・create-function ・delete-function ・describe-function ・get-function ・list-functions ・publish-function ・test-function ・update-function v1 1.19.64 v2 2.2.2 (2021/05/27 06:30 JST) 1.19.81 2.2.6

Slide 27

Slide 27 text

4. AWS CLI 1. Function を作成 2. 作成した Function を確認 3. Function をテスト 4. Function を公開 5. Function を Distribution に紐付け 6. Function の状態を確認 ※このスライド内に記載しているコマンドは v1 での実行を想定しています

Slide 28

Slide 28 text

4. AWS CLI Function : Function (cf2.js)

Slide 29

Slide 29 text

4. AWS CLI Function : Function (cf2.js) Origin (S3)

Slide 30

Slide 30 text

4. AWS CLI Function : Function (cf2.js) Origin (S3) / index.html / Viewer 301 HTTP

Slide 31

Slide 31 text

4. AWS CLI Function : Function (cf2.js) Origin (S3) / index.html / Viewer 301 HTTP Viewer URI index.html Origin (S3)

Slide 32

Slide 32 text

4. AWS CLI : create-function 1. Functions

Slide 33

Slide 33 text

4. AWS CLI : create-function 1. Functions cloudfront-js-1.0

Slide 34

Slide 34 text

4. AWS CLI : describe-function 2. Function

Slide 35

Slide 35 text

4. AWS CLI : describe-function 2. Function

Slide 36

Slide 36 text

4. AWS CLI : (test-event.json)

Slide 37

Slide 37 text

4. AWS CLI : (test-event.json) /about /about/ 301

Slide 38

Slide 38 text

4. AWS CLI : test-function 3. Function

Slide 39

Slide 39 text

4. AWS CLI : test-function 3. Function —if-match ETag describe-function ETag

Slide 40

Slide 40 text

4. AWS CLI : test-function 3. Function —if-match ETag describe-function ETag TestResult.FunctionOutput JSON

Slide 41

Slide 41 text

4. AWS CLI : test-function 3. Function —if-match ETag describe-function ETag TestResult.FunctionOutput JSON jq

Slide 42

Slide 42 text

4. AWS CLI : test-function 3. Function

Slide 43

Slide 43 text

4. AWS CLI : publish-function 4. Function

Slide 44

Slide 44 text

4. AWS CLI : publish-function 4. Function —if-match ETag describe-function ETag

Slide 45

Slide 45 text

4. AWS CLI 5. Function Distribution 新しいコマンドを使うのではなく、update-distribution i. describe-distribution ii. FunctionAssociations iii. update-distribution

Slide 46

Slide 46 text

4. AWS CLI 5. Function Distribution :

Slide 47

Slide 47 text

4. AWS CLI 5. Function Distribution : Lambda@Edge

Slide 48

Slide 48 text

4. AWS CLI 5. Function Distribution :

Slide 49

Slide 49 text

4. AWS CLI 5. Function Distribution : Function ARN aws cloudfront describe-function \ —name “${FN_NAME}” \ —query “FunctionSummary.FunctionMetadata.FunctionARN” \ —output text

Slide 50

Slide 50 text

4. AWS CLI 5. Function Distribution :

Slide 51

Slide 51 text

4. AWS CLI 6. Function

Slide 52

Slide 52 text

4. AWS CLI 6. Function DEPLOYED OK

Slide 53

Slide 53 text

5. URL CloudFront CloudFront Functions Lambda@Edge Lambda@Edge AWS CLI # CloudFront Functions AWS CLI URL Lambda@Edge https://michimani.net/post/aws-normalize-url-using-cloudfront-functions/ CloudFront Functions https://michimani.net/post/aws-about-runtime-of-cloudfront-functions/

Slide 54

Slide 54 text

#jawsug_asa