[Python] What rescources does aws's Cloud AWS Academy Cloud Developing [98845] Lab 10.1 create...

Discussão em 'Python' iniciado por Stack, Março 3, 2025.

  1. Stack

    Stack Membro Participativo

    To practice I've tried to do labs 8-10 however aws often when making lab environments will create resources without explaining how to configure them. I've tried working back from lab 8 but that lab requires EC2 instances with web apps mostly already configured which I don't know/ can't figure out how to configure so I decided to try running lab 10.1's provided setup.sh file after tweaking the paths.

    The DB-cluster is a standard Aurora/MySQL

    However, I've encountered a problem with connecting to a RDS instance, no matter what AWS keeps returning: "ERROR 2002 (HY000): Can't connect to MySQL server on 'db-instance-1.abcd123.zone.rds.amazonaws.com' (115)" what am I doing wrong?

    modified setup.sh

    #!/bin/bash

    echo Please enter a valid IP address:
    read ip_address
    echo IP address:$ip_address
    echo Please wait...
    #sudo pip install --upgrade awscli
    bucket=$(aws s3api list-buckets --query "Buckets[].Name" | grep bad | tr -d ',' | sed -e 's/"//g' | xargs)
    apigateway=$(aws apigateway get-rest-apis | grep Api3 | cut -f2- -d: | tr -d ',' | xargs)
    echo $apigateway
    FILE_PATH="../resources/public_policy.json"
    FILE_PATH_2="../resources/permissions.py"
    FILE_PATH_3="../resources/setup.sh"
    FILE_PATH_4="../resources/website/config.js"
    sed -i "s/<FMI_1>/$bucket/g" $FILE_PATH
    sed -i "s/<FMI_2>/$ip_address/g" $FILE_PATH
    sed -i "s/<FMI>/$bucket/g" $FILE_PATH_2
    sed -i "s/API_GW_BASE_URL_STR: null,/API_GW_BASE_URL_STR: \"https:\/\/${apigateway}.execute-api.us-east-1.amazonaws.com\/prod\",/g" $FILE_PATH_4
    bucket=$(aws s3api list-buckets --query "Buckets[].Name" | grep bad | tr -d ',' | sed -e 's/"//g' | xargs)
    apigateway=$(aws apigateway get-rest-apis | grep Api3 | cut -f2- -d: | tr -d ',' | xargs)


    Addging from lab 9

    FILE_PATH_5="../resources/global_waf_acl.json"
    FILE_PATH_6="../resources/regional_waf_acl.json"

    aws s3 cp ../resources/website s3://$bucket/ --recursive --cache-control "max-age=0"

    python3 ../resources/permissions.py
    python3 ../resources/seed.py

    cd ../resources/codebase_partner

    touch Dockerfile

    echo 'FROM node:11-alpine
    RUN mkdir -p /usr/src/app
    WORKDIR /usr/src/app
    COPY . .
    RUN npm install
    EXPOSE 3000
    CMD ["npm", "run", "start"]
    ' > Dockerfile



    account_id=$(aws sts get-caller-identity --query "Account" --output "text")

    docker build --tag cafe/node-web-app .

    docker tag cafe/node-web-app:latest "${account_id}.dkr.ecr.us-east-1.amazonaws.com/cafe/node-web-app:latest"

    aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin "${account_id}.dkr.ecr.us-east-1.amazonaws.com"


    docker push "${account_id}.dkr.ecr.us-east-1.amazonaws.com/cafe/node-web-app"
    echo start
    FILE_PATH_5="../resources/global_waf_acl.json"
    FILE_PATH_6="../resources/regional_waf_acl.json"


    echo "setting up RDS"


    The problem happens around here

    MYPASS='fakepassword'
    MYDB=`aws rds describe-db-cluster-endpoints --query DBClusterEndpoints[0].Endpoint --output text`
    mysql -h $MYDB -P 3306 -u admin -p$MYPASS -e "CREATE USER 'nodeapp' IDENTIFIED WITH mysql_native_password BY 'coffee';GRANT all privileges on COFFEE.* to 'nodeapp'@'%'; CREATE DATABASE COFFEE; USE COFFEE; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'nodeapp'@'%' WITH GRANT OPTION;"
    mysql -h $MYDB -P 3306 -u admin -p$MYPASS -e "source ./resources/coffee_db_dump.sql"
    echo "seeded rds"

    echo "done"

    Continue reading...

Compartilhe esta Página