Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在不使用我的Github用户的情况下将AWS CodeDeploy连接到Github?_Amazon Web Services_Github_Aws Code Deploy - Fatal编程技术网

Amazon web services 在不使用我的Github用户的情况下将AWS CodeDeploy连接到Github?

Amazon web services 在不使用我的Github用户的情况下将AWS CodeDeploy连接到Github?,amazon-web-services,github,aws-code-deploy,Amazon Web Services,Github,Aws Code Deploy,AWS文档描述了您如何使用浏览器向Github进行身份验证,以及您当前以有效用户身份登录Github,并具有要从中部署的存储库的权限: 有没有办法在不链接我的用户和使用浏览器的情况下设置CodeDeploy?我很想在每个存储库上使用webhook和awsapi调用来实现这一点,但如果有必要,我会将Github称为“服务用户” 更多示例: 我希望在我的repo上使用webhook,或者自己设置它们,而不是允许AWS访问我的Github帐户上的每个存储库。您可以使用这个bash命令 从本地到远程

AWS文档描述了您如何使用浏览器向Github进行身份验证,以及您当前以有效用户身份登录Github,并具有要从中部署的存储库的权限:

有没有办法在不链接我的用户和使用浏览器的情况下设置CodeDeploy?我很想在每个存储库上使用webhook和awsapi调用来实现这一点,但如果有必要,我会将Github称为“服务用户”

更多示例:

我希望在我的repo上使用webhook,或者自己设置它们,而不是允许AWS访问我的Github帐户上的每个存储库。

您可以使用这个bash命令

从本地到远程

rsync-delete-azvv-esh-i/path/to/pem/path/to/local/code/*ubuntu@66.66.66.66:/path/to/remote/code

从远程到本地

rsync-delete-azvv-esh-i/path/to/pemubuntu@66.66.66.66:/path/to/remote/code/*/path/to/local/code

rsync检查文件版本并更新需要更新的文件

从本地到远程

rsync-delete-azvv-esh-i/path/to/pem/path/to/local/code/*ubuntu@66.66.66.66:/path/to/remote/code

从远程到本地

rsync-delete-azvv-esh-i/path/to/pemubuntu@66.66.66.66:/path/to/remote/code/*/path/to/local/code


rsync检查文件版本并更新需要更新的文件

CodeDeploy和Github集成基于Github Oauth工作。因此,要使用CodeDeploy和Github集成,您必须使用Github帐户信任CodeDeploy Github应用程序。当前,此集成将仅在具有有效github帐户的浏览器中工作,因为CodeDeploy应用程序将始终重定向回CodeDeploy控制台以验证并完成OAuth身份验证过程。

CodeDeploy和github集成基于github OAuth工作。因此,要使用CodeDeploy和Github集成,您必须使用Github帐户信任CodeDeploy Github应用程序。目前,此集成将仅在具有有效github帐户的浏览器中工作,因为CodeDeploy应用程序将始终重定向回CodeDeploy控制台以验证并完成OAuth身份验证过程。

此时,除了在浏览器中执行OAuth流外,似乎没有其他方法。如果您担心将整个Github帐户向Amazon开放,那么创建服务用户可能是最好的方法,不幸的是,该用户似乎仍然需要对您的repos进行管理访问才能设置集成。

此时,除了在浏览器中执行OAuth流之外,似乎没有其他选择。如果您担心向Amazon开放整个Github帐户,那么创建服务用户可能是最好的方法,不幸的是,该用户似乎仍然需要对您的回购进行管理访问才能设置集成。

经过更多研究,我意识到我的第一个答案是错误的,您可以使用AWS CLI使用Github OAuth令牌创建代码管道。然后可以从那里插入CodeDeploy部署。下面是一个配置示例:

{
    "pipeline": {
        "roleArn": "arn:aws:iam::99999999:role/AWS-CodePipeline-Service",
        "stages": [
            {
                "name": "Source", 
                "actions": [
                    {
                        "inputArtifacts": [], 
                        "name": "Source", 
                        "actionTypeId": {
                            "category": "Source", 
                            "owner": "ThirdParty", 
                            "version": "1", 
                            "provider": "GitHub"
                        }, 
                        "outputArtifacts": [
                            {
                                "name": "MyApp"
                            }
                        ], 
                        "configuration": {
                            "Owner": "myusername", 
                            "Repo": "myrepo", 
                            "Branch": "master", 
                            "OAuthToken": "**************"
                        }, 
                        "runOrder": 1
                    }
                ]
            },
            {
                "name": "Beta",
                "actions": [
                    {
                        "inputArtifacts": [
                            {
                                "name": "MyApp"
                            }
                        ],
                        "name": "CodePipelineDemoFleet",
                        "actionTypeId": {
                            "category": "Deploy",
                            "owner": "AWS",
                            "version": "1",
                            "provider": "CodeDeploy"
                        },
                        "outputArtifacts": [],
                        "configuration": {
                            "ApplicationName": "CodePipelineDemoApplication",
                            "DeploymentGroupName": "CodePipelineDemoFleet"
                        },
                        "runOrder": 1
                    }
                ]
            }
        ],
        "artifactStore": {
            "type": "S3",
            "location": "codepipeline-us-east-1-99999999"
        },
        "name": "MySecondPipeline",
        "version": 1
    }
}
可以使用以下命令创建管道:

aws codepipeline create-pipeline --cli-input-json file://input.json
确保Github OAuth令牌具有admin:repo_hook和repo权限


参考资料:

经过进一步研究,我意识到我的第一个答案是错误的,您可以使用AWS CLI使用Github OAuth令牌创建代码管道。然后可以从那里插入CodeDeploy部署。下面是一个配置示例:

{
    "pipeline": {
        "roleArn": "arn:aws:iam::99999999:role/AWS-CodePipeline-Service",
        "stages": [
            {
                "name": "Source", 
                "actions": [
                    {
                        "inputArtifacts": [], 
                        "name": "Source", 
                        "actionTypeId": {
                            "category": "Source", 
                            "owner": "ThirdParty", 
                            "version": "1", 
                            "provider": "GitHub"
                        }, 
                        "outputArtifacts": [
                            {
                                "name": "MyApp"
                            }
                        ], 
                        "configuration": {
                            "Owner": "myusername", 
                            "Repo": "myrepo", 
                            "Branch": "master", 
                            "OAuthToken": "**************"
                        }, 
                        "runOrder": 1
                    }
                ]
            },
            {
                "name": "Beta",
                "actions": [
                    {
                        "inputArtifacts": [
                            {
                                "name": "MyApp"
                            }
                        ],
                        "name": "CodePipelineDemoFleet",
                        "actionTypeId": {
                            "category": "Deploy",
                            "owner": "AWS",
                            "version": "1",
                            "provider": "CodeDeploy"
                        },
                        "outputArtifacts": [],
                        "configuration": {
                            "ApplicationName": "CodePipelineDemoApplication",
                            "DeploymentGroupName": "CodePipelineDemoFleet"
                        },
                        "runOrder": 1
                    }
                ]
            }
        ],
        "artifactStore": {
            "type": "S3",
            "location": "codepipeline-us-east-1-99999999"
        },
        "name": "MySecondPipeline",
        "version": 1
    }
}
可以使用以下命令创建管道:

aws codepipeline create-pipeline --cli-input-json file://input.json
确保Github OAuth令牌具有admin:repo_hook和repo权限


参考资料:

是。他要求在没有github用户的情况下进行部署我问如何在没有github用户的情况下使用AWS CodeDeploy产品,同时仍然使用他们提供的与github的集成。在这种情况下,你的答案没有什么意义。我只是提供了一个替代方案。不,除非使用直接推送方法,否则无法避免这种情况,比如rsyncyYou也不能直接rsync进行代码部署。它是一个编排工具,不是文件系统。rsync用于绕过CodeDeploy,而不使用Git用户。唯一不使用它的方法是。他要求在没有github用户的情况下进行部署我问如何在没有github用户的情况下使用AWS CodeDeploy产品,同时仍然使用他们提供的与github的集成。在这种情况下,你的答案没有什么意义。我只是提供了一个替代方案。不,除非使用直接推送方法,否则无法避免这种情况,比如rsyncyYou也不能直接rsync进行代码部署。它是一个编排工具,不是文件系统。rsync用于绕过CodeDeploy,而不使用Git用户。唯一不使用itI的方法是在这一点上使用不同的产品。答案似乎仍然是AWS CodeDeploy,你不能。我认为这将使用不同的产品 不过,这是关键。答案似乎仍然是AWS CodeDeploy,你不能。