1

コードのデプロイを構成し、数週間動作させました。出荷可能な CI サーバーからコード デプロイに移行するようにセットアップされています。次のように (コンテナーに) デプロイします。

> pip install awscli aws deploy push --application-name $CD_APP_NAME
> --s3-location s3://$CD_BUCKET/$CD_KEY --ignore-hidden-files aws deploy create-deployment --application-name $CD_APP_NAME --s3-location
> bucket=$CD_BUCKET,key=$CD_KEY,bundleType=zip --deployment-group-name
> $CD_DEPLOYMENT_GROUP

最近、コード デプロイは、DownloadBundle ステップでのすべての自動デプロイが次のエラーで失敗し始めました。

> The request signature we calculated does not match the signature you
> provided. Check your key and signing method.

数日前に機能していたので、私たちの側では構成に関して何も変わっていないと思います。

コード デプロイ エージェントを再インストールし、デプロイ バンドルを s3 から削除しようとしました (CI スクリプトで再作成するため)。

4

2 に答える 2

1

この考えられる理由の 1 つは、codedeploy-agent のバージョンが更新され、キーとバケット名が正しく指定されていないことです。

以下のバケット オプションでバケット名のみを使用し、キーで zip(bundle) の絶対パスを指定してください (つまり、バンドルがディレクトリ内にある場合は、バケットではなくキーでディレクトリ名を指定してください)。

aws deploy create-deployment  --application-name xxx-app-dev  --deployment-config-name CodeDeployDefault.OneAtATime   --deployment-group-name xxx-appgroup-dev  --s3-location **bucket=xxx-cd-builds**,bundleType=zip,**key=dev/20150706081741UTC/xxx.zip** --profile aws-dev-codedeploy
于 2015-07-06T11:51:08.317 に答える
1

アミットの答えは、私の問題に対する正確な解決策でした。Jenkins/CodeDeploy プラグインの使用:

https://wiki.jenkins-ci.org/display/JENKINS/AWS+Codedeploy+plugin

「バケット」パスと「プレフィックス」パスを混同していたため、このエラーが発生していました。バケット フィールドには、バケット名のみを含める必要があります

私のバグのある設定:

  • S3 バケット: "my-bucket/jenkins"
  • S3 プレフィックス: 「$BUILD_NUMBER」

これにより、使用可能な S3 パスが作成されますが、etag は完全に間違っています。

正しい構成:

  • S3 バケット: 「my-bucket」
  • S3 プレフィックス: "jenkins/$BUILD_NUMBER"

アミット・ドシへの巨大なハイファイブ。あなたはロックします、おい。

于 2015-12-16T22:37:47.770 に答える