Tutorial: Membuat dan Mengelola Proyek Tanpa Server di AWS CodeStar - AWS CodeStar

Pada 31 Juli 2024, Amazon Web Services (AWS) akan menghentikan dukungan untuk membuat dan melihat AWS CodeStar proyek. Setelah 31 Juli 2024, Anda tidak akan lagi dapat mengakses AWS CodeStar konsol atau membuat proyek baru. Namun, AWS sumber daya yang dibuat olehAWS CodeStar, termasuk repositori sumber, saluran pipa, dan build Anda, tidak akan terpengaruh oleh perubahan ini dan akan terus berfungsi. AWS CodeStar Koneksi dan AWS CodeStar Pemberitahuan tidak akan terpengaruh oleh penghentian ini.

 

Jika Anda ingin melacak pekerjaan, mengembangkan kode, dan membangun, menguji, dan menyebarkan aplikasi Anda, Amazon CodeCatalyst menyediakan proses memulai yang efisien dan fungsionalitas tambahan untuk mengelola proyek perangkat lunak Anda. Pelajari lebih lanjut tentang fungsionalitas dan harga Amazon CodeCatalyst.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tutorial: Membuat dan Mengelola Proyek Tanpa Server di AWS CodeStar

Dalam tutorial ini, Anda gunakan AWS CodeStar untuk membuat proyek yang menggunakan Model Aplikasi AWS Tanpa Server (AWSSAM) untuk membuat dan mengelola AWS sumber daya untuk layanan web yang dihosting. AWS Lambda

AWS CodeStarmenggunakan AWS SAM, yang mengandalkanAWS CloudFormation, untuk menyediakan cara yang disederhanakan dalam membuat dan mengelola AWS sumber daya yang didukung, termasuk API Amazon API Gateway, AWS Lambda fungsi, dan tabel Amazon DynamoDB. (Proyek ini tidak menggunakan tabel Amazon DynamoDB apa pun.)

Untuk informasi selengkapnya, lihat Model Aplikasi AWS Tanpa Server (AWSSAM) di. GitHub

Prasyarat: Selesaikan langkah-langkahnya. Pengaturan AWS CodeStar

catatan

AWSAkun Anda mungkin dikenakan biaya untuk biaya yang terkait dengan tutorial ini, termasuk biaya untuk AWS layanan yang digunakan olehAWS CodeStar. Untuk informasi selengkapnya, lihat AWS CodeStar Harga.

Gambaran Umum

Dalam tutorial ini, Anda:

  1. Gunakan AWS CodeStar untuk membuat proyek yang menggunakan AWS SAM untuk membangun dan menyebarkan layanan web berbasis Python. Layanan web ini di-host AWS Lambda dan dapat diakses melalui Amazon API Gateway.

  2. Jelajahi sumber daya utama proyek, yang meliputi:

    • AWS CodeCommitRepositori tempat kode sumber proyek disimpan. Kode sumber ini mencakup logika layanan web dan mendefinisikan AWS sumber daya terkait.

    • AWS CodePipelinePipa yang mengotomatiskan pembangunan kode sumber. Pipeline ini menggunakan AWS SAM untuk membuat dan menerapkan fungsiAWS Lambda, membuat API terkait di Amazon API Gateway, dan menghubungkan API ke fungsi tersebut.

    • Fungsi yang digunakan untukAWS Lambda.

    • API yang dibuat di Amazon API Gateway.

  3. Uji layanan web untuk mengonfirmasi bahwa AWS CodeStar membangun dan menerapkan layanan web seperti yang diharapkan.

  4. Siapkan workstation lokal Anda untuk bekerja dengan kode sumber proyek.

  5. Ubah kode sumber proyek menggunakan workstation lokal Anda. Ketika Anda menambahkan fungsi ke proyek dan kemudian mendorong perubahan Anda ke kode sumber, AWS CodeStar membangun kembali dan menyebarkan kembali layanan web.

  6. Uji layanan web lagi untuk mengonfirmasi bahwa AWS CodeStar dibangun kembali dan digunakan kembali seperti yang diharapkan.

  7. Tulis pengujian unit menggunakan workstation lokal Anda untuk mengganti beberapa pengujian manual Anda dengan pengujian otomatis. Saat Anda mendorong pengujian unit, AWS CodeStar membangun kembali dan memindahkan layanan web dan menjalankan pengujian unit.

  8. Lihat hasil tes unit.

  9. Bersihkan proyek. Langkah ini membantu Anda menghindari biaya ke AWS akun Anda untuk biaya yang terkait dengan tutorial ini.

Langkah 1: Buat Proyek

Pada langkah ini, Anda menggunakan AWS CodeStar konsol untuk membuat proyek.

  1. Masuk ke AWS Management Console dan buka AWS CodeStar konsol, di https://console.aws.amazon.com/codestar/.

    catatan

    Anda harus masuk ke AWS Management Console menggunakan kredensyal yang terkait dengan pengguna IAM yang Anda buat atau identifikasi. Pengaturan AWS CodeStar Pengguna ini harus memiliki kebijakan AWSCodeStarFullAccessterkelola yang dilampirkan.

  2. Pilih AWS Wilayah tempat Anda ingin membuat proyek dan sumber dayanya.

    Untuk informasi tentang AWS Wilayah yang AWS CodeStar tersedia, lihat Wilayah dan Titik Akhir di Referensi AWS Umum.

  3. Pilih Buat proyek.

  4. Pada halaman Choose a project template:

    • Untuk jenis Aplikasi, pilih Layanan Web.

    • Untuk bahasa Pemrograman, pilih Python.

    • Untuk AWSlayanan, pilih AWS Lambda.

  5. Pilih kotak yang berisi pilihan Anda. Pilih Selanjutnya.

  6. Untuk nama Proyek, masukkan nama untuk proyek (misalnya,My SAM Project). Jika Anda menggunakan nama yang berbeda dari contoh, pastikan untuk menggunakannya di seluruh tutorial ini.

    Untuk ID Proyek, AWS CodeStar pilih pengenal terkait untuk proyek ini (misalnya, my-sam-project). Jika Anda melihat ID proyek yang berbeda, pastikan untuk menggunakannya di seluruh tutorial ini.

    Biarkan AWS CodeCommitdipilih, dan jangan ubah nilai nama Repositori.

  7. Pilih Selanjutnya.

  8. Tinjau pengaturan Anda dan kemudian pilih Buat Proyek.

    Jika ini adalah pertama kalinya Anda menggunakan AWS CodeStar di AWS Wilayah ini, untuk Nama Tampilan dan Email, masukkan nama tampilan dan alamat email yang ingin Anda gunakan AWS CodeStar untuk pengguna IAM Anda. Pilih Selanjutnya.

  9. Tunggu sementara AWS CodeStar membuat proyek. Ini mungkin memakan waktu beberapa menit. Jangan lanjutkan sampai Anda melihat spanduk Project yang disediakan saat Anda menyegarkan.

Langkah 2: Jelajahi Sumber Daya Proyek

Pada langkah ini, Anda menjelajahi empat sumber AWS daya proyek untuk memahami cara kerja proyek:

  • AWS CodeCommitRepositori tempat kode sumber proyek disimpan. AWS CodeStarmemberikan nama repositori my-sam-project, di my-sam-projectmana nama proyek.

  • AWS CodePipelinePipeline yang menggunakan CodeBuild dan AWS SAM untuk mengotomatiskan pembuatan dan penerapan fungsi Lambda dan API layanan web di API Gateway. AWS CodeStarmemberi pipeline nama my-sam-project--Pipeline, di mana my-sam-projectID proyek.

  • Fungsi Lambda yang berisi logika layanan web. AWS CodeStarmemberikan fungsi nama awscodestar-my-sam-project-lambda- HelloWorld - RANDOM_ID, di mana:

    • my-sam-projectadalah ID proyek.

    • HelloWorldadalah ID fungsi seperti yang ditentukan dalam template.yaml file di AWS CodeCommit repositori. Anda menjelajahi file ini nanti.

    • RANDOM_ID adalah ID acak yang diberikan AWS SAM ke fungsi untuk membantu memastikan keunikan.

  • API di API Gateway yang membuatnya lebih mudah untuk memanggil fungsi Lambda. AWS CodeStarmemberi API nama awscodestar-my-sam-project--lambda, di my-sam-projectmana ID proyek.

Untuk menjelajahi repositori kode sumber di CodeCommit
  1. Dengan proyek Anda terbuka di AWS CodeStar konsol, pada bilah navigasi, pilih Repositori.

  2. Pilih tautan ke CodeCommit repositori Anda (My-SAM-Project) di detail Repositori.

  3. Di CodeCommit konsol, pada halaman Kode, file kode sumber untuk proyek ditampilkan:

    • buildspec.yml, yang CodePipeline menginstruksikan CodeBuild untuk digunakan selama fase build, untuk mengemas layanan web menggunakan AWS SAM.

    • index.py, yang berisi logika untuk fungsi Lambda. Fungsi ini hanya menampilkan string Hello World dan stempel waktu, dalam format ISO.

    • README.md, yang berisi informasi umum tentang repositori.

    • template-configuration.json, yang berisi ARN proyek dengan placeholder yang digunakan untuk menandai sumber daya dengan ID proyek

    • template.yml, yang digunakan AWS SAM untuk mengemas layanan web dan membuat API di API Gateway.

    
                        File kode sumber proyek di  CodeCommit

    Untuk melihat isi dari sebuah file, pilih file tersebut dari daftar.

    Untuk informasi selengkapnya tentang menggunakan CodeCommit konsol, lihat Panduan AWS CodeCommit Pengguna.

Untuk menjelajahi pipa di CodePipeline
  1. Untuk melihat informasi tentang pipeline, dengan proyek Anda terbuka di AWS CodeStar konsol, pada bilah navigasi, pilih Pipeline dan Anda melihat pipeline berisi:

    • Tahap Sumber untuk mendapatkan kode sumber dari CodeCommit.

    • Tahap Build untuk membangun kode sumber dengan CodeBuild.

    • Tahap Deploy untuk menyebarkan kode sumber dan sumber AWS daya yang dibangun dengan AWS SAM.

  2. Untuk melihat informasi selengkapnya tentang pipeline, di detail Pipeline, pilih pipeline Anda untuk membuka pipeline di CodePipeline konsol.

Untuk informasi tentang menggunakan CodePipeline konsol, lihat Panduan AWS CodePipeline Pengguna.

Untuk mengeksplorasi aktivitas proyek dan sumber daya AWS layanan di halaman Ikhtisar
  1. Buka proyek Anda di AWS CodeStar konsol dan dari bilah navigasi, pilih Ikhtisar.

  2. Tinjau aktivitas Proyek dan daftar sumber daya Proyek.

Untuk menjelajahi fungsi di Lambda
  1. Dengan proyek Anda terbuka di AWS CodeStar konsol, di bilah navigasi samping, pilih Ikhtisar.

  2. Di sumber daya Proyek, di kolom ARN, pilih tautan untuk fungsi Lambda.

    Kode fungsi ditampilkan di konsol Lambda.

Untuk informasi tentang menggunakan konsol Lambda, lihat Panduan AWS LambdaPengembang.

Untuk menjelajahi API di API Gateway
  1. Dengan proyek Anda terbuka di AWS CodeStar konsol, di bilah navigasi samping, pilih Ikhtisar.

  2. Di sumber daya Proyek, di kolom ARN, pilih tautan untuk API Amazon API Gateway.

    Sumber daya untuk API ditampilkan di konsol API Gateway.

Untuk informasi tentang penggunaan konsol API Gateway, lihat Panduan Pengembang API Gateway.

Langkah 3: Uji Layanan Web

Pada langkah ini, Anda menguji layanan web yang AWS CodeStar baru saja dibangun dan digunakan.

  1. Dengan proyek Anda masih terbuka dari langkah sebelumnya, pada bilah navigasi, pilih Pipeline.

  2. Pastikan Succeeded ditampilkan untuk tahap Source, Build, dan Deploy sebelum Anda melanjutkan. Ini mungkin memakan waktu beberapa menit.

    catatan

    Jika Gagal ditampilkan untuk salah satu tahapan, lihat berikut ini untuk bantuan pemecahan masalah:

  3. Pilih Lihat Aplikasi.

Pada tab baru yang terbuka di browser web Anda, layanan web menampilkan output respons berikut:

{"output": "Hello World", "timestamp": "2017-08-30T15:53:42.682839"}

Langkah 4: Siapkan Workstation Lokal Anda untuk Mengedit Kode Proyek

Pada langkah ini, Anda mengatur workstation lokal Anda untuk mengedit kode sumber dalam AWS CodeStar proyek. Workstation lokal Anda dapat berupa komputer fisik atau virtual yang menjalankan macOS, Windows, atau Linux.

  1. Dengan proyek Anda masih terbuka dari langkah sebelumnya:

    • Di bilah navigasi, pilih IDE, lalu perluas Akses kode proyek Anda.

    • Pilih Lihat instruksi di bawah Antarmuka baris perintah.

      Jika Anda menginstal Visual Studio atau Eclipse, pilih Lihat petunjuk di bawah Visual Studio atau Eclipse sebagai gantinya, ikuti petunjuknya, lalu lewati ke. Langkah 5: Tambahkan Logika ke Layanan Web

  2. Ikuti instruksi untuk menyelesaikan tugas-tugas berikut:

    1. Siapkan Git di workstation lokal Anda.

    2. Gunakan konsol IAM untuk menghasilkan kredensi Git bagi pengguna IAM Anda.

    3. Kloning CodeCommit repositori proyek ke workstation lokal Anda.

  3. Di navigasi kiri, pilih Proyek untuk kembali ke ikhtisar proyek Anda.

Langkah 5: Tambahkan Logika ke Layanan Web

Pada langkah ini, Anda menggunakan workstation lokal Anda untuk menambahkan logika ke layanan web. Secara khusus, Anda menambahkan fungsi Lambda dan kemudian menghubungkannya ke API di API Gateway.

  1. Di workstation lokal Anda, buka direktori yang berisi repositori kode sumber kloning.

  2. Di direktori itu, buat file bernamahello.py. Tambahkan kode berikut, lalu simpan file:

    import json def handler(event, context): data = { 'output': 'Hello ' + event["pathParameters"]["name"] } return { 'statusCode': 200, 'body': json.dumps(data), 'headers': {'Content-Type': 'application/json'} }

    Kode sebelumnya mengeluarkan string Hello dan string yang dikirim pemanggil ke fungsi.

  3. Di direktori yang sama, buka template.yml file. Tambahkan kode berikut ke akhir file, lalu simpan file:

    Hello: Type: AWS::Serverless::Function Properties: FunctionName: !Sub 'awscodestar-${ProjectId}-lambda-Hello' Handler: hello.handler Runtime: python3.7 Role: Fn::GetAtt: - LambdaExecutionRole - Arn Events: GetEvent: Type: Api Properties: Path: /hello/{name} Method: get

    AWSSAM menggunakan kode ini untuk membuat fungsi di Lambda, menambahkan metode dan jalur baru ke API di API Gateway, dan kemudian menghubungkan metode dan jalur ini ke fungsi baru.

    catatan

    Lekukan kode sebelumnya penting. Jika Anda tidak menambahkan kode persis seperti yang ditunjukkan, proyek mungkin tidak dibangun dengan benar.

  4. Jalankan git add . untuk menambahkan perubahan file Anda ke area pementasan repositori kloning Jangan lupa periode (.), yang menambahkan semua file yang diubah.

    catatan

    Jika Anda menggunakan Visual Studio atau Eclipse alih-alih baris perintah, instruksi untuk menggunakan Git mungkin berbeda. Lihat dokumentasi Visual Studio atau Eclipse.

  5. Jalankan git commit -m "Added hello.py and updated template.yaml." untuk mengkomit file bertahap Anda di repositori kloning

  6. Jalankan git push untuk mendorong komit Anda ke repositori jarak jauh.

    catatan

    Anda mungkin diminta untuk kredensi masuk yang dihasilkan untuk Anda sebelumnya. Agar tidak diminta setiap kali Anda berinteraksi dengan repositori jarak jauh, pertimbangkan untuk menginstal dan mengonfigurasi pengelola kredensi Git. Misalnya, di macOS atau Linux, Anda dapat menjalankan git config credential.helper 'cache --timeout 900' di terminal untuk diminta tidak lebih cepat dari setiap 15 menit. Atau Anda dapat berlari git config credential.helper 'store --file ~/.git-credentials' untuk tidak pernah diminta lagi. Git menyimpan kredensi Anda dalam teks yang jelas dalam file biasa di direktori home Anda. Untuk informasi selengkapnya, lihat Alat Git - Penyimpanan Kredensial di situs web Git.

Setelah AWS CodeStar mendeteksi push, ia menginstruksikan CodePipeline untuk menggunakan CodeBuild dan AWS SAM untuk membangun kembali dan menerapkan kembali layanan web. Anda dapat melihat kemajuan penerapan di halaman Pipeline.

AWSSAM memberikan fungsi baru nama awscodestar-my-sam-project-Lambda-Hello- RANDOM_ID, di mana:

  • my-sam-projectadalah ID proyek.

  • Halo adalah ID fungsi, seperti yang ditentukan dalam template.yaml file.

  • RANDOM_ID adalah ID acak yang AWS SAM tetapkan ke fungsi untuk keunikan.

Langkah 6: Uji Layanan Web yang Ditingkatkan

Pada langkah ini, Anda menguji layanan web yang disempurnakan yang AWS CodeStar dibangun dan digunakan, berdasarkan logika yang Anda tambahkan pada langkah sebelumnya.

  1. Dengan proyek Anda masih terbuka di AWS CodeStar konsol, pada bilah navigasi, pilih Pipeline.

  2. Pastikan pipeline telah berjalan lagi dan Succeeded ditampilkan untuk tahap Source, Build, dan Deploy sebelum Anda melanjutkan. Ini mungkin memakan waktu beberapa menit.

    catatan

    Jika Gagal ditampilkan untuk salah satu tahapan, lihat berikut ini untuk bantuan pemecahan masalah:

  3. Pilih Lihat Aplikasi.

    Pada tab baru yang terbuka di browser web Anda, layanan web menampilkan output respons berikut:

    {"output": "Hello World", "timestamp": "2017-08-30T15:53:42.682839"}
  4. Di kotak alamat tab, tambahkan jalur /hello/ dan nama depan Anda ke akhir URL (misalnya, https://API_ID .execute-api. REGION_ID .amazonaws.com/prod/hello/ YOUR_FIRST_NAME), lalu tekan Enter.

Jika nama depan Anda adalah Mary, layanan web menampilkan output respons berikut:

{"output": "Hello Mary"}

Langkah 7: Tambahkan Unit Test ke Layanan Web

Pada langkah ini, Anda menggunakan workstation lokal Anda untuk menambahkan pengujian yang AWS CodeStar berjalan pada layanan web. Tes ini menggantikan pengujian manual yang Anda lakukan sebelumnya.

  1. Di workstation lokal Anda, buka direktori yang berisi repositori kode sumber kloning.

  2. Di direktori itu, buat file bernamahello_test.py. Tambahkan kode berikut, lalu simpan file.

    from hello import handler def test_hello_handler(): event = { 'pathParameters': { 'name': 'testname' } } context = {} expected = { 'body': '{"output": "Hello testname"}', 'headers': { 'Content-Type': 'application/json' }, 'statusCode': 200 } assert handler(event, context) == expected

    Tes ini memeriksa apakah output dari fungsi Lambda dalam format yang diharapkan. Jika demikian, tes berhasil. Jika tidak, tes gagal.

  3. Di direktori yang sama, buka buildspec.yml file. Ganti isi file dengan kode berikut, lalu simpan file tersebut.

    version: 0.2 phases: install: runtime-versions: python: 3.7 commands: - pip install pytest # Upgrade AWS CLI to the latest version - pip install --upgrade awscli pre_build: commands: - pytest build: commands: # Use AWS SAM to package the application by using AWS CloudFormation - aws cloudformation package --template template.yml --s3-bucket $S3_BUCKET --output-template template-export.yml # Do not remove this statement. This command is required for AWS CodeStar projects. # Update the AWS Partition, AWS Region, account ID and project ID in the project ARN on template-configuration.json file so AWS CloudFormation can tag project resources. - sed -i.bak 's/\$PARTITION\$/'${PARTITION}'/g;s/\$AWS_REGION\$/'${AWS_REGION}'/g;s/\$ACCOUNT_ID\$/'${ACCOUNT_ID}'/g;s/\$PROJECT_ID\$/'${PROJECT_ID}'/g' template-configuration.json artifacts: type: zip files: - template-export.yml - template-configuration.json

    Spesifikasi build ini menginstruksikan CodeBuild untuk menginstal pytest, framework pengujian Python, ke dalam lingkungan build-nya. CodeBuild menggunakan pytest untuk menjalankan pengujian unit. Spesifikasi build lainnya sama seperti sebelumnya.

  4. Gunakan Git untuk mendorong perubahan ini ke repositori jarak jauh.

    git add . git commit -m "Added hello_test.py and updated buildspec.yml." git push

Langkah 8: Lihat Hasil Tes Unit

Pada langkah ini, Anda melihat apakah pengujian unit berhasil atau gagal.

  1. Dengan proyek Anda masih terbuka di AWS CodeStar konsol, pada bilah navigasi, pilih Pipeline.

  2. Pastikan pipa telah berjalan lagi sebelum Anda melanjutkan. Ini mungkin memakan waktu beberapa menit.

    Jika pengujian unit berhasil, Succeeded ditampilkan untuk tahap Build.

  3. Untuk melihat detail hasil pengujian unit, di tahap Build, pilih CodeBuildtautan.

  4. Di CodeBuild konsol, pada my-sam-project halaman Build Project:, dalam riwayat Build, pilih link di kolom Build run pada tabel.

  5. Pada halaman my-sam-project: BUILD_ID, di log Build, pilih tautan Lihat seluruh log.

  6. Di konsol Amazon CloudWatch Logs, lihat di output log untuk hasil pengujian yang mirip dengan berikut ini. Dalam hasil tes berikut, tes lulus:

    ... ============================= test session starts ============================== platform linux2 -- Python 2.7.12, pytest-3.2.1, py-1.4.34, pluggy-0.4.0 rootdir: /codebuild/output/src123456789/src, inifile: collected 1 item hello_test.py . =========================== 1 passed in 0.01 seconds =========================== ...

    Jika pengujian gagal, harus ada detail dalam keluaran log untuk membantu Anda memecahkan masalah kegagalan.

Langkah 9: Bersihkan

Pada langkah ini, Anda membersihkan proyek untuk menghindari biaya yang sedang berlangsung untuk proyek ini.

Jika Anda ingin terus menggunakan proyek ini, Anda dapat melewati langkah ini, tetapi AWS akun Anda mungkin terus dikenakan biaya.

  1. Dengan proyek Anda masih terbuka di AWS CodeStar konsol, di bilah navigasi, pilih Pengaturan.

  2. Dalam Rincian proyek, Pilih Hapus proyek.

  3. Masukkandelete, simpan kotak Hapus sumber daya yang dipilih, lalu pilih Hapus.

    penting

    Jika Anda mengosongkan kotak ini, catatan proyek akan dihapusAWS CodeStar, tetapi banyak AWS sumber daya proyek dipertahankan. AWSAkun Anda mungkin terus ditagih.

Jika masih ada bucket Amazon S3 yang AWS CodeStar dibuat untuk proyek ini, ikuti langkah-langkah berikut untuk menghapusnya. :

  1. Buka konsol Amazon S3, di https://console.aws.amazon.com/s3/.

  2. Dalam daftar bucket, pilih ikon di sebelah aws-codestar- REGION_ID - ACCOUNT_ID - --pipe, di mana: my-sam-project

    • REGION_ID adalah ID AWS Wilayah untuk proyek yang baru saja Anda hapus.

    • ACCOUNT_ID adalah ID akun AndaAWS.

    • my-sam-projectadalah ID proyek yang baru saja Anda hapus.

  3. Pilih Ember Kosong. Masukkan nama bucket, lalu pilih Konfirmasi.

  4. Pilih Hapus Bucket. Masukkan nama bucket, lalu pilih Konfirmasi.

Langkah Selanjutnya

Sekarang setelah Anda menyelesaikan tutorial ini, kami sarankan Anda meninjau sumber daya berikut: