- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Azure DevOps 中使用 AWS deploy lambda
任务。在部署的 lambda 函数中,它被设置为从同一 Azure DevOps 存储库/安装中的工件源中提取包。
如果我在之前的部署步骤中运行 NuGet restore
,那么可以正常访问包,但是当它到达 AWS Lambda .NET Core Deployment
步骤时尝试从同一提要读取时收到 401。
有谁知道如何配置 lambda 发布步骤以成功读取自定义源?
具体错误是:
Response status code does not indicate success: 401
最佳答案
我有同样的问题,但希望我能提供一些新的角度。
我们不是使用 AWS deploy lambda
运行,而是打包我们的 lambda 并将它们推送到 S3 以允许 CloudFormation 部署它们。这使用 AWS dotnet toolkit构建部署包(这是 aws deploy lambda 在后台所做的)。执行此操作的 powershell 步骤如下所示:
dotnet lambda package
结果包通常会在项目下的 bin/release 文件夹中生成。
这让您可以做的是将参数 --msbuild-parameters "--no-restore"
添加到打包过程中,这不会触发自动恢复步骤。在 Azure DevOps Build Pipelines 内部,你可以在它之前设置一个构建步骤来恢复所有解决方案或 csproj 文件,这些文件将自动根据你的源进行身份验证。我们还设置了组件的版本号,我想摆脱烦人的警告,所以我们当前版本的调用如下所示:
dotnet lambda package ("/p:Version=" + $VersionNumber) "/p:PreserveCompilationContext=false" --msbuild-parameters "--no-restore"
我现在遇到的问题是,传入 msbuild-parameters 似乎将框架设置为以 red hat linux (rhel.7.2-x64) 为目标,导致以下错误:
publish: C:\Program Files\dotnet\sdk\2.1.500\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error NETSDK1047: Assets file 'C:\Agent\_work\1\s\Kiosk.Microservice.User.Lambda.Command\obj\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v2.0/rhel.7.2-x64'. Ensure that restore has run and that you have included 'netcoreapp2.0' in the TargetFrameworks for your project. You may also need to include 'rhel.7.2-x64' in your project's RuntimeIdentifiers. [C:\Agent\_work\1\s\Kiosk.Microservice.User.Lambda.Command\Kiosk.Microservice.User.Lambda.Command.csproj]
我非常明确地希望它为 dotnetcore2.0 构建,所以我实际上不想为 red hat linux 构建。
这是我目前卡住的地方,就好像我没有使用标志来停止未经身份验证的 nuget 还原步骤,我收到未经授权的错误并且我似乎无法通过 dotnet.exe 我的提要凭据。如果我毫无理由地使用它为 red hat Linux 构建的标志。希望这至少能让你走得更远!
更新:我现在可以正常工作了。我去发现了 dotnet lambda publish
在 the git repository for the toolset 中实际使用的 dotnet cli 包装器并在没有中间人的情况下重复其步骤。因为不再使用 msbuild-parameters 标志,所以它没有尝试在 red hat linux 中构建它。之后我还必须创建 zip 文件,但这相当简单。以下是在没有 aws dotnet 工具集的情况下生成新包的 powershell:
# Run the build that will generate the proper files
dotnet publish --no-restore -f netcoreapp2.0 -c Release
# Create the path to the zip file
$PathToZip = $PathToCSProj + "\bin\Release\netcoreapp2.0\publish"
# Create the zip file
Compress-Archive -Path $PathToZip -DestinationPath ($PathToZip + $csproj[0].Name.trim(".csproj") + ".zip")
希望对您有所帮助!
关于aws-lambda - 为什么 'dotnet lambda deploy-function' 不能从 Azure DevOps 工件源中提取包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54496007/
我在 Ubuntu v16.04 上安装了 dotent core。问题是当我尝试使用 dotnet user-secrets 时它说:未找到匹配命令“dotnet-user-secrets”的可执行
好。这似乎是我看到答案时会面对的问题类型。 所以... 为什么要打扰 dotnet build做之前dotnet publish ? build自动执行 restore .凉爽的。 好像publish
我正在尝试创建一个 dotnet 新模板的 NuGet 包。我创建了一个 nuspec 文件来设置包的详细信息,它位于我的内容文件夹旁边,其中包含我想要打包的所有内容: My.
我正在尝试使用'dotnet dev-certs'工具导出https证书以包含在Docker镜像中。现在我正在使用: dotnet dev-certs https -v -ep $(HOME)\.as
我昨天从 .Net 5 更新到 .Net 6,现在我的项目无法从 dotnet run 开始。然后我得到错误: Building... warn: Microsoft.AspNetCore.Serve
我使用 dockerfile 成功构建,但是当我尝试从构建镜像运行新容器时,出现以下错误: 我必须为解决方案做什么? Error : /bin/sh: 1: [dotnet,: not found d
我有一个引用其他几个项目的 .NET Core 3 项目。我的主根项目有一个 Release-X构建配置,但其他项目只有 Release配置,无匹配 Release-X配置。 当我尝试使用这个发布我的
我的 dotnet new 列表中有许多“孤立的”dotnet 模板。 它们不再存在于我的驱动器上,因为我删除了文件夹,所以我不能 dotnet new --uninstall。 有没有办法从列表中删
编辑: 以下是最初与标题一起发布的前一个问题 xunit show ITestOutputHelper output when run in the console 经过调查(见评论),这个问题仍然非
来自 docs.microsoft.com: dotnet build - Builds a project and all of its dependencies. dotnet run - Run
我有一个 Dotnet 核心项目,我试图在其中安装 Microsoft.EntityFrameworkCore.Tools.Dotnet 以使用迁移。我在 Mac 上,所以我使用 MySql.Data
我已经在这个问题上徘徊了很长一段时间,但仍然没有找到答案,也没有其他帖子处理同样的问题。 我已经发布了一个 .net 5.0 网站,如果我在同一个发布的文件夹中运行 dotnet,一切都会正常运行。在
我正在尝试使用 CLI dotnet 命令复制以下 Azure 管道: - task: DotNetCoreCLI@2 inputs: command: publish publi
假设这个文件夹结构 SampleApp global.json Src Web pro
我正在使用dotnet watch命令来运行asp.net core项目。但是,默认情况下,它选择 Production 作为环境。 我已经尝试了这两个选项: 1) > dotnet watch AS
我正在尝试在 Linux 主机上的官方 Microsoft/dotnet 镜像之外的容器中构建一个 dotnet 项目,因为该镜像与 Windows 和 Linux 都兼容。我只有 linux 主机,
我不是 Linux 用户,所以这可能是一个简单的修复,但我已经尝试了以下方法: 首先我使用命令 curl -sSL https://dot.net/v1/dotnet-install.sh | bas
我在发布配置文件中遇到了 Visual Studio 和 EF 迁移的奇怪情况。鉴于: Visual Studio 2019 v16.4 .NET 核心项目。目标 .NET Core 3.1 EF 3
我已经安装了 .NET Core 1.0.1 以与 VS 2015 Update 3 一起使用,并且以管理员身份运行(在 Windows 8.1 x64 上)。 如果我创建任何 .NET Core 项
我正在尝试为dotnet core 2创建开发Dockerfile。到目前为止,我的工作是: FROM microsoft/aspnetcore-build:2.0 VOLUME /app WORKD
我是一名优秀的程序员,十分优秀!