Amazon web services 在不使用我的Github用户的情况下将AWS CodeDeploy连接到Github?
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/codeAmazon 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命令 从本地到远程
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,你不能。