使用 ask CLI 设置 lambda 环境变量?
Setting lambda environmental variable using ask CLI?
如何使用 Ask CLI 设置 lambda 函数环境变量?我尝试使用 AWS 控制台设置它们,但在我尝试 运行 ask deploy
:
时出现此错误
[Error]: Lambda update failed. Lambda ARN: arn:aws:lambda:us-east-1:608870357221:function:ask-custom-talk_stem-default
The Revision Id provided does not match the latest Revision Id. Call the GetFunction/GetAlias API to retrieve the latest Revision Id
您好,您尝试过使用 --force 命令吗?
要求部署 --force
我找到的唯一解决方案是通过 AWS 控制台更新变量并使用 AWS CLI 手动获取函数的信息并更新本地修订 ID 以匹配 AWS 上的实时修订 ID。这是我的脚本:
const path = require('path');
const { readFileSync, writeFileSync } = require('fs');
const execa = require('execa');
const skillRoot = path.join(__dirname, '..');
const functionRoot = path.join(skillRoot, 'lambda', 'custom');
const askConfigPath = path.join(skillRoot, '.ask', 'config');
const askConfig = JSON.parse(readFileSync(askConfigPath, 'utf8'));
const { functionName } = askConfig.deploy_settings.default.resources.lambda[0];
async function main() {
console.log('Downloading function info from AWS');
const result = await execa('aws', ['lambda', 'get-function', '--function-name', functionName]);
const functionInfo = JSON.parse(result.stdout);
const revisionId = functionInfo.Configuration.RevisionId;
console.log('Downloading function contents from AWS');
await execa('ask', ['lambda', 'download', '--function', functionName], { cwd: functionRoot, stdio: 'inherit' });
console.log('Updating skill\'s revisionId');
askConfig.deploy_settings.default.resources.lambda[0].revisionId = revisionId;
writeFileSync(askConfigPath, JSON.stringify(askConfig, null, 2));
console.log('Done');
}
main();
如何使用 Ask CLI 设置 lambda 函数环境变量?我尝试使用 AWS 控制台设置它们,但在我尝试 运行 ask deploy
:
[Error]: Lambda update failed. Lambda ARN: arn:aws:lambda:us-east-1:608870357221:function:ask-custom-talk_stem-default
The Revision Id provided does not match the latest Revision Id. Call the GetFunction/GetAlias API to retrieve the latest Revision Id
您好,您尝试过使用 --force 命令吗?
要求部署 --force
我找到的唯一解决方案是通过 AWS 控制台更新变量并使用 AWS CLI 手动获取函数的信息并更新本地修订 ID 以匹配 AWS 上的实时修订 ID。这是我的脚本:
const path = require('path');
const { readFileSync, writeFileSync } = require('fs');
const execa = require('execa');
const skillRoot = path.join(__dirname, '..');
const functionRoot = path.join(skillRoot, 'lambda', 'custom');
const askConfigPath = path.join(skillRoot, '.ask', 'config');
const askConfig = JSON.parse(readFileSync(askConfigPath, 'utf8'));
const { functionName } = askConfig.deploy_settings.default.resources.lambda[0];
async function main() {
console.log('Downloading function info from AWS');
const result = await execa('aws', ['lambda', 'get-function', '--function-name', functionName]);
const functionInfo = JSON.parse(result.stdout);
const revisionId = functionInfo.Configuration.RevisionId;
console.log('Downloading function contents from AWS');
await execa('ask', ['lambda', 'download', '--function', functionName], { cwd: functionRoot, stdio: 'inherit' });
console.log('Updating skill\'s revisionId');
askConfig.deploy_settings.default.resources.lambda[0].revisionId = revisionId;
writeFileSync(askConfigPath, JSON.stringify(askConfig, null, 2));
console.log('Done');
}
main();