Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Amazon AWS SQS-将QueuePolicy应用于现有队列_Amazon Web Services_Amazon Cloudformation_Amazon Sqs - Fatal编程技术网

Amazon web services Amazon AWS SQS-将QueuePolicy应用于现有队列

Amazon web services Amazon AWS SQS-将QueuePolicy应用于现有队列,amazon-web-services,amazon-cloudformation,amazon-sqs,Amazon Web Services,Amazon Cloudformation,Amazon Sqs,如果我通过Cloudformation创建SQS队列,您是否能够在创建SQS队列后附加第二个QueuePolicy 如果我运行以下配置: Resources: SQSQueue: Properties: QueueName: !Ref SQSQueuename Type: 'AWS::SQS::Queue' QueuePolicy: Type: 'AWS::SQS::QueuePolicy' Properties: PolicyDo

如果我通过Cloudformation创建SQS队列,您是否能够在创建SQS队列后附加第二个QueuePolicy

如果我运行以下配置:

Resources:
  SQSQueue:
    Properties:
      QueueName: !Ref SQSQueuename
    Type: 'AWS::SQS::Queue'
  QueuePolicy:
    Type: 'AWS::SQS::QueuePolicy'
    Properties:
      PolicyDocument:
        Id: !Ref SQSQueuename
        Statement:
          - Sid: QueuePolicy2-SendMessage-To-Queue-From-SNS-Topic
            Effect: Allow
            Principal:
              AWS: !Ref AccountID
            Action:
              - 'sqs:*'
            Resource: 'arn:aws:sqs:eu-central-1:123456789010:${SQSQueuename}'
      Queues:
        - !Ref SQSQueue 
   DependsOn:
     - SQSQueue
我是否能够创建附加到已创建队列的另一个QueuePolicy?我该如何连接它?维亚恩

Resources:
  SecondQueuePolicy:
    Type: 'AWS::SQS::QueuePolicy'
    Properties:
      PolicyDocument:
        Id: !Ref SQSQueuename
        Statement:
          - Sid: QueuePolicy2-SendMessage-To-Queue-From-SNS-Topic
            Effect: Allow
            Principal:
              AWS: !Ref AccountID
            Action:
              - 'sqs:*'
            Resource: 'arn:aws:sqs:eu-central-1:123456789010:${SQSQueuename}'
      Queues:
        - !Ref SQSQueue <-- how do i ref to the Queue ?
   DependsOn:
     - SQSQueue
资源:
第二队列策略:
类型:“AWS::SQS::QueuePolicy”
特性:
政策文件:
身份证:!参考SQSQueuename
声明:
-Sid:QueuePolicy2从SNS主题向队列发送消息
效果:允许
负责人:
AWS:!参考帐户ID
行动:
-“sqs:”
参考资料:“arn:aws:sqs:eu-central-1:12345678910:${sqsqqueuename}”
队列:

- !在第一个模板中,请确保导出队列URL和名称:

Outputs: 
  QueueURL: 
    Value: !Ref SQSQueue
    Export:
      Name: ExampleStack-QueueURL
  QueueName: 
    Value: !GetAtt SQSQueue.QueueName
    Export:
      Name: ExampleStack-QueueName
在第二个模板中,导入新导出的值(不需要DependsOn):


第二个策略将是第二个CloudFormation堆栈的一部分吗?如果是这种情况,您可以使用
Fn::ImportValue
sqsqsquename
取自最初的问题,但并不相关。使用
sqsqsqueue.Arn
确实会更好。也许它在2017年不可用,或者我当时忽略了它。谢谢你指出这一点。
  SecondQueuePolicy:
    Type: 'AWS::SQS::QueuePolicy'
    Properties:
      PolicyDocument:
        Id: !Ref SQSQueuename
        Statement:
          - Sid: QueuePolicy2-SendMessage-To-Queue-From-SNS-Topic
            Effect: Allow
            Principal:
              AWS: !Ref AccountID
            Action:
              - 'sqs:*'
            Resource:
              Fn::Sub:
                - 'arn:aws:sqs:eu-central-1:123456789010:${QueueName}'
                - QueueName:
                    Fn::ImportValue: ExampleStack-QueueName
      Queues:
        - Fn::ImportValue: ExampleStack-QueueURL