0

我正在为食谱创建 LWRP azuretrafficmanager,步骤如下

  • 创建的资源:traffic_manager.rb

    actions :create   
    default_action :create    
    
    attribute :resource_group_name
    attribute :profile_name
    attribute :subscription
    attribute :traffic_manager
    attribute :azure_token
    
  • 创建的提供者:traffic_manager.rb

    def whyrun_supported?
       true
    end
    
    action :create do
      converge_by("Creating.") do
        traffic_manager_processor = TrafficManagers.new(@new_resource.resource_group_name,
                                                   @new_resource.profile_name,
                                                   @new_resource.subscription,
                                                   @new_resource.traffic_manager,
                                                   @new_resource.azure_token)
        traffic_manager_processor.create_update_profile
      end # Move on next line, copy/paste error or root cause ?
    
      @new_resource.updated_by_last_action(true) 
    end
    
  • 然后我在我的食谱中称它为

    azuretrafficmanager_traffic_manager 'createtrafficmanager' do
      resource_group_name resource_group_name
      profile_name profile_name
      subscription subscription
      traffic_manager traffic_manager
      azure_token azure_token
      action :create
    end
    
  • 上述调用 lwrp 的方法不起作用,但是当我尝试第二种方法时:

    azuretrafficmanager_traffic_manager 'createtrafficmanager' do
      resource_group_name resource_group_name
      profile_name profile_name
      subscription subscription
      traffic_manager traffic_manager
      azure_token azure_token
      action :nothing
    end.run_action(:create)
    
  • 按照这个调用lwrp的方法(run_action),它工作得很好。

问题是,为什么调用 lwrps 的第一种语法不起作用?

4

0 回答 0