首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将发行版(带有替换变量的包)上载到S3,以便使用代码部署来部署它

如何将发行版(带有替换变量的包)上载到S3,以便使用代码部署来部署它
EN

Stack Overflow用户
提问于 2018-05-14 15:50:37
回答 1查看 778关注 0票数 1

我尝试在自动标注组中使用AWS代码部署。在过去,我和章鱼一起部署,我想迁移到aws。

所以,我有一个八达通项目有多个步骤。第一步部署一个云表单模板,该模板构建基础结构: vpc、子网、部署组、自动标度组、ELB、S3桶等。

其他步骤应该替换章鱼包的变量,并从第一步检索S3桶名,以便将其上传到S3。

我怎么能用章鱼来达到这个目的呢?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-05-14 21:24:05

我是如何做到这一点的:

  1. 向流程中添加部署包的步骤。我用了一个“跳投箱”来部署它,它只需要去某个地方。
  2. 在部署包的步骤中,单击配置特性
  3. 选择自定义部署脚本
  4. 将此脚本添加为部署脚本。在变量被替换后,它将上传到AWS S3桶。 $OctopusParameters"Octopus.Action.Package.InstallationDirectoryPath“$destinationPath =$OctopusParameters”您的参数到要存储zip文件的完整路径“”$destinationPathRootDirectory =$OctopusParameters“文件夹”写-主机“清理以前的压缩文件”删除-项“写-主机”压缩$sourcePath到$destinationPath“压缩-存档-Path "$sourcePath\”-DestinationPath $destinationPath -Force = @{} #根据提供的访问键和秘密键初始化S3凭据,因此,我们可以进一步调用APIs AWSCredentials $AwsAccessKey -SecretKey $AwsAccessSecret -StoreAs S3Creds #基于所提供的区域初始化默认的AWS区域-DefaultAWSRegion -Region $AwsRegion #获取所有相关文件并上传它们函数上载( $item) {#获取给定目录中的所有文件和子文件夹($i中的Get$item){*插入文件到AWS写-S3Object -ProfileName S3Creds -BucketName $S3BucketName -Key ($i.Name)-BucketName$S3BucketName-Key $($i.Name) $S3BucketName-StoreAs S3Creds#。$i.FullName @params }上载($destinationPath)
  5. 添加一个步骤来运行AWS命令行命令,该命令将执行部署

下面是这个步骤中的示例脚本:

代码语言:javascript
运行
复制
    # All these parameters are parameters you set in the variables screen in Octopus Deploy

    Write-Host "ApplicationName $AwsApplicationName"
    Write-Host "DeploymentConfigName $AwsCodeDeployConfigName"
    Write-Host "CodeDeployName $AwsCodeDeployGroupName"
    Write-Host "BucketLocation $S3BucketName"
    Write-Host "KeyName $ZipFileName"

    # This is the AWS name of the location where you want to put the bucket, such as us-west-1
    Write-Host "BucketLocation $bucketLocation"

    $fullyQualifiedBucket = "$S3BucketName-$bucketLocation"
    Write-Host "Fully Qualified Bucket $fullyQualifiedBucket"

    $deployment = aws deploy create-deployment --application-name $AwsApplicationName --deployment-config-name $AwsCodeDeployConfigName --deployment-group-name $AwsCodeDeployGroupName --s3-location bucket=$S3BucketName,bundleType=zip,key=$TradingWebSiteZipFileName
    Write-Host "Deployment info $deployment"

它确实在S3桶中为每个环境创建了一个唯一的包。所以你得解释一下。这不是世界上最完美的解决方案,如果你反复尝试并找到一个更好的解决方案,请告诉我!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50334390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档