簡體   English   中英

如何使用 CLOUDFORMATION 將我的 aws 帳戶中的現有角色附加到 aws 組件/Lambda 函數

[英]How to attach an EXISTING Role in my aws account to aws componennt/Lambda Funtion using CLOUDFORMATION

嗨 AWS Cloudformation 伙計們!

我需要將現有角色附加到我正在創建的 lambda function。

AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Parameters:
  LambdaRoleName:
    Default: ExistingRoleCreatedInAwsAccount
    Type: String
Resources:
  LambdaFunction:
    Type: AWS::Lambda::Function
    Properties:
      Runtime: python3.9
      Timeout: 5
      Handler: lambda_function.handler
      Role: !Ref ExistingRoleCreatedInAwsAccount
      Code:
        S3Bucket: 'lambda-bucket-abi'
        S3Key: 'lambdaupload.zip'

  ScheduledRule:
    Type: AWS::Events::Rule
    Properties:
      Description: "ScheduledRule"
      ScheduleExpression: "rate(5 minutes)"
      State: "ENABLED"
      Targets:
        - Arn:
            Fn::GetAtt:
              - "LambdaFunction"
              - "Arn"
          Id: "TargetFunctionV1"
  PermissionForEventsToInvokeLambda:
    Type: AWS::Lambda::Permission
    Properties:
      FunctionName: !Ref "LambdaFunction"
      Action: "lambda:InvokeFunction"
      Principal: "events.amazonaws.com"
      SourceArn:
        Fn::GetAtt:
          - "ScheduledRule"
          - "Arn"

提前致謝!

你似乎在正確的軌道上,出了什么問題?

您的參數稱為“LambdaRoleName”。 請注意,它應該是您傳遞的 ARN 角色。

因此,當您部署堆棧時,將角色 arn 傳遞給參數:

aws cloudformation deploy --template-file your-template.yaml --stack-name your-stack-name --parameter-overrides LambdaRoleName=arn:aws:iam::123456789012:role/your-role --region eu-west-1

或將默認值更改為角色 ARN:

Parameters:
  LambdaRoleName:
    Default: arn:aws:iam::123456789012:role/your-role
    Type: String

它應該是:

Role: !Ref LambdaRoleName

而不是

Role: !Ref ExistingRoleCreatedInAwsAccount

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM