程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在 Windows Server 上的 Elastic Beanstalk 部署中正确使用 AWS Secrets Manager大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在 Windows Server 上的 Elastic Beanstalk 部署中正确使用 AWS Secrets Manager?

开发过程中遇到如何在 Windows Server 上的 Elastic Beanstalk 部署中正确使用 AWS Secrets Manager的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在 Windows Server 上的 Elastic Beanstalk 部署中正确使用 AWS Secrets Manager的解决方法建议,希望对你解决如何在 Windows Server 上的 Elastic Beanstalk 部署中正确使用 AWS Secrets Manager有所启发或帮助;

我尝试在部署期间将我的应用程序连接字符串从 Secrets Manager 传递到 Elastic Beanstalk。如果我远程桌面到我要部署到的服务器上,我可以运行以下命令 -

aws secretsmanager get-secret-value --secret-ID XXX-MY-SECRET-ID --version-stage AWSCURRENT --query=SecretString --output text 

而且输出正确。一切都很好。

但是,当我尝试通过 .ebextensions 文件夹自动执行此操作时,它始终返回一个空字符串。

所以我尝试了很多东西,首先使用容器命令指向我放在 .ebextensions 文件夹中的 PowersHell 文件,就像这样 -

container_commands:
 00-myscript:
  command : powersHell.exe -ExecutionPolicy Bypass -Command ".\\.ebextensions\\BuildConnectionStrings.ps1"

那么 PowersHell 命令将是

$response = aws secretsmanager get-secret-value --secret-ID XXX-MY-SECRET-ID --version-stage AWSCURRENT --query=SecretString --output text 
$filename = "ConnectionStrings.config"
New-Item $filename -ItemType file
Set-Content $filename $response

如果我直接在 powersHell 中运行它,它会按预期运行。但是当我部署网站时,它只会创建一个空文件。

我尝试了将 PowersHell 命令直接放在 .ebextensions 配置文件中的各种组合,结果总是相同。

我只是不明白为什么当我直接在服务器上运行相同的命令时,它们会起作用,但通过 EB 部署时却不起作用。

我已经被困在这个问题上好几天了,有人可以帮忙吗?

解决方法

所以对于其他有这个问题的人...

仅仅在服务器上安装 aws cli 是不够的。我遇到的错误是由 PowerSHell 无法识别 aws 命令引起的(即使它已安装)。

解决方案是在我的脚本开头运行以下代码 -

$command = "[Net.servicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12"
Invoke-Expression $command
Invoke-Webrequest -Uri "https://awscli.amazonaws.com/AWSCLIV2.msi" -Outfile C:\AWSCLIV2.msi
$arguments = "/i `"C:\AWSCLIV2.msi`" /quiet"
Start-Process msiexec.exe -ArgumentList $arguments -Wait
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
aws --version

这确保了 aws cli 将被安装(再次)。

我不知道为什么这是必要的,但这是我找到的唯一解决方案

大佬总结

以上是大佬教程为你收集整理的如何在 Windows Server 上的 Elastic Beanstalk 部署中正确使用 AWS Secrets Manager全部内容,希望文章能够帮你解决如何在 Windows Server 上的 Elastic Beanstalk 部署中正确使用 AWS Secrets Manager所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。