Thay thế ứng dụng mẫu

Vì chúng ta sắp thực hiện thay đổi đối với mã nguồn, bạn nên sử dụng Git để tạo một nhánh mới. Bạn có thể thực hiện việc này thông qua dòng lệnh hoặc sử dụng IDE Eclipse. Đặt tên cho nhánh mới là new-implementation. Để tạo và chuyển sang nhánh mới trong Eclipse thực hiện các bước sau:

  • Nhấp chuột phải vào project, chọn Team
  • Chọn Switch To , chọn New Branch…

CreateNewBranch

  • Đặt tên nhánh mới là new-implementation và chọn Finish.

CreateNewBranch

Trong ví dụ này, chúng ta sẽ sử dụng dòng lệnh.

  1. Mở terminal và truy cập thư mục: C:\Users\Administrator\git\TravelBuddy
  2. Chạy dòng lệnh git checkout -b new-implementation để tạo và chuyển sang nhánh mới.

CreateNewBranch

  1. Tải file TravelBuddy.zip và giải nén.

Tải xuống tệp này bằng trình duyệt trong máy ảo bạn đang chạy.

  1. Trong Eclipse IDE, nhấp chuột phải vào root element của project TravelBuddy và chọn Show In -> System Explorer.

ShowInExplorer

  1. Xóa thư mục srctarget
  2. Sao chép nội dung thư mục TravelBuddy đã giải nén vào thư mục vừa mở từ Eclip IDE. Bạn có thể xóa thư mục .ebextensions ở thư mục đích trước khi thực hiện sao chép, hoặc chọn Replace để đảm bảo các tập tin và thư mục được ghi đè chính xác.
    Bạn sẽ thấy trong thư mục .ebextensions có 3 tập tin, một là các thông số bạn cần cập nhập với RDS endpoint, hai tập tin còn lại được tạo trước bằng cài đặt codecommit - set-instance-credit-unlimited.config sshd.config.
  3. Mở tập tin env_vars.config trong thư mục .ebextensions và thay thế value bằng RDS endpoint:
option_settings:
  - namespace: aws:elasticbeanstalk:application:environment
    option_name: JDBC_CONNECTION_STRING
    value: <REPLACE YOUR DETAIILS HERE>

Bạn có thể lấy giá trị RDS của mình bằng cách đăng nhập vào AWS Console, truy cập RDS instance đang chạy và lấy thông tin endpoint từ đó và thêm nó vào tệp env_vars.

Bạn cũng có thể lấy thông số này từ cloudformation stack trong mục Output của Cloudformation stack được tạo từ đầu bài.

CreateNewBranch

  1. Cập nhật phiên bản Python.
  • Mở tệp .ebextensions/sshd.config:
    • Chỉnh sửa python27-devel sang python3-devel.
    • Chỉnh sửa python27-pip sang python3-pip.
    • Chỉnh sửa /etc/init.d/sshd restart sang sudo service sshd restart.

CreateNewBranch

  • Mở tệp .ebextensions/set-instance-credit-unlimited:
    • Chỉnh sửa pip install awscli –upgrade –user sang pip3 install awscli –upgrade –user

CreateNewBranch

  1. Nhấp chuột phải vào thư mục gốc của project và chọn Maven | Update Project | OK

CreateNewBranch

CreateNewBranch

  1. Khi cập nhật hoàn tất, bạn sẽ thấy cấu trúc thư mục của dự án tương tự như hình dưới đây:

CreateNewBranch

  1. Bạn vừa hoàn tất hoàn tất việc thay đổi mã nguồn, bây giờ bạn cần thêm các tập tin bạn vừa thay đổi vào nhánh new-implementation và commit các tập tin này.

  2. Sử dụng terminal, truy cập vào thư mục TravelBuddy

  • Nhập git status để xem các thay đổi của tập tin mã nguồn.

CreateNewBranch

  • Nhập git config --global user.email "you@example.com"
  • Nhap git config --global user.name awsstudent
  • Nhập git add . để thêm các tập tin đã thay đổi
  • Nhập git commit -m "Baseline implementation" để commit các thay đổi.

CreateNewBranch

  • Nhập git checkout master để chuyển tới nhánh master.
  • Merge các thay đổi của nhánh new-implementation tới nhánh master bằng lệnh git merge new-implementation

CreateNewBranch

  • Kiểm tra lại bằng lệnh git status.

CreateNewBranch

  1. Để đẩy các thay đổi này tới CodeCommit, trong Eclipse, nhấp chuột phải và project root và chọn Team | Push to Origin…

CreateNewBranch

  1. Chọn Close.

CreateNewBranch

Sẽ mất một vài phút để đẩy mã nguồn lên và tiến hành triển khai.

ReplaceApplication

  1. Để ứng dụng có thể truy cập được vào database, cập nhật security rule.

  2. Mở bảng điều khiển của EC2.

  3. Ấn Security Groups ở menu phía bên trái.

  • Chọn DBSecurityGroup

ReplaceApplication

  1. Ấn Edit inbound rules

ReplaceApplication

  1. Ấn Add rule.
  • Chọn dịch vụ MySQL/Aurora
  • Chọn SecurityGroup ID từ travelbuddyapp.
  • Chọn Save rules.

ReplaceApplication

Caching

Trong bài thực hành này, chúng ta sẽ tăng tốc việc build trong tương lại bằng cách lưu trữ các artifacts (ví dụ như java packages) trong S3 bucket có thể sử dụng trên việc build tiếp theo.

  1. Mở tập tin buildspec.yml, bạn sẽ thấy các dòng sau:
cache:
  paths:
    - '/root/.m2/**/*'
  1. Mở terminal.

  2. Chạy dòng lệnh dưới đây để tạo một caching bucket mới. Thay bằng tên bạn muốn.

aws s3 mb s3://cachingbucket-<YOURNAME-NO-SPACES>

ReplaceApplication

  1. AWS CodeBuild cần truy cập vào cache bucket, do đó chúng ta cần tên IAM permissions. Mở AWS Console và truy cập IAM.

  2. Truy cập tab Policies và tìm policy CodeStar_travelbuddy_PermissionsBoundary

ReplaceApplication

  1. Chọn Edit policy.

ReplaceApplication

  1. Trong trình soạn thảo, chọn JSON và thêm policy sau:
        {
            "Sid": "CBCachePolicy",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::cachingbucket-<YOURNAME-NO-SPACES>",
                "arn:aws:s3:::cachingbucket-<YOURNAME-NO-SPACES>/*"
            ]
        },
  • Chọn Review policy ReplaceApplication
  1. Chọn Save changes.

  2. Truy cập AWS Codestar và đi tới tab Pipeline của project.

  • Chọn AWS CodeBuild trong Build section của Pipeline

ReplaceApplication

  1. Chọn Edit, và chọn Artifacts

ReplaceApplication

  1. Dưới mục Additional Configuration, bỏ chọn Allow AWS CodeBuild to modify this service role so it can be used with this build project
  • Chọn Amazon S3 cho kiểu Cache.
  • Chọn bucket bạn vừa tạo để lưu cache.
  • Ấn Update artifacts

ReplaceApplication

  1. Sau khi triển khai hoàn tất, chọn Application Endpoint tại trang CodeStar dashboard. Bạn sẽ thấy website TravelBuddy được triển khai trên môi trường Elastic Beanstalk.

ReplaceApplication