- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试使用 cloudformation 创建 ECS 服务(在 Fargate 上)但出现错误:
Invalid service in ARN (Service: AmazonECS; Status Code: 400; Error Code: InvalidParameterException; Request ID: xxx).
根据错误信息,似乎有些ARN是错误的,但我没有找到原因,我检查了IAM角色的ARN,没有问题。其他 ARN 通过 !Ref 函数传递(因此不是拼写错误)
所有资源(包括来自所有其他嵌套模板、vpc、集群、alb 等)均已创建,“服务”资源(ECS 服务)除外。
下面是使用的模板(嵌套模板)。所有参数都可以(从根模板传递)。参数 TaskExecutionRole 和 ServiceRole 是来自 ECS 向导创建的 IAM 角色的 ARN:
Description: >
Deploys xxx ECS service, with load balancer listener rule,
target group, task definition, service definition and auto scaling
Parameters:
EnvironmentName:
Description: An environment name that will be prefixed to resource names
Type: String
EnvironmentType:
Description: See master template
Type: String
VpcId:
Type: String
PublicSubnet1:
Type: String
PublicSubnet2:
Type: String
ALBListener:
Description: ALB listener
Type: String
Cluster:
Description: ECS Cluster
Type: String
TaskExecutionRole:
Description: See master template
Type: String
ServiceRole:
Description: See master template
Type: String
ServiceName:
Description: Service name (used as a variable)
Type: String
Default: xxx
Cpu:
Description: Task size (CPU)
Type: String
Memory:
Description: Task size (memory)
Type: String
Conditions:
HasHttps: !Equals [!Ref EnvironmentType, production]
HasNotHttps: !Not [!Equals [!Ref EnvironmentType, production]]
Resources:
ServiceTargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
Name: !Sub '${EnvironmentName}-${ServiceName}'
VpcId: !Ref VpcId
TargetType: ip
Port: 80
Protocol: HTTP
AlbListenerRule:
Type: AWS::ElasticLoadBalancingV2::ListenerRule
Properties:
Actions:
- Type: forward
TargetGroupArn: !Ref ServiceTargetGroup
Conditions:
- Field: host-header
Values: [www.mydomain.com] # test
ListenerArn: !Ref ALBListener
Priority: 1
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
Family: !Sub '${EnvironmentName}-${ServiceName}-Task'
ContainerDefinitions:
- Name: !Ref ServiceName
Image: nginx
PortMappings:
- ContainerPort: 80
LogConfiguration:
LogDriver: awslogs
Options:
awslogs-group: !Ref EnvironmentName
awslogs-region: !Ref AWS::Region
awslogs-stream-prefix: !Ref ServiceName
NetworkMode: awsvpc
RequiresCompatibilities: [FARGATE]
Cpu: !Ref Cpu
Memory: !Ref Memory
ExecutionRoleArn: !Ref TaskExecutionRole
Service:
Type: AWS::ECS::Service
DependsOn: TaskDefinition
Properties:
Cluster: !Ref Cluster
ServiceName: !Ref ServiceName
TaskDefinition: !Ref TaskDefinition
LaunchType: FARGATE
DesiredCount: 1
LoadBalancers:
- ContainerName: !Ref ServiceName
ContainerPort: 80
TargetGroupArn: !Ref ServiceTargetGroup
NetworkConfiguration:
AwsvpcConfiguration:
AssignPublicIp: ENABLED
Subnets:
- !Ref PublicSubnet1
- !Ref PublicSubnet2
Role: !Ref ServiceRole
我在这件事上浪费了几个小时,但无法解决它,我在文档中查阅了很多内容,但什么也没有,如果有人知道如何提供帮助的话。
谢谢!
最佳答案
错误消息令人困惑,因为它没有解释哪个参数是错误的。 Amazon API 需要多个参数中的资源 ARN,包括 Cluster
、TaskDefinition
和 TargetGroup
。当这些参数之一错误时,就会发生错误。请仔细检查这些参数并确保它们是有效的 ARN。
我遇到了完全相同的错误,就我而言,我犯了一个错误并提供了错误的Cluster
值。
我在这里发布一个答案,因为这是此错误消息的第一个搜索结果,但没有答案。
关于amazon-web-services - AWS ECS : Invalid service in ARN (Service: AmazonECS; . ..),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55253585/
我正在尝试将 aws_wafv2_web_acl_logging_configuration 资源与 Terraform 配置中的 aws_cloudwatch_log_group 资源集成。但是,我
我在 terraform 中使用本地 exec 配置程序来运行 aws cli 命令,以解决 terraform 缺乏对某些 aws 功能的支持的问题。有问题的命令是创建一个 listener-rul
我正在使用 cloudformation 模板创建两个资源 AWS Lambda 函数和角色。 我使用角色 arn 作为环境变量。稍后在 S3 连接的代码中使用它。但出现异常 com.amazonaw
我正在尝试将从第一步创建的策略的资源arn添加到第二步。但我无法将 arn 从资源一引用到资源二。我尝试了 !ref 和 getattr,两者都不起作用。有什么解决办法吗? 在我尝试执行的 cloud
关于 Amazon 资源名称 (ARN),AWS 文档指出: Amazon Resource Names (ARNs) uniquely identify AWS resources. We requ
我有以下 IAM 政策: {"Version":"2012-10-17","Statement":[{"Sid":"","Effect":"Allow","Principal":{"AWS":"arn
我在使用 python 运行时将 SQS 主题的 ARN 通过环境变量传递给 lambda 时遇到问题。 这是云形成yaml的相关部分: HandlerFunction: Type: AW
在 AWS cloudformation 模板中,有没有一种方法可以获取 lambda arns 列表,类似于获取 sns arns 的方法? "Ref" : "AWS::NotificationAR
在我的应用程序中,我需要将消息发送到给定的主题名称。该主题已经由其他人创建,并且在配置文件中他们只提供了主题名称。我的工作是推送给定主题名称中的消息。有什么方法可以在 java 中通过主题名称获取主题
我想导出使用无服务器框架创建的 Lambda ARN,因为我需要在其他 CF 模板中使用此 ARN 我在 serverless.yml 文件中定义了输出和导出。 resources: Output
我想添加仅允许 IAM 用户访问少数表的策略。 关注this document 我的政策: { "Version": "2012-10-17", "Statement": [
我正在使用模块创建存储桶,如何找到该存储桶的 ARN? 创建模块 module "testbucket" { source = "github.com/tomfa/terraform
我正在尝试使用 AWS 设置一个非常基本的 API API网关产品,似乎我找不到任何足以让它记录的策略,因此甚至离开设置屏幕的第一页。我被困在这里: 网址:https://eu-west-1.cons
任何人都可以提供 CLI 命令来获取创建特定 IAM 角色的堆栈名称和区域吗? 最佳答案 您必须编写一个小的循环脚本来遍历所有区域和所有堆栈(假设为“CREATE_COMPLETE”状态)并使用des
我正在尝试获取 lambda arn provider: ... ... ... parameters: register_and_annotate_a
我正在尝试将通知规则设置为 CDK 堆栈中代码管道的一部分。 请注意,这不是 CDK 管道,而是正在设置 AWS CodePipeline 的 CDK 堆栈。 为了创建 CfnNotification
是否可以在 cloudformation 脚本中通过标记名称引用子网?我处于具有多个区域的 VPC 中。每个区域都有一些子网,其标签名称如“app_a”、“app_b”、“app_c”,适用于可用区
我有一个简单的 CF 模板,它启动 ec2 实例和负载均衡器,并在 CF 模板中设置监听器规则。我在配置 HTTPListener 时遇到问题,HTTPListener 需要负载均衡器的 arn,该负
我有两个 sam 应用程序,一个“App1”具有 lambda 函数,另一个“App2”将使用其 Arn 来创建如下权限: App2 模板: Parameters: LambdaFunct
在 SAM 模板中,是否可以引用使用 Lambda 函数自动创建的角色的 ARN? 我需要在模板中的其他地方使用该 ARN。 # this is the role Role: Type:
我是一名优秀的程序员,十分优秀!