gpt4 book ai didi

amazon-web-services - 如何在 EFS 上创建文件夹?

转载 作者:行者123 更新时间:2023-12-04 12:59:16 28 4
gpt4 key购买 nike

我使用 Terraform 设置了一个 ECS 集群。一切都很好,但我有几个问题。
1. 据我了解,EFS 卷不需要挂载到 ECS 实例。 AWS 允许我们将 EFS 卷文件夹直接挂载到容器。我对吗?

resource "aws_ecs_task_definition" "Task" {
family = var.ServiceName
container_definitions = file("service.json")
tags = {
Name = data.terraform_remote_state.Cluster.outputs.TagName
Project = data.terraform_remote_state.Cluster.outputs.TagName
}
volume {
name = "service-storage"
efs_volume_configuration {
file_system_id = data.terraform_remote_state.Cluster.outputs.EfsVolumeId
root_directory = "/"
}
}
}
root_directory这是 EFS 卷内部到文件夹的路径,该文件夹将被安装到容器。
服务.json
[
{
"name": "nginx13",
"image": "nginx",
"memory": 256,
"mountPoints": [
{
"containerPath": "/usr/share/nginx/html",
"sourceVolume": "service-storage"
}
],
"portMappings": [
{
"containerPort": 80
}
]
}
]
containerPath这是容器内部到 root_directory 所在安装点的路径。文件夹将被挂载。所以没有与 ECS 实例挂载点或它的路径相关的参数。
2. 在创建新任务之前,我需要在 EFS 卷上创建一个文件夹,以便稍后将容器装载到它。现在,我只能使用 EFS 卷的根文件夹,因为它是空的。因此,我正在寻找一种使用 terraform 模板管理在 EFS 卷上创建和删除文件夹的方法。这是问题的第一部分,第二部分是将文件放在该文件夹中。
什么是最佳实践?我应该使用某种部署解决方案,如 Jenkins 还是可以仅使用 Terraform 来完成? EFS 文件夹权限如何?他们需要改变吗?

最佳答案

使用 EFS 接入点:
https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html
接入点通过在 EFS 中创建一个目录来工作。然后,您可以设置对该目录的访问权限。无论如何,这对您正在做的事情可能更好,因为它为您提供了访问控制。

If a root directory path for an access point doesn't exist on the file system, Amazon EFS automatically creates that root directory with configurable ownership and permissions.


https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/efs_access_point
如果这不合适:
我建议使用 lambda。
https://aws.amazon.com/blogs/compute/using-amazon-efs-for-aws-lambda-in-your-serverless-applications/
您可以使用您熟悉的任何可以挂载 EFS 的语言编写 lambda。然后让它创建一个目录。然后您可以使用空资源 local-exec 调用此 lambda。

关于amazon-web-services - 如何在 EFS 上创建文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61091913/

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