Menerbitkan aplikasi Anda dengan AWS SAMCLI - AWS Serverless Application Model

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

Menerbitkan aplikasi Anda dengan AWS SAMCLI

Untuk membuat AWS SAM aplikasi Anda tersedia bagi orang lain untuk menemukan dan menyebarkan, Anda dapat menggunakan AWS SAMCLI untuk mempublikasikannya ke AWS Serverless Application Repository. Untuk mempublikasikan aplikasi Anda menggunakan AWS SAMCLI, Anda harus mendefinisikannya menggunakan AWS SAM template. Anda juga harus sudah mengujinya secara lokal atau di AWS Cloud.

Ikuti instruksi pada topik ini untuk membuat aplikasi baru, membuat versi baru dari aplikasi yang ada, atau memperbarui metadata aplikasi yang ada. (Apa yang Anda lakukan tergantung pada apakah aplikasi sudah ada di AWS Serverless Application Repository, dan apakah ada metadata aplikasi yang berubah.) Untuk informasi selengkapnya tentang metadata aplikasi, lihat Properti bagian Metadata templat AWS SAM.

Prasyarat

Sebelum Anda mempublikasikan aplikasi untuk AWS Serverless Application Repository menggunakan AWS SAMCLI, Anda harus memiliki yang berikut:

  • Yang AWS SAMCLI diinstal. Untuk informasi selengkapnya, lihat Instal AWS SAM CLI. Untuk menentukan AWS SAMCLI apakah diinstal, jalankan perintah berikut:

    sam --version
  • AWS SAM Template yang valid.

  • Kode aplikasi Anda dan dependensi yang referensi AWS SAM template.

  • Versi semantik, hanya diperlukan untuk membagikan aplikasi Anda secara publik. Nilai ini bisa hanya sebesar 1,0.

  • URL yang memberi akses ke kode sumber aplikasi Anda.

  • File README.md. File ini harus menjelaskan cara pelanggan dapat menggunakan aplikasi Anda dan cara mengonfigurasinya sebelum men-deploynya ke Akun AWS pelanggan sendiri.

  • File LICENSE.txt, hanya diperlukan untuk membagikan aplikasi Anda secara publik.

  • Jika aplikasi Anda mencakup aplikasi yang di-nest, Anda harus sudah memublikasikan aplikasi tersebut ke AWS Serverless Application Repository.

  • Kebijakan valid bucket Amazon Simple Storage Service (Amazon S3) yang memberikan layanan izin baca untuk artefak yang Anda unggah ke Amazon S3 ketika Anda mengemas aplikasi Anda. Untuk menyiapkan kebijakan ini, lakukan hal berikut:

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

    2. Pilih nama bucket Amazon S3 yang Anda gunakan untuk mengemas aplikasi Anda.

    3. Pilih Izin.

    4. Pada tab Izin, di bawah Kebijakan bucket, pilih Edit.

    5. Pada Halaman Edit kebijakan bucket, tempel pernyataan kebijakan berikut ke editor Kebijakan. Pada pernyataan kebijakan, pastikan untuk menggunakan nama bucket Anda di elemen Resource dan ID akun AWS di elemen Condition. Ekspresi dalam Condition elemen memastikan bahwa AWS Serverless Application Repository memiliki izin untuk mengakses hanya aplikasi dari AWS akun yang ditentukan. Untuk informasi selengkapnya tentang pernyataan kebijakan, lihat Referensi elemen kebijakan JSON IAM di Panduan Pengguna IAM.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "serverlessrepo.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<your-bucket-name>/*", "Condition" : { "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }
    6. Pilih Simpan perubahan.

Memublikasikan aplikasi baru

Langkah 1: Tambahkan Metadata bagian ke AWS SAM template

Pertama, tambahkan Metadata bagian ke AWS SAM template Anda. Berikan informasi aplikasi yang akan dipublikasikan ke AWS Serverless Application Repository.

Berikut ini adalah contoh bagian Metadata:

Metadata: AWS::ServerlessRepo::Application: Name: my-app Description: hello world Author: user1 SpdxLicenseId: Apache-2.0 LicenseUrl: LICENSE.txt ReadmeUrl: README.md Labels: ['tests'] HomePageUrl: https://github.com/user1/my-app-project SemanticVersion: 0.0.1 SourceCodeUrl: https://github.com/user1/my-app-project Resources: HelloWorldFunction: Type: AWS::Lambda::Function Properties: ... CodeUri: source-code1 ...

Untuk informasi selengkapnya tentang Metadata bagian AWS SAM templat, lihatProperti bagian Metadata templat AWS SAM.

Langkah 2: Kemas aplikasi

Jalankan AWS SAMCLI perintah berikut, yang mengunggah artefak aplikasi ke Amazon S3 dan mengeluarkan file template baru yang disebut: packaged.yaml

sam package --output-template-file packaged.yaml --s3-bucket <your-bucket-name>

Anda menggunakan file templat packaged.yaml di langkah berikutnya untuk memublikasikan aplikasi ke AWS Serverless Application Repository. File ini mirip dengan file templat asli (template.yaml), tetapi memiliki perbedaan kunci— properti inti CodeUri, LicenseUrl, dan ReadmeUrl menunjuk pada bucket Amazon S3 dan objek yang mencakup artefaknya masing-masing.

Sinppet berikut dari contoh file templat packaged.yaml menunjukkan properti CodeUri:

MySampleFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://bucketname/fbd77a3647a4f47a352fcObjectGUID ...

Langkah 3: Publikasikan aplikasi

Untuk mempublikasikan versi pribadi AWS SAM aplikasi Anda ke AWS Serverless Application Repository, jalankan AWS SAMCLI perintah berikut:

sam publish --template packaged.yaml --region us-east-1

Output dari perintah sam publish memuat link ke aplikasi Anda pada AWS Serverless Application Repository. Anda juga dapat langsung membuka Halaman arahan AWS Serverless Application Repository dan mencari aplikasi Anda.

Langkah 4: Bagikan aplikasi (opsional)

Secara default, aplikasi Anda diatur pada pengaturan privat, sehingga tidak terlihat oleh akun AWS lain. Untuk membagikan aplikasi Anda dengan orang lain, Anda harus membuatnya publik atau memberikan izin ke daftar AWS akun tertentu.

Untuk informasi tentang berbagi aplikasi menggunakan AWS CLI, lihat Contoh Kebijakan AWS Serverless Application Repository Berbasis Sumber Daya di Panduan Pengembang.AWS Serverless Application Repository Untuk informasi tentang berbagi aplikasi menggunakan AWS Management Console, lihat Berbagi Aplikasi di Panduan Developer AWS Serverless Application Repository .

Memublikasikan versi baru aplikasi yang sudah ada

Setelah Anda menerbitkan aplikasi ke AWS Serverless Application Repository, Anda mungkin ingin mempublikasikan versi baru dari itu. Misalnya, Anda mungkin telah mengubah kode fungsi Lambda Anda atau menambahkan komponen baru ke arsitektur aplikasi Anda.

Untuk memperbarui aplikasi yang telah Anda publikasikan sebelumnya, Aplikasi dipublikasikan kembali menggunakan proses yang sama pada detail sebelumnya. Di bagian Metadata file templat AWS SAM , berikan nama aplikasi yang sama dengan nama aplikasi yang sebelumnya Anda publikasikan, tetapi sertakan nilai SemanticVersion baru.

Misalnya, pertimbangkan aplikasi yang dipublikasikan dengan nama SampleApp dan SemanticVersion dari 1.0.0. Untuk memperbarui aplikasi tersebut, templat AWS SAM harus memiliki nama aplikasi SampleApp dan SemanticVersion dari 1.0.1 (atau apa pun selain 1.0.0).

Topik Tambahan