[英]GiT pipeline to invoke lambda function created using terraform,
stages:
- validate
- plan
- apply
- invoke
image:
name: hashicorp/terraform:light
entrypoint:
- '/usr/bin/env'
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
before_script:
- set TF_VAR_AWS_ACCESS_KEY=${AWS_ACCESS_KEY_ID}
- set TF_VAR_AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- rm -rf .terraform
- terraform --version
- terraform init
validate:
stage: validate
script:
- terraform validate
plan:
stage: plan
script:
- terraform plan -out "planfile"
dependencies:
- validate
artifacts:
paths:
- planfile
apply:
stage: apply
script:
- terraform apply -input=false "planfile"
dependencies:
- plan
invoke:
stage: invoke
script:
- set func_name = ${CI_COMMIT_REF_NAME}-"hello-world"
- aws lambda invoke --function-name '$func-name' response.json
dependencies:
- apply
在上面的脚本中,在调用阶段我想传递 lambda function main 作为参数,lambda function 名称以 gitlab 分支名称为前缀。
我收到 function arg 语法错误。
有人可以帮助找到解决方案,将前缀为 gitlab 分支名称的 function 名称 arg 传递给 AWS lambda invoke CLI 命令。
Gitlab 分支名称环境变量是CI_COMMIT_BRANCH
https://docs.gitlab.com/ee/ci/variables/predefined_variables.html#:~:text=branches%20or%20tags.-,CI_COMMIT_BRANCH,-12.6
您不需要创建任何额外的变量。
invoke:
stage: invoke
script:
- aws lambda invoke --function-name "${CI_COMMIT_BRANCH}-hello-world" response.json
dependencies:
- apply
如果你想将它与变量一起使用。
invoke:
stage: invoke
script:
- func_name="${CI_COMMIT_REF_NAME}-hello-world"
- aws lambda invoke --function-name "$func_name" response.json
dependencies:
- apply
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.