diff --git a/docz/docs/03-demos/30-cloud/11-aws.md b/docz/docs/03-demos/30-cloud/11-aws.md index eec2965..fa233fe 100644 --- a/docz/docs/03-demos/30-cloud/11-aws.md +++ b/docz/docs/03-demos/30-cloud/11-aws.md @@ -33,7 +33,7 @@ will be available in the future. :::note Tested Deployments -This demo was last tested on 2023 October 01. +This demo was last tested on 2024 June 13. ::: @@ -234,63 +234,70 @@ free requests per month and 400 thousand GB-seconds of compute resources. #### Create Project ZIP -1) Create a new folder and download [`index.js`](pathname:///aws/index.js): +1) Create a new project folder: ```bash mkdir -p SheetJSLambda cd SheetJSLambda +``` + +2) Download [`index.js`](pathname:///aws/index.js): + +```bash curl -LO https://docs.sheetjs.com/aws/index.js ``` -2) Install dependencies in the project directory; +3) Install the SheetJS NodeJS module and `busboy` dependency: {`\ mkdir -p node_modules npm i https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz busboy`} -3) Create a .zip package of the contents of the folder: +4) Create a .zip package of the contents of the folder: ```bash -yes | zip -c ../SheetJSLambda.zip -r . +zip -c ../SheetJSLambda.zip -r . ``` #### Lambda Setup -4) Sign into the [AWS Management Console](https://aws.amazon.com/console/) with +5) Sign into the [AWS Management Console](https://aws.amazon.com/console/) with a root user account. -5) Type "Lambda" in the top search box and click Lambda (under Services). +6) Type "Lambda" in the top search box and click Lambda (under Services). -6) Open "Functions" in the left sidebar. +![AWS search for "Lambda"](pathname:///aws/lambda.png) + +7) Open "Functions" in the left sidebar. If the left sidebar is not open, click the `≡` icon in the left edge of the page. -7) Click the "Create function" button in the main panel. +8) Click the "Create function" button in the main panel. -8) Select the following options: +9) Select the following options: - In the top list, select "Author from scratch" (default choice) - Type a memorable "Function Name" ("SheetJSLambda" when last tested) - In the "Runtime" dropdown, look for the "Latest supported" section and select - "Node.js" ("Node.js 18.x" when last tested) + "Node.js" ("Node.js 20.x" when last tested) - Expand "Advanced Settings" and check "Enable function URL". This will display a few sub-options: + "Auth type" select "NONE" (disable IAM authentication) + Check "Configure cross-origin resource sharing (CORS)" -9) Click "Create function" to create the function. +10) Click "Create function" to create the function. #### Upload Code -10) In the Interface, scroll down and select the "Code" tab. +11) In the Interface, scroll down and select the "Code" tab. -11) Click the "Upload from" dropdown and select ".zip file". +12) Click the "Upload from" dropdown and select ".zip file". -12) Click the "Upload" button in the modal. With the file picker, select the +13) Click the "Upload" button in the modal. With the file picker, select the `SheetJSLambda.zip` file created in step 3. Click "Save". :::note pass @@ -299,21 +306,21 @@ editor will load the package. ::: -13) In the code editor, double-click `index.js` and confirm the code editor +14) In the code editor, double-click `index.js` and confirm the code editor displays JavaScript code. #### External Access -14) Click "Configuration" in the tab list. +15) Click "Configuration" in the tab list. -15) In the sidebar below the tab list, select "Function URL" and click "Edit". +16) In the sidebar below the tab list, select "Function URL" and click "Edit". -16) Set the "Auth type" to "NONE" and click Save. The page will redirect to the +17) Set the "Auth type" to "NONE" and click Save. The page will redirect to the Function properties. -17) Select the "Configuration" tab and select "Permissions" in the left sidebar. +18) Select the "Configuration" tab and select "Permissions" in the left sidebar. -18) Scroll down to "Resource-based policy statements" and ensure that +19) Scroll down to "Resource-based policy statements" and ensure that `FunctionURLAllowPublicAccess` is listed. If no policy statements are defined, select "Add Permission" with the options: @@ -469,6 +476,8 @@ a root user account. 2) Type "S3" in the top search box and click S3 (under Services). +![AWS search for "S3"](pathname:///aws/S3.png) + 3) Open "Buckets" in the left sidebar. If the left sidebar is not open, click the `≡` icon in the left edge of the page. @@ -491,6 +500,8 @@ If the left sidebar is not open, click the `≡` icon in the left edge of the pa 7) Type "IAM" in the top search box and click IAM (under Services). +![AWS search for "iam"](pathname:///aws/iam.png) + 8) Open "Users" in the left sidebar. If the left sidebar is not open, click the `≡` icon in the left edge of the page. @@ -517,6 +528,8 @@ Click "Next". 17) In the "Permissions policies" section, search for "AmazonS3FullAccess". There should be one entry. +![AWS search for "AmazonS3FullAccess"](pathname:///aws/perm.png) + 18) Check the checkbox next to "AmazonS3FullAccess" and click the "Next" button. 19) In the "Review" screen, click "Add permissions" diff --git a/docz/static/aws/S3.png b/docz/static/aws/S3.png new file mode 100644 index 0000000..43ab995 Binary files /dev/null and b/docz/static/aws/S3.png differ diff --git a/docz/static/aws/iam.png b/docz/static/aws/iam.png new file mode 100644 index 0000000..34c255e Binary files /dev/null and b/docz/static/aws/iam.png differ diff --git a/docz/static/aws/lambda.png b/docz/static/aws/lambda.png new file mode 100644 index 0000000..683ef65 Binary files /dev/null and b/docz/static/aws/lambda.png differ diff --git a/docz/static/aws/perm.png b/docz/static/aws/perm.png new file mode 100644 index 0000000..af17904 Binary files /dev/null and b/docz/static/aws/perm.png differ