AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 783804
Accepted
Luke
Luke
Asked: 2016-06-15 01:06:11 +0800 CST2016-06-15 01:06:11 +0800 CST 2016-06-15 01:06:11 +0800 CST

AWS CodeDeploy 可以执行 powershell 脚本吗?

  • 772

将 Powershell 脚本直接包含到appspec.yml文件中是否可以接受?

version: 0.0
os: windows
files:
  - source: ./MyWebsiteFiles
    destination: /MyWebsite
hooks:
  AfterInstall:
    - location: /Scripts/MyScript.ps1
      timeout: 300

我正在运行一个ps1通过 EC2 实例上的 Powershell 控制台立即执行的文件,但我的部署在执行 Powershell 脚本时卡住或失败。

appspec.yml根据我在 CodeDeploy 文档中看到的内容,似乎没有可以包含在文件中的可接受文件类型的列表。

谢谢你的帮助。

deployment amazon-web-services
  • 2 2 个回答
  • 5834 Views

2 个回答

  • Voted
  1. Best Answer
    Luke
    2016-06-15T05:13:12+08:002016-06-15T05:13:12+08:00

    是的!

    虽然我无法找到可接受的脚本类型的明确列表,但答案似乎是Yes- Powershell脚本是可以接受的,如果包含在文件.ps1中就会执行。appspec.yml

    在我按照@kafka 故障排除页面上的建议添加代码之前,我的 Powershell 脚本无法始终如一地工作,因此我的脚本现在包含以下内容:

    # Are you running in 32-bit mode?
    #   (\SysWOW64\ = 32-bit mode)
    
    if ($PSHOME -like "*SysWOW64*")
    {
      Write-Warning "Restarting this script under 64-bit Windows PowerShell."
    
      # Restart this script under 64-bit Windows PowerShell.
      #   (\SysNative\ redirects to \System32\ for 64-bit mode)
    
      & (Join-Path ($PSHOME -replace "SysWOW64", "SysNative") powershell.exe) -File `
        (Join-Path $PSScriptRoot $MyInvocation.MyCommand) @args
    
      # Exit 32-bit script.
    
      Exit $LastExitCode
    }
    
    # Was restart successful?
    Write-Warning "Hello from $PSHOME"
    Write-Warning "  (\SysWOW64\ = 32-bit mode, \System32\ = 64-bit mode)"
    Write-Warning "Original arguments (if any): $args"
    
    # Your 64-bit script code follows here...
    # ...
    #
    # I PUT MY SCRIPT HERE
    #
    

    我仍然不确定我的脚本是否仅与 64 位版本的 Powershell 兼容或如何找到它,但它适用于此修改。

    我希望这对某人有所帮助。

    更新:关于文件位置的说明

    我想强调一个我在运行.ps1脚本时遇到的问题。根据我的经验,ps1脚本必须放在部署包的根目录(与 appspec.yml 文件相同的文件夹位置),否则,您的脚本可能无法执行,并且部署将在 CodeDeploy 中显示为“成功”。更多信息在这里。

    • 10
  2. Remotec
    2017-01-01T06:34:17+08:002017-01-01T06:34:17+08:00

    是的,它可以,但除非您设置变量,否则在脚本运行期间遇到的错误不会停止您的部署。

    $ErrorActionPreference = ‘Stop’
    

    有关详细信息,请参阅此链接:

    https://aws.amazon.com/premiumsupport/knowledge-center/powershell-cmdlet-errors-codedeploy/

    • 2

相关问题

  • 网络监控产品公司的部署工程师需要具备哪些技能?[关闭]

  • Mac OS X 的无人值守安装

  • Firefox 打包以包含用于网络安装的插件

  • 我应该将 Rails 应用程序部署到哪个目录?

  • 将 iChat 设置部署到多个用户

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve