我正在 ecs fargate 中的容器上运行 apache webapp,但我需要能够保留某些文件,以便所有用户都可以通过 webapp 的所有版本访问对它们的任何更改。不幸的是,fargate 对 EFS 的支持正在开发中,所以我需要一个持久存储解决方案,至少在它可用之前(或者直到该功能的发布日期被宣布,所以我只能说我会处理这个问题)。
我试图从 fargate 切换到 ec2,因为 EFS 据说与 ec2 兼容,但我想不出一种方法来解决“无法放置任务,因为没有容器实例满足其所有要求。原因:否在您的集群中找到了容器实例。” 错误。我在运行任务时尝试了AWS ECS 错误中的所有解决方案:在您的集群中找不到容器实例,以及我在一些谷歌搜索中可以找到的所有内容,但无济于事。
访问文件的方式本质上是:
有人知道 ecs fargate 的持久存储解决方案吗?我将如何设置它?
当使用 ECR 存储用于 ECS 的容器映像时,EC2 实例(或 Fargate 服务)必须有一个安全组,允许(通过公共互联网)访问特定于帐户的存储库 URI。
许多组织都有严格的 IP 白名单规则,通常不允许为所有 IP 启用出站端口 443。
没有可用于 ECR 的 VPC 端点接口/网关,并且大概像大多数 AWS 服务一样,它的 IP 地址是弹性的并且可以随时更改。
那么如何将出口规则添加到允许通过端口 443 出站访问 ECR URI 的安全组,而不将其开放给所有 IP 地址?
amazon-ec2 amazon-web-services amazon-ecs amazon-vpc amazon-ecr
我运行命令来运行我的 ecs 任务:
**aws ecs run-task --cluster tryimport --task-definition fromecr --network-configuration { security_groups: ["sg-e9bh4ab9"], 子网: ["subnet-0b170efc0b8f6f53b"]}
zsh:`}'**附近解析错误
我究竟做错了什么?
我正在使用.NET Core WEBAPI和Dockerfile以下
FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "DummyService.dll"]
Run Code Online (Sandbox Code Playgroud)
在我的cloudformation模板中,ECS部分如下所示
dummyWebApiEcsTaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
Family: !Ref AWS::StackName
TaskRoleArn: !GetAtt dummyWebApiIamRole.Arn
ContainerDefinitions:
- Name: !Ref AWS::StackName
Image: MY IMAGE URL
DnsSearchDomains:
- !Join [".", [{"Fn::ImportValue": !Sub …Run Code Online (Sandbox Code Playgroud)