【问题标题】:How to properly use AWS Secrets Manager in a Elastic Beanstalk Deployment on Windows Server如何在 Windows Server 上的 Elastic Beanstalk 部署中正确使用 AWS Secrets Manager
【发布时间】:2021-07-22 04:44:17
【问题描述】:

我试图在部署期间将我的应用程序连接字符串从 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 部署时却不起作用。

我已经被困了好几天了,有人可以帮忙吗?

【问题讨论】:

    标签: amazon-web-services powershell amazon-elastic-beanstalk windows-server aws-secrets-manager


    【解决方案1】:

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

    仅在服务器上安装 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 将被安装(再次)。

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

    【讨论】:

      猜你喜欢
      • 2015-02-24
      • 2021-04-09
      • 1970-01-01
      • 2020-08-24
      • 2015-09-20
      • 2018-12-21
      • 2016-06-19
      • 2020-08-02
      • 2014-12-25
      相关资源
      最近更新 更多