#c# #aws-lambda #aws-lambda-layers
Вопрос:
Я пытаюсь создать слой для своей лямбда-функции, разработанной с помощью Net core 3.1, но я получаю следующую ошибку:
zipping: Failed to compress file: open
dotnetcorestorex64netcoreapp3.1microsoft.extensions.dependencyinjection.abstractions
5.0.0libnetstandard2.0Microsoft.Extensions.DependencyInjection.Abstractions.dll:
The system cannot find the path specified.
Команда, которую я использую, это:
dotnet lambda publish-layer --region us-east-1 --layer-name my-Layers --layer-type runtime-package-store -sb sb-layers -f netcoreapp3.1 --package-manifest package-manifest.xml
Манифест пакета выглядит следующим образом:
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<PackageReference Include="Amazon.Lambda.APIGatewayEvents" Version="2.4.0" />
<PackageReference Include="Amazon.Lambda.Core" Version="2.0.0" />
<PackageReference Include="Amazon.Lambda.Serialization.SystemTextJson" Version="2.1.0" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.0.73" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="5.0.2" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
</Project>
Я вижу, что путь к файлу с ошибкой имеет «netstandard2.0», но я не знаю, почему. Может быть, мой вопрос глупый, означает ли это, что я не могу использовать «microsoft.extensions.dependencyinjection.абстракции» с Net Core 3.1?
Большое спасибо за любую информацию о том, как решить эту проблему.
Комментарии:
1. можете ли вы показать нам package-manifest.xml досье ?
2. @Ruben Я обновил свой пост с помощью манифеста пакета
3. @Ruben проблема была связана с длинным путем к файлу. Я изменил переменную среды TMP на «C:Temp» и это сработало.
Ответ №1:
Я попытался создать пакет и ни разу не потерпел неудачу
Итак, вот что я сделал.
Обновлен дистрибутив dotnet и новая установка инструментов aws lambda
sudo apt-get install -y dotnet-sdk-5.0
dotnet tool install -g Amazon.Lambda.Tools
Я использовал образец разрушителя в соответствии с инструкциями по учебным пособиям AWS
Учебник по AWS
dotnet lambda publish-layer DemoLayer --layer-type runtime-package-store -sb <s3bucket> --package-manifest manifest.xml
и выше в командной строке загружается вся ссылка на пакет без каких-либо ошибок.
Комментарии:
1. @JaimeCamargo= это сработало для вас?
2. проблема была связана с длинным путем к файлу. Я изменил переменную среды TMP на «C:Temp» и это сработало.