dotnet new
, dengan template AWS Serverless WebAPI (ASP.NET Core 2.0). Ini termasuk kode sampel ValuesController dan S3ProxyController..appsettings
.aws configure
untuk mengatur ID Kunci profil default saya, Kunci Akses, dan Wilayah ke aws-west-2.Setelah semua ini, saya menjalankan dotnet lambda deploy-serverless
dan mencoba menggunakan us-east-1
. Apakah ini masalah dengan template atau AWS CLI?
Error: S3 bucket must be in the same region as the configured region us-west-2. is in the region us-east-1.
Saya mengunggah serverless.template
dihasilkan oleh dotnet baru ke AWS dan mendapatkan kesalahan berikut saat mencoba membuat tumpukan darinya:
Error creating change set: Transform AWS::Serverless-2016-10-31 failed with: Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [ProxyFunction] is invalid. 'CodeUri' is not a valid S3 Uri of the form "s3://bucket/key" with optional versionId query parameter.
Sepertinya ada yang salah dengan templatenya. Saya tidak punya banyak pengalaman dengan CloudFormation, masih menyelidiki.
Hari ini saya membuat beberapa kemajuan dengan akhirnya memahami pesan kesalahan :)
Sumber daya "ProxyFunction" di templat pembentukan awan memiliki parameter CodeUri
disetel ke string kosong. Melanjutkan penyelidikan mengapa string kosong tidak didukung di sana.
Rupanya CodeUri
dapat berupa relatif, parameter dinamis, atau URL statis tetapi tidak pernah berupa string kosong.
https://github.com/awslabs/serverless-application-model/blob/master/HOWTO.md
Apakah Anda memiliki halaman di mana Anda mengatakan CodeUri perlu diganti dengan sesuatu? Perbaikan termurah adalah memasukkannya sebagai parameter, maka Anda tidak perlu mendokumentasikannya.
Sepertinya semuanya berfungsi, itu membingungkan karena ada dua ember S3 yang terlibat, ember proxy dan ember tempat kode fungsi lambda diunggah. Setelah saya membuat bucket untuk lambda dan menentukan namanya, dan juga menentukan nama unik untuk bucket proxy yang tidak digunakan, transformasi tanpa sever dalam formasi cloud berhasil.
Masih ada masalah di mana ember S3 yang berisi file zip Anda dengan paket lambda Anda harus berada di wilayah yang sama dengan tempat fungsi lambda Anda dibuat. Ini kontra intuitif dan menurut saya, mengerikan. Jika kita ingin memanfaatkan template yang sama di beberapa wilayah, kita perlu menduplikasi konten paket di beberapa ember. Mereka setidaknya dapat menerima URL di properti CodeUri sehingga kami dapat menggunakan ember publik atau github untuk menyimpan paket .
Untuk itu sebaiknya Anda memberikan masukan kepada tim CloudFormation . Adalah di luar cakupan repositori ini untuk mengubah perilaku CloudFormation.
Masih ada masalah di mana ember S3 yang berisi file zip Anda dengan paket lambda Anda harus berada di wilayah yang sama dengan tempat fungsi lambda Anda dibuat. Ini kontra intuitif dan menurut saya, mengerikan. Jika kita ingin memanfaatkan template yang sama di beberapa wilayah, kita perlu menduplikasi konten paket di beberapa ember. Mereka setidaknya dapat menerima URL di properti CodeUri sehingga kami dapat menggunakan ember publik atau github untuk menyimpan paket .
Serius, ini mengerikan. Apa gunanya ember s3 global ketika Anda tidak dapat mendukung pembaruan kode fungsi lambda dari satu ember s3 daripada membuat ember duplikat di setiap wilayah.
Komentar yang paling membantu
Serius, ini mengerikan. Apa gunanya ember s3 global ketika Anda tidak dapat mendukung pembaruan kode fungsi lambda dari satu ember s3 daripada membuat ember duplikat di setiap wilayah.