gpt4 book ai didi

artifactory - 使用 JFrog Artifactory 作为 Terraform 数据源

转载 作者:行者123 更新时间:2023-12-03 09:42:50 24 4
gpt4 key购买 nike

我希望从 JFrog Artifactory 中提取一个 jar 文件,并将其用作使用 Terraform 部署到 AWS Lambda 函数的源。我目前通过使用以下代码从 S3 存储桶中提取来执行此操作:

data "aws_s3_bucket_object" "function-lambda-file-hash" {
bucket = "<MYBUCKET>
key = "<MYKEY.sha1>"

tags {
Name = "${var.<MYTAG>}"
}
}

# Create the Lambda function itself
resource "aws_lambda_function" "function-lambda" {
function_name = "function-lambda"

handler = "com.example.MyFunction::handleRequest"
runtime = "java8"
s3_bucket="<MYBUCKET>"
s3_key="<MYKEY.jar>"
source_code_hash = "${data.aws_s3_bucket_object.function-lambda-file-hash.body}"
role = "${aws_iam_role.function-lambda-exec-role.arn}"
timeout = 30
memory_size = 256

tags {
Name = "${var.<MYTAG>}"
}
}

我想做一些相同的事情,但从 Artifactory 中提取,这是一个需要身份验证的实例(似乎 HTTP 模块无法做到),但无法找到任何有关执行此操作的信息。有谁知道这是否可能?如果是这样,怎么办?

任何帮助,将不胜感激。

谢谢,

克里斯

最佳答案

使用数据源 artifactory_file 获取sha256,然后base64对其进行编码,并将其传递给aws_lambda_function资源。

# Configure the Artifactory provider
provider "artifactory" {
url = "${var.artifactory_url}/artifactory"
username = var.artifactory_username
password = var.artifactory_password
}

data "artifactory_file" "jar" {
repository = "repo-key"
path = "/path/to/the/artifact.jar"
output_path = "artifact.jar"
}

resource "aws_lambda_function" "function-lambda" {
function_name = "function-lambda"

source_code_hash = filebase64sha256(data.artifactory_file.jar)

# ...
}

关于artifactory - 使用 JFrog Artifactory 作为 Terraform 数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50101130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com