gpt4 book ai didi

amazon-web-services - AWS CodeDeploy 无法在私有(private) VPC 中运行

转载 作者:行者123 更新时间:2023-12-02 22:18:55 25 4
gpt4 key购买 nike

我在 VPC 内有私有(private)子网,路由表如下:

XX.X.0.X/16 local
0.0.0.0/0 nat-0XXXXXXXXX

使用上述配置,AWS CodeDeploy 失败,错误为 错误代码:HEALTH_CONSTRAINTS/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent- 中没有日志条目部署.log.

但是当我通过添加 Internet 网关将其更改为允许公共(public)访问时使用以下路由表 AWS CodeDeploy 已成功完成。

XX.X.0.X/16 local   
0.0.0.0/0 igw-0XXXXXXXXX

我是否缺少任何其他配置?

最佳答案

CodeDeploy 代理需要对 Internet 进行出站访问才能访问 4 个不同的服务端点。为了使服务正常工作,需要访问所有这些端点。

需要对互联网进行出站访问才能访问(1) CodeDeploy service endpoints ,以及(2)才能访问 S3 或 Github 服务 - 此访问需要代理下载正在部署的修订版的软件部署包。

来自CodeDeploy FAQs:

...AWS CodeDeploy agent installed on the Amazon EC2 instances must be able to access the public AWS CodeDeploy and Amazon S3 service endpoints. For more information, see AWS CodeDeploy Endpoints and Amazon S3 Endpoints.

(3) CodeDeploy 代理将定期 check for software updates ,并在新版本发布后 24 小时内自动更新。正确配置的 CodeDeploy 代理实例将允许 IAM S3 访问 AWS CodeDeploy Resource Kit Reference 存储桶,以便它可以访问可用的新软件。如果无法在此处提供更新访问权限,可能会在服务升级时破坏您的实现,或限制对新功能的访问。

(4) 关于 CodeDeploy 命令和控制,代理的源代码显示了对特殊命令 https 端点的引用,称为 AWS_DEPLOY_CONTROL_ENDPOINT :

在 aws-codedeploy-agent 软件 repository 中,deploy_control_endpoint.rb 文件具有以下内容:

require 'aws-sdk-core'

module Aws
module Plugins
class DeployControlEndpoint < Seahorse::Client::Plugin
option(:endpoint) do |cfg|
url = ENV['AWS_DEPLOY_CONTROL_ENDPOINT']
if url.nil?
url = "https://codedeploy-commands.#{cfg.region}.amazonaws.com"
if "cn" == cfg.region.split("-")[0]
url.concat(".cn")
end
end
url
end
end
end
end

虽然显然没有记录,但也需要访问此端点。

关于amazon-web-services - AWS CodeDeploy 无法在私有(private) VPC 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48023692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com