簡體   English   中英

使用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命令?

要求部署-強制

我找到的唯一解決方案是通過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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM