Lambda 部署
此页面记录了使用 dpl v1 进行部署,当前版本为默认版本。下一个主要版本 dpl v2 将很快发布,我们建议您开始使用它。有关详细信息,请参阅 我们的博客文章。您可以在 此处找到 dpl v2 文档。
Travis CI 支持上传到 AWS Lambda。
最小配置如下
deploy:
provider: lambda
function_name: "lambda-test"
region: "us-east-1"
role: "arn:aws:iam::0123456789012:role/lambda_basic_execution"
runtime: "nodejs4.3"
handler_name: "handler"
可以通过 access_key_id
和 secret_access_key
参数传递 AWS 凭据。如果未设置这些参数,Travis 将回退到标准 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
环境变量。如果您选择提供参数,建议您加密您的密钥。假设您已安装 Travis CI 命令行客户端,您可以按如下方式执行此操作
$ travis encrypt "AWS SECRET ACCESS KEY" --add deploy.secret_access_key
系统将提示您在命令行中输入您的密钥。
可选配置参数 #
有关其他配置参数,请参阅 文档
条件发布 #
只有在满足特定条件时,您才能进行部署。请参阅 使用 on:
进行条件发布。
AWS 权限 #
Travis 用于部署的 AWS 用户必须具有以下 IAM 权限才能进行部署
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListExistingRolesAndPolicies",
"Effect": "Allow",
"Action": [
"iam:ListRolePolicies",
"iam:ListRoles"
],
"Resource": "*"
},
{
"Sid": "CreateAndListFunctions",
"Effect": "Allow",
"Action": [
"lambda:CreateFunction",
"lambda:ListFunctions"
],
"Resource": "*"
},
{
"Sid": "DeployCode",
"Effect": "Allow",
"Action": [
"lambda:GetFunction",
"lambda:UpdateFunctionCode",
"lambda:UpdateFunctionConfiguration"
],
"Resource": [
"arn:aws:lambda:<region>:<account-id>:function:<name-of-function>"
]
},
{
"Sid": "SetRole",
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": "arn:aws:iam::<account-id>:role/<name-of-role>"
}
]
}
似乎无法使用通配符 DeployCode
语句,以便 Travis 通过将资源指定为 arn:aws:lambda:<region>:<account-id>:function:*
来部署特定区域中的任何函数,但可以通过将完整 ARN 指定为一个或多个函数来限制每个函数的部署权限,例如 arn:aws:lambda:<region>:<account-id>:function:<name>
。