在 Chef 中登录 RUBY 块时出错
Error logging in RUBY block in chef
我有以下食谱,其中有一个 ruby 块。
理想情况下,它应该是 运行 一个 curl 命令,但我已经使用以下 URI
将其修改为 运行 作为 ruby 块
ruby_block 'Run Curl API' do
block do
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse("http://#{server}")
request = Net::HTTP::Post.new(uri)
request.content_type = "application/json"
request.body = JSON.dump({
"customerId" => "#{customerId}",
"cloudName" => "#{cloudName}",
"vpcId" => "#{vpcId}",
})
req_options = {
use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
# response.code
# response.body
action :run
end
如果属性“"customerId" => “#{customerId}”未定义或未提供,我将如何引发 chef::log 应将其显示为严重错误? ?
谢谢
在您的 ruby_block
中,您可以使用 Chef::Application.fatal!('message')
并将其放入未定义 customerId
.
的必要检查中
我有以下食谱,其中有一个 ruby 块。 理想情况下,它应该是 运行 一个 curl 命令,但我已经使用以下 URI
将其修改为 运行 作为 ruby 块ruby_block 'Run Curl API' do
block do
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse("http://#{server}")
request = Net::HTTP::Post.new(uri)
request.content_type = "application/json"
request.body = JSON.dump({
"customerId" => "#{customerId}",
"cloudName" => "#{cloudName}",
"vpcId" => "#{vpcId}",
})
req_options = {
use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
# response.code
# response.body
action :run
end
如果属性“"customerId" => “#{customerId}”未定义或未提供,我将如何引发 chef::log 应将其显示为严重错误? ?
谢谢
在您的 ruby_block
中,您可以使用 Chef::Application.fatal!('message')
并将其放入未定义 customerId
.