问题描述:
当使用AWS Lambda尝试在GitHub Repo上执行更改时,可能会遇到“Failed to execute changes on GitHubRepo”的错误。这通常是由凭据问题引起的,Lambda没有足够的权限或凭据已过期。
以下是解决此问题的步骤:
首先,确保您的Lambda函数使用的IAM角色具有足够的权限来访问GitHub Repo。这包括访问权限和对应的API密钥或OAuth token。
例如,如果您的Lambda函数使用的是IAM角色“lambda-github-role”,则可以在控制台上检查此角色的权限。
确保您使用的API密钥或OAuth token没有过期。如果您遇到GitHub Repo上未经授权的访问问题,可能是由于您的API密钥或OAuth token已过期。请更新它们并尝试再次执行Lambda函数。
以下是示例代码,它演示了如何使用AWS SDK for JavaScript从GitHub Repo运行Lambda函数:
const AWS = require('aws-sdk'); const ssm = new AWS.SSM(); const path = require('path'); const fs = require('fs');
exports.handler = function(event, context, callback) { // Get API key from SSM Parameter Store ssm.getParameter({Name: 'GitHubApiKey'}, function(err, data) { if (err) { console.log(err); callback(err); } else { const apiKey = data.Parameter.Value;
// Read contents of file from GitHub Repo
const contents = fs.readFileSync(path.resolve(__dirname, 'file-from-github-repo.txt'));
// Return contents as response
callback(null, contents.toString());
}
}); };
在此示例代码中,从SSM Parameter Store中获取GitHub API密钥,然后使用fs模块读取存储在GitHub Repo中的文件。如果这些步骤成功,则返回文件内容作为响应。