通过aws codebuild为nodejs lambda创建zip文件时出现问题

用户名

我想通过aws代码构建过程为我的nodejs lambda创建一个zip工件-这样,lambda函数就可以将此zip文件用作S3中的源,并且我们在代码构建中具有使用git commit id进行管理的部署“证明”

我在github-repo中的文件结构是

folder1
   - myfile.js
   - otherfile.js
folder2
   - otherfiles.js
package.json

现在,对于nodejs lambda项目,我想要没有zip文件夹的zip文件(对于lambda中的nodejs项目,我们需要该文件),因此zip应该直接包含以下文件

- myfile.js
- node_module ==> folder from codebuild via npm install command 

问题:

1)S3中的输出zip包含在文件夹中,即.zip-> rootfolder-> myfile.js,而不是我们要求的.zip-> myfiles.js,对于lambda而言,这是不可用的,因为nodejs应该在root zip中而不是在内部他们(文件夹内没有相对路径)

2)路径-如您所见myfile.js位于文件夹中,我想省略相对路径-我尝试放弃路径,但是问题是所有的node_module文件也都在文件夹中,而不是在文件夹中,因为丢弃路径适用于两者-我可以仅为myfile.js设置丢弃路径,而不能为node_module文件夹设置丢弃路径吗?我当前的Yaml文件:

artifacts:
  files:
    - folder/myfile.js
    - node_modules/**/*
  discard-paths: yes 

如果有人可以提供解决方案,那将是很好吗?

如果解决方案不包含更改github-repo文件夹结构,那太好了,我也想在该仓库中为其他文件重复此操作,以创建其他lambda函数。

编辑:

我在yaml文件下面使用过,@ awsnitin回答后一切都正常

version: 0.2

phases:
  build:
    commands:
      - echo Build started on `date`
      - npm install
  post_build:
    commands:
      - echo Running post_build commands
      - mkdir build-output
      - cp -R folder1/myfile.js build-output
      - mkdir -p build-output/node_modules
      - cp -R node_modules/* build-output/node_modules
      - cd build-output/
      - zip -qr build-output.zip ./*
      - mv build-output.zip ../
      - echo Build completed on `date`
artifacts:
  files:
    - build-output.zip
奥尼汀

不幸的是,丢弃路径在这种情况下不起作用。最好的选择是将必要的文件复制到新文件夹中,作为构建逻辑的一部分(buildspec.yml),然后在构件部分中指定该文件夹。这是一个示例buildspec文件

post_build:
    commands:
      - mkdir build-output
      - cp -R folder/myfile.js node_modules/ build-output
artifacts:
  files:
    - build-output/**/*

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建S3存储桶nodejs时aws-sdk出现问题

通过CodeBuild在AWS Lambda上安装NLTK / WORDNET

lambda找不到通过AWS CodeBuild下载的NLTK数据

通过 Terraform 添加 AWS 安全组时出现问题

从Intellij IDE部署Java AWS Lambda时出现问题

使用GUI为程序创建ubuntu服务单元文件时出现问题

从S3复制文件时出现AWS CodeBuild错误-COMMAND_EXECUTION_ERROR:原因:退出状态1(NodeJS)

通过循环创建数据时出现问题

通过列表创建数据框时出现问题

通过迭代创建菜单时出现问题

NumPy。通过添加行创建矩阵时出现问题

通过AWS Educate帐户为IAMUSER创建访问令牌的问题

为14.10创建click chroot时出现问题

通过.bat(cmd)从应用程序创建txt文件时出现问题-未设置带空格和逗号的文本

使用flutter_secure_storage包为ios创建构建归档文件时出现问题

如何缓存NodeJS全局模块AWS CodeBuild

AWS CodeBuild问题

通过Cloudformation,CodeBuild和CodePipeline将python软件包部署到AWS Lambda

如何在AWS CodeBuild规范文件中为`parameter-store`使用动态密钥?

从目录创建zip文件时出现问题

仅使用AWS Lambda加载本地模块时出现问题

如何使用Mono为AWS Lambda函数创建.NET函数代码zip文件?

尝试使用shrine direct_upload为AWS Rails 5.2实现拖放直接上传时出现问题

aws lambda nodejs-上传由GULP压缩的zip文件时出错

启动时,通过 vbs 脚本运行 bat 文件时出现问题

通过FTP下载文件后将文件写入磁盘时出现问题

通过AWS Lambda发送文件

通过Google Directions API创建路线时出现问题

通过带有Devise的Rails 5帐户模型创建用户时出现问题